Мне нужна помощь в создании команды disord py temp mute в disord py - PullRequest
2 голосов
/ 28 марта 2020

У моего бота-разногласия есть команда отключения звука, но вы должны самостоятельно включить звук пользователя позже, я хочу иметь другую команду под названием «tempmute», которая отключает пользователя на определенное количество минут / часов / или дни, это мой код до сих пор, как я могу сделать из этого команду временного отключения?

#mute command 
@client.command()
@commands.has_permissions(kick_members=True)
async def mute(ctx, member: discord.Member=None):
    if not member:
        await ctx.send("Who do you want me to mute?")
        return
    role = discord.utils.get(ctx.guild.roles, name="muted")
    await member.add_roles(role)
    await ctx.send("ok I did it")

1 Ответ

0 голосов
/ 01 апреля 2020

Подобно тому, как вы дали им роль для их отключения, просто добавьте еще один параметр, чтобы определить, как долго вы хотите, чтобы они были отключены в секундах. Затем вы можете использовать await asyncio.sleep (mute_time) перед удалением этой роли.

Код будет выглядеть примерно так:

import asyncio

#mute command 
@client.command()
@commands.has_permissions(kick_members=True)
async def mute(ctx, member: discord.Member=None, mute_time : int):
    if not member:
        await ctx.send("Who do you want me to mute?")
        return
    role = discord.utils.get(ctx.guild.roles, name="muted")
    await member.add_roles(role)
    await ctx.send("ok I did it")

    await asyncio.sleep(mute_time)
    await member.remove_roles(role)
    await ctx.send("ok times up")

...