Ruby 聊天机器人命令冷却时间
Ruby chat bot command cooldown
我正在使用 Ruby 中的 discordrb gem 为 discord 服务器编写一个机器人。我如何防止机器人(和用户)在聊天频道中发送垃圾命令?我正在考虑将某些命令设置为 5 分钟的冷却时间,但我能想到的唯一方法是使用 sleep
但这会阻止机器人在这段时间内接受其他命令。
有人有什么建议吗?
不确定您的代码是什么样子,但您可以这样做:
用一些旧的时间值初始化@last_reply_time
,然后在每个响应之前:
if Time.now >= @last_reply_time + 300 #(seconds)
# Reply
# ...
@last_reply_time = Time.now # update the @last_reply_time last
end
显然,您可以扩展它以检查多个变量,或每种回复类型的时间列表,并使逻辑更复杂。
我正在使用 Ruby 中的 discordrb gem 为 discord 服务器编写一个机器人。我如何防止机器人(和用户)在聊天频道中发送垃圾命令?我正在考虑将某些命令设置为 5 分钟的冷却时间,但我能想到的唯一方法是使用 sleep
但这会阻止机器人在这段时间内接受其他命令。
有人有什么建议吗?
不确定您的代码是什么样子,但您可以这样做:
用一些旧的时间值初始化@last_reply_time
,然后在每个响应之前:
if Time.now >= @last_reply_time + 300 #(seconds)
# Reply
# ...
@last_reply_time = Time.now # update the @last_reply_time last
end
显然,您可以扩展它以检查多个变量,或每种回复类型的时间列表,并使逻辑更复杂。