UNPKG

@antibot/interactions

Version:

## 🗡️ An interactions library made for Discord interactions

124 lines 4.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PermissionBitToString = exports.PermissionBitToNumber = exports.PerfectBitSTR = exports.PerfectBitNUM = exports.PlantPermission = exports.PlantBigint = exports.PermissionsToHuman = exports.Permissions = exports.PermissionsBitField = void 0; exports.PermissionsBitField = { CreateInstantInvite: 1n << 0n, KickMembers: 1n << 1n, BanMembers: 1n << 2n, Administrator: 1n << 3n, ManageChannels: 1n << 4n, ManageGuild: 1n << 5n, AddReactions: 1n << 6n, ViewAuditLog: 1n << 7n, PrioritySpeaker: 1n << 8n, Stream: 1n << 9n, ViewChannel: 1n << 10n, SendMessages: 1n << 11n, SendTTSMessages: 1n << 12n, ManageMessages: 1n << 13n, EmbedLinks: 1n << 14n, AttachFiles: 1n << 15n, ReadMessageHistory: 1n << 16n, MentionEveryone: 1n << 17n, UseExternalEmojis: 1n << 18n, ViewGuildInsights: 1n << 19n, Connect: 1n << 20n, Speak: 1n << 21n, MuteMembers: 1n << 22n, DeafenMembers: 1n << 23n, MoveMembers: 1n << 24n, UseVAD: 1n << 25n, ChangeNickname: 1n << 26n, ManageNicknames: 1n << 27n, ManageRoles: 1n << 28n, ManageWebhooks: 1n << 29n, ManageGuildExpressions: 1n << 30n, UseApplicationCommands: 1n << 31n, RequestToSpeak: 1n << 32n, ManageEvents: 1n << 33n, ManageThreads: 1n << 34n, CreatePublicThreads: 1n << 35n, CreatePrivateThreads: 1n << 36n, UseExternalStickers: 1n << 37n, SendMessagesInThreads: 1n << 38n, UseEmbeddedActivites: 1n << 39n, ModerateMembers: 1n << 40n, ViewCreatorMonetizationAnalytics: 1n << 41n, UseSoundboard: 1n << 42n, CreateGuildExpressions: 1n << 43n, CreateEvents: 1n << 44n, UseExternalSounds: 1n << 45n, SendVoiceMessages: 1n << 46n, SendPolls: 1n << 49n, UseExternalApps: 1n << 50n, }; function Permissions(options) { return Object.entries(options).reduce((bitField, [key, value]) => { if (value) bitField |= exports.PermissionsBitField[key]; return bitField; }, BigInt(0)); } exports.Permissions = Permissions; function PermissionsToHuman(bitField) { const normalizedBitField = typeof bitField === 'bigint' ? bitField : typeof bitField === 'number' ? BigInt(bitField) : BigInt(bitField); return Object.keys(exports.PermissionsBitField).filter((permission) => (normalizedBitField & exports.PermissionsBitField[permission]) !== BigInt(0)); } exports.PermissionsToHuman = PermissionsToHuman; function PlantBigint(value) { return typeof value === 'bigint' ? value : typeof value === 'number' ? BigInt(value) : BigInt(value); } exports.PlantBigint = PlantBigint; function PlantPermission(permission) { if (typeof permission === 'bigint') { return permission; } if (typeof permission === 'number') { return BigInt(permission); } if (typeof permission === 'string') { if (permission.match(/^\d+n?$/)) { return BigInt(permission.replace('n', '')); } if (permission in exports.PermissionsBitField) { return exports.PermissionsBitField[permission]; } } throw new Error(`Invalid permission: ${permission}`); } exports.PlantPermission = PlantPermission; function PerfectBitNUM(bitField) { const value = typeof bitField === 'bigint' ? bitField : typeof bitField === 'number' ? BigInt(bitField) : BigInt(bitField); return Number(value); } exports.PerfectBitNUM = PerfectBitNUM; function PerfectBitSTR(bitField) { const value = typeof bitField === 'bigint' ? bitField : typeof bitField === 'number' ? BigInt(bitField) : BigInt(bitField); return value.toString(); } exports.PerfectBitSTR = PerfectBitSTR; function PermissionBitToNumber(permission) { return PerfectBitNUM(permission); } exports.PermissionBitToNumber = PermissionBitToNumber; function PermissionBitToString(permission) { return PerfectBitSTR(permission); } exports.PermissionBitToString = PermissionBitToString; //# sourceMappingURL=Permissions.js.map