我的静音命令是让人们静音 1 秒而不是 10 秒,我不知道为什么。有人发现代码有问题吗?
@client.command()
@commands.has_guild_permissions(kick_members=True)
async def mute(ctx, member: discord.Member, time, reason=None):
muted_role = discord.utils.get(ctx.guild.roles, name="Muted")
time_convert = {"s":1, "m":60, "h":3600,"d":86400}
tempmute = int(time[0]) * time_convert[time[-1]]
await member.add_roles(muted_role)
await ctx.send(f'{member} has been muted for {time}. Reason: {reason}.', delete_after=5)
await asyncio.sleep(tempmute)
await member.remove_roles(muted_role)
答案 0 :(得分:1)
看起来错误在以下行:
tempmute = int(time[0]) * time_convert[time[-1]]
改为尝试以下操作:
tempmute = int(time[:-1]) * time_convert[time[-1]]
完整代码如下:
@client.command()
@commands.has_guild_permissions(kick_members=True)
async def mute(ctx, member: discord.Member, time, reason=None):
muted_role = discord.utils.get(ctx.guild.roles, name="Muted")
time_convert = {"s":1, "m":60, "h":3600,"d":86400}
tempmute = int(time[:-1]) * time_convert[time[-1]]
await member.add_roles(muted_role)
await ctx.send(f'{member} has been muted for {time}. Reason: {reason}.', delete_after=5)
await asyncio.sleep(tempmute)
await member.remove_roles(muted_role)
time[0]
是 1,time[-1]
是 m 等等。