Ответы пользователя по тегу discord.py
  • Дискорд бот на питон не видет команды, почему это может быть?

    Zagir-vip
    @Zagir-vip
    Web dev, Game dev, app dev, Разработчик на Python!
    Документация для меня сделана?
    Запоминай:

    bot = commands.Bot('#', description='Крутой бот от Луффича)', intents=discord.Intents.all())
    bot.add_cog(Music(bot))
    bot.remove_command('help')
    
    @bot.command()
    async def test():
      ...
    
    bot.start(token)


    Чтобы бот видел команды ты должен их ему показать, а ты создаёшь команды через @commands.command(), а должен через @bot.command.

    Почему через bot ?
    Мы инициализируем бота и записываем его в переменную bot и в дальнейшем изменяем поведение, логику бота. Прописав @bot.command() бот понимает, что он должен запомнить команду для использования в дискорде.
    Ответ написан
    Комментировать
  • Временный мут на discord.py?

    Zagir-vip
    @Zagir-vip
    Web dev, Game dev, app dev, Разработчик на Python!
    @bot.command()
    async def mute(ctx, member: discord.Member, duration: str, *, reason: str):
    	try:
    		await ctx.message.delete()
    
    		duration_mute = int(duration[:1]) # duration = 1h. [0:] = 1
    		duration_time = str(duration[1:]) # duration = 1h. [:0] = h
    		duration_timer = None # timedelta
    
    		if any(map(duration_time.lower().startswith, ['s', 'с'])):
    			duration_timer = datetime.datetime.utcnow() + datetime.timedelta(hours=3, seconds=int(duration_mute))
    		if any(map(duration_time.lower().startswith, ['m', 'м'])):
    			duration_timer = datetime.datetime.utcnow() + datetime.timedelta(hours=3, minutes=int(duration_mute))
    		if any(map(duration_time.lower().startswith, ['h', 'ч'])):
    			duration_timer = datetime.datetime.utcnow() + datetime.timedelta(hours=int(duration_mute)+3)
    		if any(map(duration_time.lower().startswith, ['d', 'д'])):
    			duration_timer = datetime.datetime.utcnow() + datetime.timedelta(hours=3, days=int(duration_mute))
    
    		a = await member.timeout(duration_timer.astimezone(pytz.timezone("Europe/Moscow")), reason=reason)
    
    		embed = discord.Embed(
    			title="Пользователь замучен",
    			color=discord.Color.red(),
    			description=f"Наказан: {member.mention}\nЗамучен: {ctx.author.mention}\nСрок: {duration} мин\nОкончание: {end_time_str}\nПричина: {reason}"
    		)
    
    		await ctx.send(embed=embed)
    
    		
    	except discord.Forbidden:
    		embed = discord.Embed(
    				title="Ошибка",
    				color=discord.Color.red(),
    				description="У меня недостаточно прав для выполнения этой команды."
    		)
    		await ctx.send(embed=embed)
    
    	except commands.MissingRequiredArgument:
    		embed = discord.Embed(
    				title="Ошибка",
    				color=discord.Color.red(),
    				description="Некоторые обязательные аргументы отсутствуют. Используйте команду в следующем формате: !mute @пользователь срок_мута(в минутах) причина."
    		)
    		await ctx.send(embed=embed)
    
    	except commands.BadArgument:
    		embed = discord.Embed(
    				title="Ошибка",
    				color=discord.Color.red(),
    				description="Неверный формат аргумента. Пожалуйста, проверьте правильность введенных данных."
    		)
    		await ctx.send(embed=embed)


    Нельзя указывать таймаут больше 28 дней.

    Код нужно немного доработать.
    Ответ написан
  • Есть ли в discord.py функция, отвечающая за жалобу на пользователя/сервер?

    Zagir-vip
    @Zagir-vip
    Web dev, Game dev, app dev, Разработчик на Python!
    здравствуйте, такой функции нету, как но её можно написать.

    вот код
    @client.command(aliases = ['репорт']) #aliases это список название для команды
    async def report(ctx, *, message):
    channel = discord.uttils.get(ctx.guild.TextChannels, name = 'название канала') 
    await channel.send(f'новая жалоба\n{message} ') 
    await ctx.send('жалоба отправлена', delete_after = 5)
    
    вот пример кода. Улучшите его с помощью embed. 
    поправьте табуляцию, так как с телефона писать не легко.
    Ответ написан
  • Как сделать tempmute или мут на некоторое время?

    Zagir-vip
    @Zagir-vip
    Web dev, Game dev, app dev, Разработчик на Python!
    Вот вам большой, но сам лучший код на мут со временем как в Mee6

    https://pastebin.com/Q7NNj46e #Просто слишком много слов!
    Ответ написан
    1 комментарий