我想让我的discord.py bot对在设定时间内被警告的新成员采取行动;例如:如果用户加入并在加入后一小时内收到警告,他们将被踢出局。
我不需要踢腿命令或警告命令的帮助(我已经有了这些设置),我只需要一种方法来"监视"成员的第一组时间(一个小时,例如)。
提前感谢!
在warn命令中,您只需要检查它们是否在过去一小时内加入。当它们与member.joined_at
结合时,可以得到datetime
对象
例如:
from datetime import datetime, timedelta
@commands.command()
async def warn(self, ctx: commands.Context, user: discord.Member, *, reason: str):
# Check if they joined in the last hour
if datetime.utcnow() - user.joined_at < timedelta(hours=1):
return await user.kick()
# Otherwise, warn as usual
...
当你减去两个datetime
对象时,你得到一个支持比较的timedelta
对象。在这里,你可以检查两个datetimes
之间的差异,如果不到一个小时,你可以直接踢它们。
如果你使用的是discord.py
的最新分支,你需要使用discord.utils.utcnow()
而不是datetime.utcnow()
,因为datetime
对象在discord.py 2.0
中具有时区意识。