Top.Mail.Ru
Ответы

Проблема с командой в juniper.bot

хочу создать команду в джунипере которая будет автоматически мутить участника на указанный мною срок, как создавать команды на сообщения или на выдачу роль знаю но как создать команду на административные действия не знаю (и да я знаю что в дс существует такая команда на мут мне просто нужно замаскировать ее под другой текст)

По дате
По рейтингу
Аватар пользователя
Ученик

она там встроена уже команда мьют

Аватар пользователя
Ученик

создаешь роль у которой нет доступа к сообщениям и делаешь команду чтобы когда она прописывалась то бот выдавал эту самую роль участнику которого тегали

Аватар пользователя
Профи

Вот пример команды, которая будет мутить участника на указанный срок:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
 bot = commands.Bot(command_prefix='!')  
 
  
 
@bot.command()  
 
@commands.has_permissions(administrator=True)  
 
async def mute(ctx, member: discord.Member, duration: int, time_unit: str):  
 
    # Проверяем, что время указано корректно  
 
    if time_unit not in ['seconds', 'minutes', 'hours', 'days']:  
 
        await ctx.send("Пожалуйста, укажите корректную единицу времени.")  
 
        return  
 
  
 
    # Вычисляем время окончания мута  
 
    end_time = datetime.utcnow() + timedelta(**{time_unit: duration})  
 
  
 
    # Выполняем мут участника  
 
    await member.add_roles(discord.utils.get(ctx.guild.roles, name='Muted'))  
 
  
 
    # Отправляем сообщение о муте  
 
    await ctx.send(f"{member.mention} был замучен на {duration} {time_unit}.")  
 
  
 
    # Ждем окончания мута  
 
    await asyncio.sleep(duration)  
 
  
 
    # Снимаем мут с участника  
 
    await member.remove_roles(discord.utils.get(ctx.guild.roles, name='Muted'))  
 
  
 
@mute.error  
 
async def mute_error(ctx, error):  
 
    if isinstance(error, commands.MissingPermissions):  
 
        await ctx.send("У вас нет прав на использование этой команды.") 


В этом примере команда `!mute` выполняет следующие действия:

1. Проверяет, есть ли у автора команды права администратора.
2. Принимает участника и время в качестве аргументов команды.
3. Вычисляет время окончания мута, используя модуль `datetime` и `timedelta`.
4. Добавляет роль "Muted" участнику, указанному в команде.
5. Отправляет сообщение о муте в чат.
6. Ждет указанное время и снимает роль "Muted" с участника.

Вы можете настроить роль "Muted" в вашем сервере и указать ее имя в коде.

UPD: учтите что я не продумал данный код через сайт а для кода в самом коде ну и ладно пусть будет)