我目前有一个命令的代码,该命令接受通道 ID,后跟一些文本消息作为输入。然后代码找到该通道并在其上发送消息。然而,Discord 刚刚发布了一个新的线程功能,目前,官方 Discord API 文档 尚未对机器人如何与线程交互进行更新。那么,机器人如何向线程发送消息呢?当 Discord 发布新信息时,请留下答案。这是我之前讨论过的代码:
@bot.command()
async def text(ctx, channel_id, *, msg):
channel = bot.get_channel(int(channel_id))
try:
await channel.send(ctx.message.attachments[0].url)
except IndexError:
pass
await channel.trigger_typing()
await channel.send(msg)
自 discord.py 2.0 起,
discord.Thread
支持线程。
get_thread
方法@bot.command()
async def test(ctx):
thread = ctx.guild.get_thread(thread_id)
get_channel_or_thread
,它返回一个通道或一个线程。
channel_or_thread = ctx.guild.get_channel_or_thread(channel_id)
@bot.command()
async def test(ctx):
thread = ctx.channel.get_thread(thread_id)
threads
列表@bot.command()
async def test(ctx):
threads = ctx.guild.threads
active_threads
,它返回机器人可以看到的所有活动线程
active_threads = await ctx.guild.active_threads()
@bot.command()
async def test(ctx):
threads = ctx.channel.threads
archived_threads
迭代此文本通道中的所有存档线程
async for thread in ctx.channel.archived_threads():
# ...