【问题标题】:discord.py my mute command blocks other commandsdiscord.py 我的静音命令会阻止其他命令
【发布时间】:2020-07-09 01:59:33
【问题描述】:

我正在为我的 Discord 服务器创建一个定时静音命令,但是当我使用 .mute 命令时,机器人有一段时间没有响应,然后它就可以工作了。但是当成员被静音时,其他命令不起作用,当静音时间结束时,我在静音时间写的命令正在工作。这是命令:

@commands.command()
    async def mute(self, ctx, member: discord.Member, time1, reason):
        time1 = int(time1) * 60
        guild = ctx.guild
        var1 = 0
        for role in guild.roles:
            if role.name == "Muted":
                var2 = var1
                continue
            else:
                var1 += 1
        for channel in guild.channels:
            await channel.set_permissions(guild.roles[var2], send_messages=False)
        for rol in guild.roles:
            if rol.name == "Muted":
                await member.add_roles(rol)
                await ctx.send(f"{member.mention} muted by {ctx.author.mention}, reason : {reason}")
                time.sleep(time1)
                await member.remove_roles(rol)
                await ctx.send(f"{member.mention} can type now.")

当成员自动取消静音时,“on_ready”事件会无缘无故地再次起作用。

【问题讨论】:

    标签: python-3.x discord.py-rewrite


    【解决方案1】:

    当某人因为您使用time.sleep 而静音时,您的代码中不会运行任何其他内容。使用 time.sleep 将冻结您的整个代码。
    要解决您的问题,您可以使用asyncio 库,尤其是asyncio.sleep

    【讨论】:

      猜你喜欢
      • 2020-10-28
      • 2021-01-11
      • 1970-01-01
      • 1970-01-01
      • 2020-10-05
      • 2018-06-07
      • 2021-09-02
      • 2020-06-15
      相关资源
      最近更新 更多