Python 如何使不和谐机器人自动激活?

Python 如何使不和谐机器人自动激活?,python,discord,discord.py,sudo,Python,Discord,Discord.py,Sudo,很抱歉用了这么奇怪的措辞,我不太确定如何描述我的问题,但我会尽我所能。我正在尝试在我的discord机器人中执行sudo命令,例如,我正在尝试执行sudo命令,以便激活我的#clear命令。但是,我的机器人只是写#clear,命令不起作用。有什么办法可以让机器人清楚地使用吗?很抱歉用了这么奇怪的措辞,如果不可读,我可以试着重写 @commands.command() async def sudo(self, ctx, *, substance): """Ge

很抱歉用了这么奇怪的措辞,我不太确定如何描述我的问题,但我会尽我所能。我正在尝试在我的discord机器人中执行sudo命令,例如,我正在尝试执行sudo命令,以便激活我的#clear命令。但是,我的机器人只是写#clear,命令不起作用。有什么办法可以让机器人清楚地使用吗?很抱歉用了这么奇怪的措辞,如果不可读,我可以试着重写

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

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

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

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

该文件规定:

如果为True,则bot将只侦听自己调用的命令,而不会忽略自己。如果为False(默认值),则bot将忽略自身。这一点在初始化后无法更改

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


您可以做的一件事是从发送的消息中手动解析命令(在\u message中),并查找与之匹配的命令。这样一来,您就不会有任何
ctx
传递到它了,因此它只适用于不使用
ctx
属性的命令,而
message
没有这些属性。

出于某种原因,这似乎对我不起作用。事情就是这样。(它没有回应)我以为机器人本身也会被包括在其中,但显然不是。我已经编辑了我的答案,但可能不是你喜欢的。我可以问一下,为什么你希望你的机器人自己响应,而不是自己调用命令?我正在研究一种远程使用命令的方法,例如从服务器a到服务器B。