У меня есть бот-дискорд, написанный на python, и я пытаюсь создать команду, чтобы сделать команду say с сообщениями из черного списка (раздражающие вещи). Он должен выдать сообщение об ошибке и по какой-то причине оба оператора if и else выполняются. Почему это произошло? Что я делаю не так?
Я попытался добавить break
pass
, но он по-прежнему выполнял оператор else
Вот мой текущий код для команды:
@client.command()
async def say(ctx, *, message):
if message == '@everyone':
await ctx.message.delete()
await ctx.send('Do not abuse this command')
if message == '@here':
await ctx.message.delete()
await ctx.send('Do not abuse this command')
for role in ctx.guild.roles:
if message == f'<@&{role.id}>':
await ctx.message.delete()
await ctx.send('Nice try but do not abuse this command')
else:
await ctx.send(message)
await ctx.message.delete()
print(f'{ctx.message.author} ({ctx.author.id}) in {ctx.guild.name} ({ctx.guild.id}) made me say: {message}')