twitch2ma
Version:
Twitch chat bot that runs commands on the MA GrandMA2 using Telnet.
37 lines (29 loc) • 1.29 kB
text/typescript
import {PermissionCollector, PermissionInstance} from "../PermissionController";
import {RuntimeInformation} from "../RuntimeInformation";
import humanizeDuration = require("humanize-duration");
import _ = require("lodash");
import {Config} from "../Config";
export default class CooldownPermission implements PermissionInstance {
check(permissionCollector: PermissionCollector,
runtimeInformation: RuntimeInformation,
additionalRuntimeInformation: Map<String, any>): void {
let lastCall = additionalRuntimeInformation.get("lastCall");
if (_.isInteger(lastCall)) {
let cooldownTimer = lastCall + runtimeInformation.config.timeout * 1000 - new Date().getTime();
if (cooldownTimer > 0) {
let differenceString = humanizeDuration(cooldownTimer + (1000 - cooldownTimer % 1000));
permissionCollector.denyPermission("cooldown",
`@${runtimeInformation.userName}, please wait ${differenceString} and try again!`);
}
}
}
start(): Promise<void> {
return Promise.resolve();
}
stop(): Promise<void> {
return Promise.resolve();
}
reloadConfig(config: Config): Promise<void> {
return Promise.resolve();
}
}