【问题标题】:How can I restrict a bot to responding in certain channels with discord.py?如何使用 discord.py 限制机器人在某些频道中响应?
【发布时间】:2023-04-10 16:46:02
【问题描述】:
我正在制作一个使用 cogs 并有几个不同命令的机器人。我希望这个机器人只在我使用它的服务器的两个机器人命令通道之一中回复。我已经看到我可以使用 ctx.channel.id = 不管 Id 是什么,但我希望机器人根本无法在频道中响应,包括 .help 命令。我见过有人用 on_message 做这个,但我不确定我会如何用 cogs 做这个。任何帮助将非常感激。我的预期结果基本上是让机器人只在两个通道(我指定的两个机器人通道)中响应任何命令,包括 .help 命令。谢谢!
【问题讨论】:
标签:
python
python-3.x
discord
discord.py
discord.py-rewrite
【解决方案1】:
最简单的方法实际上不是通过代码,而是通过服务器上的权限。在您的服务器上,您应该找到一个与您的机器人同名的角色,您可以为单独的频道更改其权限(包括send messages)。
【解决方案2】:
正如@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