Задать вопрос
  • Как заменить client в когах?

    @Bot-Developer Автор вопроса
    Начинающий разработчик ботов
    Проблему решил. Код, который я использовал:
    @commands.command(
        aliases = ["разбан"],
        name = "unban",
        brief = "Разбанить пользователя",
        usage = "unban <user>"
      )
      async def unban(self, ctx, id: int):
        user = await self.client.fetch_user(user_id=id)
        await ctx.guild.unban(user)
    Ответ написан
    Комментировать
  • Ошибка в кода бота дискорда. Как сделать нормально?

    @Bot-Developer
    Начинающий разработчик ботов
    Вы могли просто перевести текст ошибки и понять в чем проблема, но помогу. Добавьте client.remove_command('help')
    Полный код:
    import discord
    from discord.ext.commands import has_permissions
    from discord.ext import commands
    
    PREFIX = '&'
    
    client = commands.Bot( command_prefix = PREFIX )
    
    
    @client.event
    
    async def on_ready():
        print( 'Bot connected' )
    
    
    @client.command( pass_context = True )
    @has_permissions( administrator = True )
    
    async def clear( ctx, amount = 100 ):
        await ctx.channel.purge( limit = amount )
    
    
    @client.command( pass_context = True )
    @has_permissions( administrator = True )
    
    async def kick( ctx, member: discord.Member, *, reason = None ):
        await ctx.channel.purge( limit = 1 )
    
        await member.kick( reason = reason )
        await ctx.send( f'kick user { member.mention }' )
    
    
    @client.command( pass_context = True )
    @has_permissions( administrator = True )
    
    async def ban( ctx, member: discord.Member, *, reason = None ):
        await ctx.channel.purge( limit = 1 )
    
        await member.ban( reason = reason )
        await ctx.send( f'ban user { member.mention }' )
    
    
    @client.command( pass_context = True )
    
    async def help( ctx ):
        ebm = discord.Embed( title = 'Все наши команды' )
    
        emb.add_field( name = '{}help'.format( PREFIX ), value = 'Помощь по командам' )
        emb.add_field( name = '{}helpme'.format( PREFIX ), value = 'Помощь по командам в личку' )
        emb.add_field( name = '{}clear'.format( PREFIX ), value = 'очистка чата (только для админов)' )
        emb.add_field( name = '{}kick'.format( PREFIX ), value = 'кикнуть юзера (только для админов)' )
        emb.add_field( name = '{}ban'.format( PREFIX ), value = 'забанить юзера (только для админов)' )
    
        await ctx.send( embed = emb )
    
    
    client.run( 'мой токен' )

    Также вы могли исправить ошибку с установкой прав для команды без строчки from discord.ext.commands import has_permissions
    Вы могли использовать @commands.has_permissions(administrator=True) вместо @has_permissions(administrator=True)
    Ответ написан
  • Как создать несколько команд?

    @Bot-Developer
    Начинающий разработчик ботов
    Используй @client.command()
    Код:
    import discord
    from discord.ext import commands
    import asyncio
    from asyncio import sleep
    
    client = discord.Client()
    
    @client.event
    async def on_ready():
        print('We have logged in as {0.user}'.format(client))
    
    @client.event
    async def on_ready():
         while True:
              await client.change_presence(status=discord.Status.online, activity=discord.Game("$help"))
              await sleep(5)
              await client.change_presence(status=discord.Status.online,activity=discord.Game(f'{len(client.guilds)} серверов.'))
              await sleep(5)
    
    @client.command()
    async def help (ctx):
        embed = (discord.Embed(title='Страница хелп!',description='$hello - Заставить бота сказать вам привет!\n$help - Увидеть этот список'))
        await ctx.reply(embed = embed)
    
    @client.command()
    async def toxic (ctx):
        embed = (discord.Embed(title='инфо',description='Я ТОКСИК!'))
        await ctx.reply(embed = embed)
    
    @client.run('Токен бота')
    Ответ написан
    Комментировать