如何在线程中发送消息?

问题描述 投票:0回答:1

我目前有一个命令的代码,该命令接受通道 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)
python discord discord.py bots
1个回答
4
投票

discord.py 2.0 起,

discord.Thread
支持线程。

get_thread
方法

1.使用公会
@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)
2.使用文本通道
@bot.command()
async def test(ctx):
    thread = ctx.channel.get_thread(thread_id)

threads
列表

1.使用公会
@bot.command()
async def test(ctx):
    threads = ctx.guild.threads

还有协程

active_threads
,它返回机器人可以看到的所有活动线程

    active_threads = await ctx.guild.active_threads()
2.使用文本通道
@bot.command()
async def test(ctx):
    threads = ctx.channel.threads

还有异步迭代器

archived_threads
迭代此文本通道中的所有存档线程

    async for thread in ctx.channel.archived_threads():
        # ...
© www.soinside.com 2019 - 2024. All rights reserved.