Я пытаюсь использовать lower()
, поэтому имена ролей не чувствительны к регистру. Поэтому, если пользователь вводит lol
вместо LoL
, он не будет проходить через оператор if if not role_id:
Вот как я это делаю:
@commands.command()
@commands.check(lambda ctx: ctx.channel.id in [555844758778544160])
async def add(self, ctx, *, rolename):
author = ctx.message.author
role_dict = {
"Members":557212810468392970,
"PS4":568761643916328960,
"LoL":559792606364565505}
role_id = role_dict.get(rolename.lower())
if not role_id:
await ctx.send("I cannot find the role {}.".format(rolename))
return
role = discord.utils.get(ctx.message.guild.roles, id = role_id)
message = '{} added the role **{}**'.format(author.display_name, role.name)
embed = discord.Embed(description=message.format(author.display_name, role.name), colour=0xff0000)
await author.add_roles(role)
await ctx.send("Role Added")
Эта строка здесь role_id = role_dict.get(rolename.lower())
является виновником, когда я добавляю роль !add lol
вместо LoL
, вот что я получаю:
Помощь очень ценится.