web-dev-qa-db-ja.com

discord pyでdiscord py temp muteコマンドを作成するのに助けが必要です

不和なボットにミュートコマンドを設定しましたが、後でユーザー自身のミュートを解除する必要があります。 "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")
3
TCS

それらにミュートする役割を与えたのと同様に、別のパラメーターを追加して、ミュートする時間を秒単位で取得します。次に、そのロールを削除する前に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")

1
Jason