Команда ping не работает в боте Discord.py - PullRequest
1 голос
/ 01 августа 2020

Я только начал создавать бота Discord, и я попытался заставить его реагировать на ping с помощью событий, но я прочитал, что правильный способ - использовать команды, поэтому я тоже попробовал, но мой бот не отвечал на префикс + 'ping 'на канале. На терминале нет никаких ошибок или чего-либо еще, но он просто не отвечает, когда должен. Я был бы очень признателен за любую помощь, потому что я действительно понятия не имею, что я сделал не так, я прилагаю код, с которого я начал, и в нем есть оба метода проверки связи, только то, что событие работает, а команда нет, и я не знаю почему. Также я прикрепляю в блоке цитаты ответ моего бота на канале, когда я запускаю код.

import discord
from discord.ext import commands
token = 'NzM4DNc3MDI5OTA4ODA3NzMy.XyMeVA.8oopIfcva4IFuhJwO7pkFXy9j7g'
client = commands.Bot(command_prefix='.')


@client.event
async def on_message(message):
    channel = message.channel
    if message.content.startswith('..ping'):
        await channel.send('pong..')


@client.command(pass_context=True)
async def ping(ctx):
    await ctx.send('pong.')

client.run(token)

nandini Сегодня в 11:00

. пинг

.. пинг

балалала БОТ Сегодня в 11:01

понг ..

1 Ответ

2 голосов
/ 01 августа 2020

Когда вы определяете событие, вы переопределяете встроенное событие по умолчанию. В событии по умолчанию для on_message () есть bot.process_commands (сообщение), что позволяет вам вызывать команды, как вы могли догадаться. Вы видите, к чему я здесь имею, вам нужно добавить
await bot.process_commands (message)
добавить конец вашего события on_message.

Также, пожалуйста, измените свой токен, любой может войти в ваш бот с этим.
Я также рекомендую присоединиться к серверу поддержки Discord.py Discord, если вам нужна дополнительная помощь, поскольку они обычно довольно активны и могу сразу ответить на ваш вопрос. Вот приглашение: https://discord.gg/r3sSKJJ

...