问题描述
I got my discord bot to have a mute command but you have to unmute the user yourself at a later time, I want to have another command called "tempmute" that mutes a member for a certain number of minutes/hours/ or days, this is my code so far, how would I make a temp mute command out of this?
#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")
解决方案
Similar to how you gave them a role to mute them, just add another parameter to take in how long you want them to be muted in seconds. Then you can use await asyncio.sleep(mute_time) before removing that role.
The code will look something like:
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")
;