如何让 Discord 机器人激活自己?

时间:2021-01-10 17:01:50

标签: python discord discord.py sudo

抱歉用奇怪的措辞,我不太确定如何描述我的问题,但我会尽力而为。我正在尝试在我的 discord bot 中创建一个 sudo 命令 例如,我正在尝试创建它以便我可以激活我的 #clear 命令。但是,我的机器人只写了#clear,命令不起作用。有没有办法让机器人使用#clear?抱歉用奇怪的措辞,如果不可读,我可以尝试重写。

@commands.command()
async def sudo(self, ctx, *, substance):
    """Get the bot to say something for you."""
    await ctx.send(f"{substance}")

2 个答案:

答案 0 :(得分:2)

(我第一次误解了你的问题。)

self_bot 的文档说明如下:

<块引用>

如果为 True,机器人将只听自己调用的命令,而不是忽略自己。如果为 False(默认值),则机器人将忽略自身。初始化后无法更改。

这意味着这是让机器人倾听自己的唯一“简单”方法。但是,正如您所看到的,这使它不再听取普通用户的意见,所以这不是您想要做的(因为那样您就不能再使用您的机器人了)。

您可以做的一件事是从发送的消息中手动解析命令(在 on_message 中),并寻找与之匹配的命令。这会带来复杂性,即您没有任何 ctx 可以传递给它,因此它仅适用于不使用 ctx 不使用 message 属性的命令没有。

答案 1 :(得分:-1)

在您的代码中,您可能正在检查命令是由谁发送的,是用户还是机器人。这可能会导致机器人忽略自己,只听用户的意见。

因此,如果消息的作者是机器人,我建议您检查是否有任何不返回任何内容(忽略命令)的语句。编辑:您可能可以在命令处理程序中找到它(您将参数和命令分开)。