用 Python 编程一个 Discord 机器人 - 我如何才能使我的静音命令计时?

时间:2021-02-08 04:11:18

标签: python discord.py

所以我有一个使用以下代码的静音命令:

@client.command(pass_context = True)
async def mute(ctx, member: discord.Member):
  role = discord.utils.get(member.guild.roles, name='Muted')
  await member.add_roles(role)
  embed=discord.Embed(title="User Muted!", description="**{0}** was muted by **{1}**!".format(member, ctx.message.author), color=random.choice(colors))
  await ctx.send(embed=embed)

它工作正常,但我想这样做,以便您可以指定它们将被静音多长时间。不太确定该怎么做。

我是编程新手,因此不胜感激。

2 个答案:

答案 0 :(得分:1)

为指定时间添加 await asyncio.sleep(),然后删除角色。确保import asyncio

答案 1 :(得分:1)

虽然 await asyncio.sleep() 是一个选项,但我不推荐它。时间保存在缓存中,如果/当机器人重新启动或关闭时,缓存将被清除,人们将永远保持静音。在我看来,处理这个问题的最好方法是使用一个数据库来存储人们应该被取消静音的时间。 Menu Docs 在这方面有一个真正的 good tutorial,我建议观看它以获取更多信息。