Вы, похоже, уже знаете, в чем проблема, из этого ответа , который вы опубликовали. Но ваше решение далеко не в состоянии решить проблему.
on_message
вызывается всякий раз, когда новое сообщение отправляется в любое место, доступное для бота; поэтому, когда вы набираете «bepis» в разногласиях, бот отвечает «bepis», затем сообщение, отправленное ботом, переходит в on_message
, на которое бот отвечает «bepis», и так далее ...
Простое решение - проверить, является ли автор сообщения учетной записью бота или, если хотите, автор сообщения - ваш бот.
from discord.ext import commands
client = commands.Bot(command_prefix=None)
@client.event
async def on_ready():
print("Bepis machine fixed")
@client.event
async def on_message(message):
# or `if message.author.bot:` # which checks for any bot account
if message.author == client.user:
return
if message.content == "bepis":
await client.send_message(message.channel, "bepis")
client.run("Token")
Примечание. Я также исправил многие другие ваши проблемы, такие как множественный неиспользуемый импорт, еще один Client
и отступ.
И для справки: command_prefix используется только тогда, когда команда обрабатывается функциональной командой. Когда вы используете on_message, он не имеет смысла, что означает, что вы можете установить его на None.