@gcommands/plugin-cooldowns
Version:
Set cooldown for your command
1 lines • 1.09 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:true});exports.CooldownInhibitor=void 0;var _gcommands=require("gcommands");var _CooldownManager=require("../utils/CooldownManager");var _ms=_interopRequireDefault(require("ms"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}class CooldownInhibitor extends _gcommands.Inhibitor.Inhibitor{constructor(options){super(options);this.whitelist=options.whitelist;this.getWhitelist=options.getWhitelist;this.cooldown=(0,_ms.default)(options.cooldown)}async run(ctx){const dynamicWhitelist=this.getWhitelist?.(ctx);if(dynamicWhitelist)this.whitelist=dynamicWhitelist;if(this.whitelist?.includes(ctx.userId))return true;const hasCooldown=await _CooldownManager.Cooldowns.hasCooldown(ctx.client,ctx.userId);if(hasCooldown){return ctx.reply({content:this.resolveMessage(ctx)?.replace("{duration}",`${hasCooldown}`)||`You need wait ${hasCooldown}`,ephemeral:true})}else{_CooldownManager.Cooldowns.setCooldown(ctx.client,ctx.userId,this.cooldown);return true}}}exports.CooldownInhibitor=CooldownInhibitor;