Хотел добавить возможность для бота банить, кикать, но выдает такую ошибку "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("ТОКЕН")
где ошибка?