После просмотра кода кажется, что вам нужно просто повторить упоминания, а не повторять строки.
Вы можете сделать message.mentions
, чтобы получить список упоминаний в текущем сообщении (пусто, если естьбез упоминаний).
В вашем коде вы можете сделать:
# After checking there is at least one mention in the message.
# Fetch the first mention in the list, get a string that can mention the user.
mentionUserStr = message.mentions[0].mention
# Fill in the mentions inside the responses
responses = [
f"Were you being bad {mentionUserStr}? or are you just slow?",
f"How many time have I told you {mentionUserStr}! Don't be slow and eat your cereal!",
f"When I looked up a picture of bad people who don't do their homework, I see a p"
f"icture of you! {mentionUserStr}"
]
# stuff
Если вам нужна часть фактического сообщения пользователя, обрежьте его, назначьте его переменной и поместитесоответственно в массиве строк, как я делал выше.
Наконец,
await client.delete_message(message)
await client.send_message(message.channel, random.choice(responses))
Обратите внимание, как вы пытаетесь получить канал сообщения после его удаления, хотя в документе ничего не сказаночто message
будет нулевым после удаления, но для безопасности:
await client.send_message(message.channel, random.choice(responses))
await client.delete_message(message)
Сначала используйте сообщение перед удалением.
Также, возможно, вы захотите проверить, есть ли у ботадостаточно прав для удаления сообщений других пользователей, прежде чем пытаться это сделать.