我希望使用我的漫游器的用户能够将其配置为仅在某些渠道中运行。当我使用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))
答案 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))