如何使用 discord.py 限制机器人在某些频道中做出响应?

时间:2021-01-15 14:28:22

标签: python python-3.x discord discord.py discord.py-rewrite

我正在制作一个使用 cogs 并有几个不同命令的机器人。我希望这个机器人只在我使用它的服务器的两个机器人命令通道之一中回复。我已经看到我可以使用 ctx.channel.id = 无论 Id 是什么,但我希望机器人根本无法在频道中做出响应,包括 .help 命令。我见过有人用 on_message 做这件事,但我不确定我会如何用 cogs 做到这一点。任何帮助将非常感激。我的预期结果基本上是让机器人只在两个通道(我指定的两个机器人通道)中响应任何命令,包括 .help 命令。谢谢!

2 个答案:

答案 0 :(得分:1)

最简单的方法实际上不是通过代码,而是通过服务器上的权限。在您的服务器上,您应该找到一个与您的机器人同名的角色,您可以针对不同的频道更改其权限(包括 send messages)。

答案 1 :(得分:1)

正如@Lu M 所说,最简单的方法是禁用机器人的权限。但是如果你想在你的代码中做到这一点,你可以使用 if 语句来检查通道 ID 是什么。

if ctx.channel.id == <channel_id_here>:
   return 
   # if this if statement returns True, this will stop the command from doing 
   further actions.

else:
   # do stuff here
相关问题