automod: add cooldown support

This commit is contained in:
Dragory 2020-07-30 01:54:18 +03:00
parent 5882bbda4e
commit 7fb7787583
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1
4 changed files with 36 additions and 2 deletions

View file

@ -0,0 +1,25 @@
import { AutomodContext, AutomodPluginType, TRule } from "../types";
import { PluginData } from "knub";
import { AutomodTriggerMatchResult } from "../helpers";
import { convertDelayStringToMS } from "../../../utils";
export function checkAndUpdateCooldown(
pluginData: PluginData<AutomodPluginType>,
rule: TRule,
context: AutomodContext,
) {
const cooldownKey = context.user?.id;
if (cooldownKey) {
if (pluginData.state.cooldownManager.isOnCooldown(cooldownKey)) {
return true;
}
const cooldownTime = convertDelayStringToMS(rule.cooldown, "s");
if (cooldownTime) {
pluginData.state.cooldownManager.setCooldown(cooldownKey, cooldownTime);
}
}
return false;
}