UNPKG

@twitchfy/chatbot

Version:

A powerful node module to make your own Twitch ChatBot

35 lines (34 loc) 1.59 kB
"use strict"; /* 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;