允许 Discord Rewrite 机器人响应其他机器人

Posted

技术标签:

【中文标题】允许 Discord Rewrite 机器人响应其他机器人【英文标题】:Allow Discord Rewrite bot to respond to other bots 【发布时间】:2019-08-14 13:36:38 【问题描述】:

我有一个 Discord 机器人和一个用于 Discord 频道的 webhook 设置,以每小时在 dot 上发送一个命令。然而,默认情况下,Discord Rewrite 似乎忽略了从其他机器人发送的命令。我该如何禁用它?

我需要在 per-command 函数或 on_message 函数上修改某些内容吗?

当前消息

@bot.event
async def on_message(message):
    await bot.process_commands(message)

编辑:找到解决方案

@bot.event
async def on_message(message):
    ctx = await bot.get_context(message)
    await bot.invoke(ctx)

【问题讨论】:

我建议您发布您的解决方案作为答案,而不是编辑您的原始问题。这是在 *** 上执行此操作的常用方法。 :) 不建议回复其他bot,如果回复了,就不能在top.gg中应用你的bot。 默认情况下,您的机器人会响应其他机器人的消息。我不确定命令,但它确实响应消息编辑:你到底想要什么?其他机器人响应您的机器人?或您的机器人来响应其他机器人? 【参考方案1】:

尝试为它添加一个检查,例如:

on_message

if message.author.bot == True:
    #Do something

命令

if ctx.author.bot == True:
    #Do something

【讨论】:

您应该使用is 而不是==。在这种情况下,== True 可以省略,因为User.bot 的值始终为 True 或 False

以上是关于允许 Discord Rewrite 机器人响应其他机器人的主要内容,如果未能解决你的问题,请参考以下文章

使用 discord.py rewrite 创建即时邀请,似乎无法做到没有错误

discord.py-rewrite - 使用 PyQt5 的动态 Web 抓取无法正常工作

Discord.py 重写多服务器数据

Discord JS,等待消息,不同的输入

Discord.JS Ping 编辑命令

如何制作一个 Discord Bot 来找到与您输入的命令最接近的响应