小编Jar*_*hen的帖子

Discord.js 获取通道中所有消息的数组

我正在编写一个 Discord 机器人,我想在其中执行命令!quote,它将从具有 id 的特定频道quotesID(可能是也可能不是!quote已发送的不同频道)中拉出一条随机消息。我一直在查看Discord.js的文档,但我找不到通过其 ID获取TextChannel然后使用 TextChannels.messages函数从而获取MessageManager和消息集合的方法。

我知道我可以使用公会msg.guildmsg触发器在哪里!quote)或获得 tex

我是 JavaScript 和 Discord.js 的新手,所以任何信息都有帮助。(我使用的是 Discord.js 版本 12.2.0)

javascript node.js discord discord.js

8
推荐指数
2
解决办法
7381
查看次数

在信号处理程序、Asyncio 中调用异步函数

我正在使用discord.py 制作一个Discord 机器人,有时我用来运行它的脚本需要关闭该机器人。当我在不使用信号处理程序的情况下关闭它时,会出现很多关于循环未关闭的错误,因此我添加了一个信号处理程序(使用下面的代码),并且在内部我需要调用client.close()and client.logout(),但问题是这些是异步函数和因此要求我等待它们,但我无法等待这些函数,因为信号处理程序不能是异步函数。

这是代码:

def handler():
    print("Logging out of Discord Bot")
    client.logout()
    client.close()
    sys.exit()

@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))

    for signame in ('SIGINT', 'SIGTERM'):
        client.loop.add_signal_handler(getattr(signal, signame),
                                lambda: asyncio.ensure_future(handler()))
Run Code Online (Sandbox Code Playgroud)

有没有办法使用信号处理程序正确注销,或者至少只是沉默代码内部的警告和错误,这样控制台中就不会打印任何错误。

python python-asyncio discord.py

8
推荐指数
1
解决办法
3640
查看次数