discord.py Бот не всегда удаляет сообщения - PullRequest
0 голосов
/ 16 сентября 2018

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

Во-первых, бот не всегда удаляет сообщения.

С этим кодом

if message.content.startswith("H"):
    print("test")
    print(message.author)
    msg=message.content
    await client.delete_message(message)
    await client.send_message(message.channel, msg)

бот только иногда удаляет мое сообщение. Есть идеи почему?

Во-вторых, я хочу, чтобы он только повторял мои сообщения, но когда я делаю это;

if message.author=="Myusername#1234":
    print("test")
    print(message.author)
    msg=message.content
    await client.delete_message(message)
    await client.send_message(message.channel, msg)

Ничего не происходит. Нет ошибок, просто ничего. Кто-нибудь может помочь?

P.S: Myusername#1234 это просто пример, а не то, что я вкладываю.

1 Ответ

0 голосов
/ 16 сентября 2018

В первом примере кода сообщение ваших ботов также будет проходить через оператор if и будет просто зацикливаться на написании сообщений, которые начинаются с буквы "H", и их удалении.

Вы должны обновить его до чего-то вроде

  if message.content.startswith("H") and message.author.id != "bot_id":

Что касается второго примера кода, лучше всего использовать идентификаторы пользователей, поскольку они не меняются

if message.author.id == "user_id":

Если вы действительно хотите использовать что-то еще, вы можете сделать message.author.name или message.author.nick

...