@bot.command()
async def temprole(ctx, member:disnake.Member=None, role:disnake.Role=None, time=None):
if not ctx.author.guild_permissions.administrator:
return await ctx.send("У вас недостаточно прав чтобы использовать эту команду")
time_letter=time[-1:]
time_numbers=int(time[:-1])
duration=t(time_letter) * time_numbers
def t(time_letter):
if time_letter == 's':
return 1
if time_letter == 'm':
return 60
if time_letter == 'h':
return 60*60*24
if time_letter == 'd':
return 60*60*24*7
if member is None:
return await ctx.send(
"Укажите пользователя")
if role is None:
return await ctx.send(
"Укажите роль")
if time is None:
return await ctx.send(
"Укажите время")
await member.add_roles(role)
await ctx.send(
f"Роль {role.name} была временно назначена участнику {member.name} на {duration}")
await asyncio.sleep(duration)
await member.remove_roles(role)
await ctx.send(
f"У пользователя {member.mention} была убрана роль {role.mention}")
Но в этом коде есть такие ошибки:
Первая ошибка:
Object of type "None" is not subscriptable в строке 1207, часть кода: time_letter=time[-1:] ошибка жалуется на "time"
Вторая ошибка:
Object of type "None" is not subscriptable в строке 1208, часть кода: time_numbers=int(time[:-1]) ошибка также жалуется на "time"
Третья ошибка:
"t" is unbound в строке 1209, часть кода: duration=t(time_letter) * time_numbers ошибка жалуется на "t" и выдаёт такую ошибку: "t" is unbound, помогите пожалуйста сделать команду temprole для моего бота на библиотеке disnake в версии библиотеки disnake 2.9.1