Discord py не распознает команду - PullRequest
0 голосов
/ 20 марта 2020

client.event работает нормально, подключение и сообщения регистрируются. Но я не могу получить разногласия по распознаванию команды, когда я набираю, например, '.ping' python 3.7 в дистрибутиве anaconda

    import os
    import discord
    from discord.ext import commands
    from dotenv import load_dotenv
    load_dotenv('.env.txt')
    TOKEN = os.getenv('DISCORD_TOKEN')


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

    @client.event
    async def on_ready():
        print(f'{client.user} has connected to Discord!')

    @client.event
    async def on_message(message):
        print(f'{client.user} has sent a message')

    @client.command()
    async def ping(ctx):
        print('test')
        await ctx.send('test') 

    client.run(TOKEN)

1 Ответ

0 голосов
/ 01 апреля 2020

Хорошо, вы должны понимать, что переопределение значения по умолчанию on_message запрещает запуск любых дополнительных команд.

Простое решение этой проблемы - добавить client.process_commands(message) в конец события on_message. Итак, в вашем случае:

    import discord
    from discord.ext import commands
    from dotenv import load_dotenv
    load_dotenv('.env.txt')
    TOKEN = os.getenv('DISCORD_TOKEN')


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

    @client.event
    async def on_ready():
        print(f'{client.user} has connected to Discord!')

    @client.event
    async def on_message(message):
        print(f'{client.user} has sent a message')
        client.process_commands(message)

    @client.command()
    async def ping(ctx):
        print('test')
        await ctx.send('test') 

    client.run(TOKEN)```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...