Discord.py使漫游器在某些渠道做出响应

时间:2020-06-08 14:25:21

标签: discord discord.py discord.py-rewrite

我希望使用我的漫游器的用户能够将其配置为仅在某些渠道中运行。当我使用on_message函数时,可以通过检查消息来自哪个通道来实现此目的。现在,我正在使用齿轮,但不确定如何解决此问题。

我的旧代码是这样的:

val_channels = ['a', 'b', 'c']
if message.channel in val_channels:
  # Do Something
else:
  print('The bot was configured to: ' + ', '.join(val_channels))

1 个答案:

答案 0 :(得分:1)

您可以验证ctx.message.channel.id是否与您的列表匹配。

class Greetings(commands.Cog):

    @commands.command()
    async def hello(self, ctx):
        """Says hello"""
        if ctx.message.channel.id in val_channels:
            await ctx.send('Hello!')
        else:
            await ctx.send('You can not use this command here.')

但是,如果您仍然想在嵌齿轮中使用on_message事件,则需要修改装饰器。 Link to doc

class Greetings(commands.Cog):

    @commands.Cog.listener()
    async def on_message(self, message):
        if message.channel.id in val_channels:
            # Do something
        else:
            print('The bot was configured to: ' + ', '.join(val_channels))