UNPKG

discord-bitfield-calculator

Version:

input your discord bitfield and it will return an array of the permission names

65 lines (64 loc) 2.09 kB
const permissions = { CREATE_INSTANT_INVITE: 0x1, KICK_MEMBERS: 0x2, BAN_MEMBERS: 0x4, ADMINISTRATOR: 0x8, MANAGE_CHANNELS: 0x10, MANAGE_GUILD: 0x20, ADD_REACTIONS: 0x40, VIEW_AUDIT_LOG: 0x80, PRIORITY_SPEAKER: 0x100, STREAM: 0x200, VIEW_CHANNEL: 0x400, SEND_MESSAGES: 0x800, SEND_TTS_MESSAGES: 0x1000, MANAGE_MESSAGES: 0x2000, EMBED_LINKS: 0x4000, ATTACH_FILES: 0x8000, READ_MESSAGE_HISTORY: 0x10000, MENTION_EVERYONE: 0x20000, USE_EXTERNAL_EMOJIS: 0x40000, VIEW_GUILD_INSIGHTS: 0x80000, CONNECT: 0x100000, SPEAK: 0x200000, MUTE_MEMBERS: 0x400000, DEAFEN_MEMBERS: 0x800000, MOVE_MEMBERS: 0x1000000, USE_VAD: 0x2000000, CHANGE_NICKNAME: 0x4000000, MANAGE_NICKNAMES: 0x8000000, MANAGE_ROLES: 0x10000000, MANAGE_WEBHOOKS: 0x20000000, MANAGE_EMOJIS_AND_STICKERS: 0x40000000, USE_APPLICATION_COMMANDS: 0x800000000, REQUEST_TO_SPEAK: 0x100000000, MANAGE_EVENTS: 0x200000000, MANAGE_THREADS: 0x400000000, CREATE_PUBLIC_THREADS: 0x800000000, CREATE_PRIVATE_THREADS: 0x1000000000, USE_EXTERNAL_STICKERS: 0x2000000000, SEND_MESSAGES_IN_THREADS: 0x4000000000, START_EMBEDDED_ACTIVITIES: 0x8000000000, MODERATE_MEMBERS : 0x10000000000, }; module.exports.help = "see https://www.npmjs.com/package/discord-bitfield-calculator" module.exports.permissions = (permBitfield) => { let currentPermissions = []; const permissionUpper = Math.floor(permBitfield / 0x100000000); const permissionLower = Math.floor(permBitfield % 0x100000000); for (let key in permissions) { if ((permissions[key] >= 0x100000000 && (permissionUpper & Math.floor(permissions[key] / 0x100000000))) || (permissions[key] < 0x100000000 && (permissionLower & permissions[key]))) { currentPermissions.push(key); } else { continue; }; }; return currentPermissions; } module.exports.bitfield = (bitfield) => { if (permissions[bitfield]) { return permissions[bitfield]; } else { return new Error("that is not a valid bitfield"); }; }