首页 > 解决方案 > 将机器人分配给单通道 discord.py

问题描述

我想确保我的机器人仅响应命令/消息并且仅在 1 个特定通道中响应这是否可能我已经尝试了多种变体但没有成功。如果我可以为任何事件定义它,那就更好了。有人有什么想法吗?

标签: discord.py

解决方案


您可以检查message.channel事件on_message,如果它符合您的条件,在这种情况下是特定频道,然后执行process_commands

下面是一个示例,其中该!ping命令仅在channel.name“通用”时才有效。

from discord.ext import commands

client = commands.Bot(command_prefix='!')

@client.command()
async def ping():
    await client.say('Pong')

@client.event
async def on_message(message):
    if message.channel.name == 'general':
        await client.process_commands(message)

client.run('token')

推荐阅读