@gcommands/plugin-cooldowns
Version:
Set cooldown for your command
1 lines • 1.59 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:true});exports.Cooldowns=exports.CooldownManager=void 0;var _discord=require("discord.js");var _ms=_interopRequireDefault(require("ms"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}class CooldownManager{constructor(){this.cache=new _discord.LimitedCollection({maxSize:100})}init(){return}async hasCooldown(client,userId){const has=await this._getCooldown(client,userId);if(has&&has>Date.now())return`${(0,_ms.default)(has-Date.now())}`;else return false}async setCooldown(client,userId,cooldown){this._setCooldown(client,userId,cooldown)}async _getCooldown(client,userId){const db=client.getDatabase();if(this.cache.get(userId))return this.cache.get(userId);let result=0;if(db?.type==="mongodb"){result=(await db?.get("plugin-cooldowns",{userId}))?.cooldown}else if(db?.type==="prismaio"){result=(await db?.get("plugin-cooldowns",{where:{userId:userId}}))?.cooldown}else{result=await db?.get(`plugin-cooldowns-${userId}}`)}this.cache.set(userId,result);return result}async _setCooldown(client,userId,cooldown){const db=client.getDatabase();const cldwn=cooldown+Date.now();this.cache.set(userId,cldwn);if(db?.type==="mongodb"){return await db?.insert("plugin-cooldowns",{userId,cooldown:cldwn,expires:new Date(cldwn)})}else if(db?.type==="prismaio"){return await db?.insert("plugin-cooldowns",{userId,cooldown:cldwn})}else{return await db?.insert(`plugin-cooldowns-${userId}}`,cldwn)}}}exports.CooldownManager=CooldownManager;const Cooldowns=new CooldownManager;exports.Cooldowns=Cooldowns;