建议命令在 discord.py 中不起作用

时间:2021-06-12 01:53:50

标签: python discord discord.py

我目前正在 discord.py 中编写一个机器人,它执行诸如踢等 mod 命令。我正在尝试创建一个命令,您可以向服务器提出一些建议,就像他们创建一个名为建议频道的频道一样,当他们执行将其发送到该频道的命令。我有一个命令可以向特定频道发送消息以获取机器人建议,但这是我得到的最接近的命令。下面是我在 cogs 中用于建议命令的代码,是的,我使用了命令处理。

@commands.command()
async def suggest(self ,ctx , *, suggestion):
    embed = discord.Embed(title=f"Suggestion from {ctx.author.name}", description=suggestion, color=discord.Color.blue())
    embed.set_footer(text=f"Suggestion created by {ctx.author}")
    channel = discord.utils.get(message.server.channels, name="suggestion-channel")
    message = await channel.send(embed=embed)
    await message.add_reaction("✅")
    await message.add_reaction("❌")
    await ctx.message.delete()
    await ctx.send("Thank you for your suggestion!")

1 个答案:

答案 0 :(得分:1)

首先,您不是在 on_message 事件中获取频道,也不是使用用户的消息获取服务器的频道。您必须将 message 替换为 ctx。其次,自 discord.py 迁移后,ctx.server 不再有效。它现在被称为 ctx.guild,您可以在他们的文档中阅读。

    channel = discord.utils.get(message.server.channels, name="suggestion-channel")
    # change this to:
    channel = discord.utils.get(ctx.guild.channels, name="suggestion-channel")

Changing the code working

否则,如果您发现任何其他命令不起作用,则您可能没有处理您的 on_message 事件。您可以查看有关如何解决此问题的问题: