不和なボットにミュートコマンドを設定しましたが、後でユーザー自身のミュートを解除する必要があります。 "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")
それらにミュートする役割を与えたのと同様に、別のパラメーターを追加して、ミュートする時間を秒単位で取得します。次に、そのロールを削除する前に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")