【发布时间】:2017-12-03 02:12:40
【问题描述】:
我不知道如何创建一个函数或验证用户在一段时间内没有向不和谐服务器发送任何内容并踢该用户不活跃的东西。不像剪枝用户,剪枝会踢掉当时没有登录的用户。
我正在使用来自 Rapptz 的 discord.py,但您可以(如果可能)在您想要的任何包装器中给我一个示例。
【问题讨论】:
标签: python discord discord.py
我不知道如何创建一个函数或验证用户在一段时间内没有向不和谐服务器发送任何内容并踢该用户不活跃的东西。不像剪枝用户,剪枝会踢掉当时没有登录的用户。
我正在使用来自 Rapptz 的 discord.py,但您可以(如果可能)在您想要的任何包装器中给我一个示例。
【问题讨论】:
标签: python discord discord.py
如果您正在重写,您可以使用 history 异步迭代器来查找用户的最后一条消息。
文档中的示例
counter = 0
# Limit is not required, but can make this a really slow operation if you don't use it.
async for message in channel.history(limit=200):
if message.author == client.user:
counter += 1
另一种方法是使用on_message() 事件在 JSON 或任何其他数据库中跟踪“发送的最后一条消息”的时间戳。然后,您可以执行清除命令或每隔 X 秒执行一次。
如果您不使用 rewrite 或者您使用的服务器有很多成员,后者可能是理想的选择。
如果你使用on_message来处理时间戳,你可以这样实现
@bot.event
async def on_message(msg):
# GET user (msg.author) and edit their timestamp on database
【讨论】:
on_message 事件或在某个命令中。如果您向我展示您的代码,它将帮助我解决您的问题。