Не могу сделать команду только для определенного канала - PullRequest
0 голосов
/ 13 апреля 2019

Disocord.py Переписать
Ошибка: Нет
Команда ниже не работает должным образом

@bot.event
async def on_message(message):
    x = (559253532759425044)
    er = bot.get_channel(559253532759425044)
    if not message.channel.id != x:
        return
    else:
        if "p/" in message.content.lower():
            await message.channel.send('Write this command in {}'.format(er.mention))

p / - это префикс ботов. Этот код выше говорит (напишите эту команду в {} '. Формате (er.mention)) при использовании p / справа channl, бот ничего не говорит, но я использую любую команду, например p / help , она не работает. на самом деле Событие должно позволить участникам использовать команды бота (@ bot.command) только в канал указан не какой-либо другой канал, но дело в том, что команды не работают ни в указанном канале, ни в каком-либо канале на сервере . Любая помощь будет отличной :) Редактировать: (уточнил мой вопрос и прояснил его немного)

1 Ответ

1 голос
/ 14 апреля 2019

Edit:
Из комментариев вы можете захотеть что-то вроде

@bot.event
async def on_message(message):
    cmdChannel = bot.get_channel(559253532759425044)
    if message.content.lower().startswith('p/'):
        if message.channel.id == cmdChannel.id:
            #command invoked in command channel - execute it
            await bot.process_commands(message)
        else:
            #command attempted in non command channel - redirect user
            await message.channel.send('Write this command in {}'.format(cmdChannel.mention))
...