首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的tempmute命令让人们静音1秒,而我告诉它10秒?

为什么我的tempmute命令让人们静音1秒,而我告诉它10秒?
EN

Stack Overflow用户
提问于 2021-02-22 06:54:25
回答 1查看 53关注 0票数 1

我的静音命令是让人静音1秒,而不是10秒,我不知道为什么。有没有人发现代码中有什么地方错了?

代码语言:javascript
运行
复制
@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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-22 07:11:14

错误看起来是在下面一行中:

代码语言:javascript
运行
复制
tempmute = int(time[0]) * time_convert[time[-1]]

请尝试执行以下操作:

代码语言:javascript
运行
复制
tempmute = int(time[:-1]) * time_convert[time[-1]]

完整的代码是:

代码语言:javascript
运行
复制
@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等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66308022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档