назначение бота для одноканального discord.py

Я хочу убедиться, что мой бот отвечает только на команды / сообщения и отвечает только на 1 конкретный канал. Возможно ли, что я пробовал несколько вариантов, но безуспешно. даже лучше, если бы я мог определить это для любого события. У кого-нибудь есть идеи?


person smuggie    schedule 30.04.2018    source источник


Ответы (1)


Вы можете проверить 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')
person Benjin    schedule 30.04.2018