on_message 事件禁用所有机器人命令
Posted
技术标签:
【中文标题】on_message 事件禁用所有机器人命令【英文标题】:on_message event disables all the bot commands 【发布时间】:2021-04-05 00:24:32 【问题描述】:我有一个 on_message 事件来阻止具有“静音”角色的用户发送消息:
@client.event
async def on_message(ctx):
muted=ctx.author.guild.get_role(673180122768998411)
if muted in ctx.author.roles:
await ctx.message.delete()
但是对于这个事件,机器人不会对所有命令做出反应。他们不工作。 示例命令:
@client.command(passContent = True)
@commands.has_role("????║Участники")
async def rank(ctx):
return
【问题讨论】:
【参考方案1】:你必须使用这个:
await client.process_commands(ctx)
因此,您的活动将如下所示:
@client.event
async def on_message(ctx):
muted = ctx.author.guild.get_role(673180122768998411)
if muted in ctx.author.roles:
await ctx.delete()
await client.process_commands(ctx)
【讨论】:
以上是关于on_message 事件禁用所有机器人命令的主要内容,如果未能解决你的问题,请参考以下文章
discord.py bot:on_message 检测机器人等待发送()消息
如何让机器人休眠并停止响应命令(或 on_messages)
discord.py,在没有 on_message() 事件的情况下通过通道 id 发送消息?