Проблемы discord.py

Хотел добавить возможность для бота банить, кикать, но выдает такую ошибку "TypeError: ‘module’ object is not callable’ что делать?

import disnake
from disnake.ext import commands

bot = commands.Bot(command_prefix="!", help_command=None, intents=disnake.Intents.all(), test_guilds=[1059731710729797662])


@bot.event
async def on_ready():
	print(f"Bot {bot.user} is ready to work!")


@bot.event
async def on_member_join(member):
	role = await disnake.utils.get(member.guild.roles, id=1059732992253231215)
	channel = member.guild.system_channel

	embed = disnake.Embed(
        title="Новый участник!",
        description=f"{member.name}#{member.discriminator}",
        color=0x6216A6
	)

	await member.add_roles(role)
	await channel.send("embed=embed")


@bot.slash_command(guild_ids = 1059731710729797662, name = "ban", description = "блокирует члена сервера")
@commands.has_permissions(ban_members = True, administrator = True)
async def ban(ctx, member: commands(disnake.Member, description = "Кого вы хотите заблокировать?"), reason: commands(str, description = "Почему?", required = False)):
    if member.id == ctx.author.id:
        await ctx.respond("BRUH! You can't ban yourself!")
    elif member.guild_permissions.administrator:
        await ctx.respond("Хватит пытаться забанить админа!")
    else:
        if reason == None:
            reason = f"Ни один не предоставлен {ctx.author}"
        await member.ban(reason = reason)
        await ctx.respond(f"<@{ctx.author.id}>, <@{member.id}> был успешно заблокирован на этом сервере!\n\nПричина: {reason}")
    
@ban.error
async def banerror(ctx, error):
    if isinstance(error, MissingPermissions):
        await ctx.respond("Для этого вам нужны права Ban Members и Administrator!")
    else:
        await ctx.respond("Что-то пошло не так...") #most likely due to missing permissions
        raise error

@bot.slash_command(guild_ids = 1059731710729797662, name = "kick", description = "исключает члена сервера")
@commands.has_permissions(kick_members = True, administrator = True)
async def kick(ctx, member: Option(discord.Member, description = "Кого вы хотите исключить?"), reason: commands(str, description = "Why?", required = False)):
    if member.id == ctx.author.id: #checks to see if they're the same
        await ctx.respond("BRUH! You can't kick yourself!")
    elif member.guild_permissions.administrator:
        await ctx.respond("Хватит пытаться исключить админа! :rolling_eyes:")
    else:
        if reason == None:
            reason = f"Ни один не предоставлен {ctx.author}"
        await member.kick(reason = reason)
        await ctx.respond(f"<@{ctx.author.id}>, <@{member.id}> был исключён с этого сервера!\n\nПричина: {reason}")

@kick.error
async def kickerror(ctx, error):
    if isinstance(error, MissingPermissions):
        await ctx.respond("Для этого вам нужны права Kick Members и администратора!")
    else:
        await ctx.respond("Что-то пошло не так...") #most likely due to missing permissions 
        raise error


@bot.event
async def on_command_error(ctx, error):
	print(error)

	if isinstance(error, commands.MissingPermission):
		await ctx.send(f"{ctx.author}, у вас нет прав что бы пользоваться данной командой!")
	elif isinstance(error, commands.UserInputError):
		await ctx.send(embed=disnake.Embed(
             description=f"Правильное использование команды: '{ctx.prefix}{ctx.command.name}' ({ctx.command.brief})\nExample: {ctx.prefix}{ctx.command.usage}"
		))


@bot.command()
async def kick(ctx, member: disnake.Member = None, *, reason:str =None):
    if member:
        if reason:
            await member.kick(reason=reason)
            await ctx.send(embed=discord.Embed(description=f'Пользователь {member.mention} был исключён \nПричина: {reason}' ))
        else:
            await member.kick()
            await ctx.send(embed=discord.Embed(description=f'Пользователь {member.mention} был исключён'))
    else: 
        await ctx.send('Введите имя пользователя')


bot.run("ТОКЕН")
        

где ошибка?

Так а выдает где? Должно ж выдать стектрейс с номерами строк.

ошибку выдаёт на 29 строке

вот эта строка

  async def ban(ctx, member: commands(disnake.Member, description = "Кого вы хотите заблокировать?"), reason: commands(str, description = "Почему?", required = False)):

В чём проблема?

Это скопировано из какого-то примера или что?

Тут как минимум commands из disnake.ext не выглядит как что-то, что можно создать как объект. Выше ж например commands.Bot, а не commands.

а окей сейчас исправлю