@twitchfy/chatbot
Version:
A powerful node module to make your own Twitch ChatBot
35 lines (34 loc) • 1.59 kB
JavaScript
;
/* eslint-disable @typescript-eslint/ban-ts-comment */
Object.defineProperty(exports, "__esModule", { value: true });
exports.validatePermission = void 0;
const structures_1 = require("../structures");
const enums_1 = require("../enums");
/**
* Validate the permission of the user.
* @param permission The permission to validate.
* @param ctx The context of the command.
* @returns Whether the user has passed the permission.
*/
// eslint-disable-next-line @typescript-eslint/ban-types
async function validatePermission(permission, ctx) {
const badges = ctx.author.badges;
if (badges.has('broadcaster'))
return true;
// @ts-expect-error
if (permission.prototype instanceof structures_1.BasePermission) {
// @ts-expect-error
const instance = new permission();
return instance.check(ctx);
}
switch (permission) {
case enums_1.Permission.Moderator: return badges.has('moderator');
case enums_1.Permission.Vip: return badges.has('vip') || badges.has('moderator');
case enums_1.Permission.Subscriber: return badges.has('subscriber');
case enums_1.Permission.SubscriberTier1: return badges.has('subscriber') && badges.get('subscriber').id[0] === '1';
case enums_1.Permission.SubscriberTier2: return badges.has('subscriber') && badges.get('subscriber').id[0] === '2';
case enums_1.Permission.SubscriberTier3: return badges.has('subscriber') && badges.get('subscriber').id[0] === '3';
default: return false;
}
}
exports.validatePermission = validatePermission;