UNPKG

axoncore

Version:

The best fully featured discord bot framework. Universal Client, Command and Event handler.

348 lines (339 loc) 7.48 kB
/* eslint-disable no-magic-numbers */ /** * All CONSTANTS defined by Discord * Directly from Discord documentation */ /** * @type {[ 'HELLO', 'READY', 'RESUMED', 'RECONNECT', 'INVALID_SESSION', 'CHANNEL_CREATE', 'CHANNEL_UPDATE', 'CHANNEL_DELETE', 'CHANNEL_PINS_UPDATE', 'GUILD_CREATE', 'GUILD_UPDATE', 'GUILD_DELETE', 'GUILD_BAN_ADD', 'GUILD_BAN_REMOVE', 'GUILD_EMOJIS_UPDATE', 'GUILD_INTEGRATIONS_UPDATE', 'GUILD_MEMBER_ADD', 'GUILD_MEMBER_REMOVE', 'GUILD_MEMBER_UPDATE', 'GUILD_MEMBERS_CHUNK', 'GUILD_ROLE_CREATE', 'GUILD_ROLE_UPDATE', 'GUILD_ROLE_DELETE', 'INVITE_CREATE', 'INVITE_DELETE', 'MESSAGE_CREATE', 'MESSAGE_UPDATE', 'MESSAGE_DELETE', 'MESSAGE_DELETE_BULK', 'MESSAGE_REACTION_ADD', 'MESSAGE_REACTION_REMOVE', 'MESSAGE_REACTION_REMOVE_ALL', 'MESSAGE_REACTION_REMOVE_EMOJI', 'PRESENCE_UPDATE', 'TYPING_START', 'USER_UPDATE', 'VOICE_STATE_UPDATE', 'VOICE_SERVER_UPDATE', 'WEBHOOKS_UPDATE', * ]} * @readonly */ export const DISCORD_GATEWAY_EVENTS = [ 'HELLO', 'READY', 'RESUMED', 'RECONNECT', 'INVALID_SESSION', 'CHANNEL_CREATE', 'CHANNEL_UPDATE', 'CHANNEL_DELETE', 'CHANNEL_PINS_UPDATE', 'GUILD_CREATE', 'GUILD_UPDATE', 'GUILD_DELETE', 'GUILD_BAN_ADD', 'GUILD_BAN_REMOVE', 'GUILD_EMOJIS_UPDATE', 'GUILD_INTEGRATIONS_UPDATE', 'GUILD_MEMBER_ADD', 'GUILD_MEMBER_REMOVE', 'GUILD_MEMBER_UPDATE', 'GUILD_MEMBERS_CHUNK', 'GUILD_ROLE_CREATE', 'GUILD_ROLE_UPDATE', 'GUILD_ROLE_DELETE', 'INVITE_CREATE', 'INVITE_DELETE', 'MESSAGE_CREATE', 'MESSAGE_UPDATE', 'MESSAGE_DELETE', 'MESSAGE_DELETE_BULK', 'MESSAGE_REACTION_ADD', 'MESSAGE_REACTION_REMOVE', 'MESSAGE_REACTION_REMOVE_ALL', 'MESSAGE_REACTION_REMOVE_EMOJI', 'PRESENCE_UPDATE', 'TYPING_START', 'USER_UPDATE', 'VOICE_STATE_UPDATE', 'VOICE_SERVER_UPDATE', 'WEBHOOKS_UPDATE', ]; /** * @type {[ 'CREATE_INSTANT_INVITE', 'KICK_MEMBERS', 'BAN_MEMBERS', 'ADMINISTRATOR', 'MANAGE_CHANNELS', 'MANAGE_GUILD', 'ADD_REACTIONS', 'VIEW_AUDIT_LOG', 'PRIORITY_SPEAKER', 'STREAM', 'VIEW_CHANNEL', 'SEND_MESSAGES', 'SEND_TTS_MESSAGES', 'MANAGE_MESSAGES', 'EMBED_LINKS', 'ATTACH_FILES', 'READ_MESSAGE_HISTORY', 'MENTION_EVERYONE', 'USE_EXTERNAL_EMOJIS', 'VIEW_GUILD_INSIGHTS', 'CONNECT', 'SPEAK', 'MUTE_MEMBERS', 'DEAFEN_MEMBERS', 'MOVE_MEMBERS', 'USE_VAD', 'CHANGE_NICKNAME', 'MANAGE_NICKNAMES', 'MANAGE_ROLES', 'MANAGE_WEBHOOKS', 'MANAGE_EMOJIS', * ]} * @readonly */ export const DISCORD_PERMISSIONS = [ 'CREATE_INSTANT_INVITE', 'KICK_MEMBERS', 'BAN_MEMBERS', 'ADMINISTRATOR', 'MANAGE_CHANNELS', 'MANAGE_GUILD', 'ADD_REACTIONS', 'VIEW_AUDIT_LOG', 'PRIORITY_SPEAKER', 'STREAM', 'VIEW_CHANNEL', 'SEND_MESSAGES', 'SEND_TTS_MESSAGES', 'MANAGE_MESSAGES', 'EMBED_LINKS', 'ATTACH_FILES', 'READ_MESSAGE_HISTORY', 'MENTION_EVERYONE', 'USE_EXTERNAL_EMOJIS', 'VIEW_GUILD_INSIGHTS', 'CONNECT', 'SPEAK', 'MUTE_MEMBERS', 'DEAFEN_MEMBERS', 'MOVE_MEMBERS', 'USE_VAD', 'CHANGE_NICKNAME', 'MANAGE_NICKNAMES', 'MANAGE_ROLES', 'MANAGE_WEBHOOKS', 'MANAGE_EMOJIS', ]; /** * @type {{ * CREATE_INSTANT_INVITE: 1 * KICK_MEMBERS: 2 * BAN_MEMBERS: 4 * ADMINISTRATOR: 8 * MANAGE_CHANNELS: 16 * MANAGE_GUILD: 32 * ADD_REACTIONS: 64 * VIEW_AUDIT_LOG: 128 * PRIORITY_SPEAKER: 256 * STREAM: 512 * VIEW_CHANNEL: 1024 * SEND_MESSAGES: 2048 * SEND_TTS_MESSAGES: 4096 * MANAGE_MESSAGES: 8192 * EMBED_LINKS: 16384 * ATTACH_FILES: 32768 * READ_MESSAGE_HISTORY: 65536 * MENTION_EVERYONE: 131072 * USE_EXTERNAL_EMOJIS: 262144 * VIEW_GUILD_INSIGHTS: 524288 * CONNECT: 1048576 * SPEAK: 2097152 * MUTE_MEMBERS: 4194304 * DEAFEN_MEMBERS: 8388608 * MOVE_MEMBERS: 16777216 * USE_VAD: 33554432 * CHANGE_NICKNAME: 67108864 * MANAGE_NICKNAMES: 134217728 * MANAGE_ROLES: 268435456 * MANAGE_WEBHOOKS: 536870912 * MANAGE_EMOJIS: 1073741824 * ALL: 2147483647 * }} * @readonly * @enum {Number} */ export const PERMISSIONS_NUMBERS = { CREATE_INSTANT_INVITE: 1 << 0, KICK_MEMBERS: 1 << 1, BAN_MEMBERS: 1 << 2, ADMINISTRATOR: 1 << 3, MANAGE_CHANNELS: 1 << 4, MANAGE_GUILD: 1 << 5, ADD_REACTIONS: 1 << 6, VIEW_AUDIT_LOG: 1 << 7, PRIORITY_SPEAKER: 1 << 8, STREAM: 1 << 9, VIEW_CHANNEL: 1 << 10, SEND_MESSAGES: 1 << 11, SEND_TTS_MESSAGES: 1 << 12, MANAGE_MESSAGES: 1 << 13, EMBED_LINKS: 1 << 14, ATTACH_FILES: 1 << 15, READ_MESSAGE_HISTORY: 1 << 16, MENTION_EVERYONE: 1 << 17, USE_EXTERNAL_EMOJIS: 1 << 18, VIEW_GUILD_INSIGHTS: 1 << 19, CONNECT: 1 << 20, SPEAK: 1 << 21, MUTE_MEMBERS: 1 << 22, DEAFEN_MEMBERS: 1 << 23, MOVE_MEMBERS: 1 << 24, USE_VAD: 1 << 25, CHANGE_NICKNAME: 1 << 26, MANAGE_NICKNAMES: 1 << 27, MANAGE_ROLES: 1 << 28, MANAGE_WEBHOOKS: 1 << 29, MANAGE_EMOJIS: 1 << 30, }; /* eslint-enable */ PERMISSIONS_NUMBERS.ALL = Object.values(PERMISSIONS_NUMBERS).reduce( (all, p) => all | p, 0); /** * @type {{ * LIMIT_CONTENT: 2000 * LIMIT_TOTAL_EMBED: 6000 * LIMIT_TITLE: 256 * LIMIT_DESCRIPTION: 2048 * NUMBER_FIELDS: 25 * LIMIT_FIELD_NAME: 256 * LIMIT_FIELD_VALUE: 1024 * LIMIT_FOOTER_TEXT: 2048 * LIMIT_AUTHOR_NAME: 256 * }} * @readonly * @enum {Number} */ export const EMBED_LIMITS = { LIMIT_CONTENT: 2000, LIMIT_TOTAL_EMBED: 6000, LIMIT_TITLE: 256, LIMIT_DESCRIPTION: 2048, NUMBER_FIELDS: 25, LIMIT_FIELD_NAME: 256, LIMIT_FIELD_VALUE: 1024, LIMIT_FOOTER_TEXT: 2048, LIMIT_AUTHOR_NAME: 256, }; /** * @type {{ * GUILD_TEXT: 0 * DM: 1 * GUILD_VOICE: 2 * GROUP_DM: 3 * GUILD_CATEGORY: 4 * GUILD_NEWS: 5 * GUILD_STORE: 6 * }} * @readonly * @enum {0|1|2|3|4|5|6} */ export const CHANNEL_TYPES = { GUILD_TEXT: 0, DM: 1, GUILD_VOICE: 2, GROUP_DM: 3, GUILD_CATEGORY: 4, GUILD_NEWS: 5, GUILD_STORE: 6, }; /** * @type {{ * DEFAULT: 0 * RECIPIENT_ADD: 1 * RECIPIENT_REMOVE: 2 * CALL: 3 * CHANNEL_NAME_CHANGE: 4 * CHANNEL_ICON_CHANGE: 5 * CHANNEL_PINNED_MESSAGE: 6 * GUILD_MEMBER_JOIN: 7 * USER_PREMIUM_GUILD_SUBSCRIPTION: 8 * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1: 9 * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2: 10 * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3: 11 * }} * @readonly * @enum {0|1|2|3|4|5|6|7|8|9|10|11} */ export const MESSAGE_TYPES = { DEFAULT: 0, RECIPIENT_ADD: 1, RECIPIENT_REMOVE: 2, CALL: 3, CHANNEL_NAME_CHANGE: 4, CHANNEL_ICON_CHANGE: 5, CHANNEL_PINNED_MESSAGE: 6, GUILD_MEMBER_JOIN: 7, USER_PREMIUM_GUILD_SUBSCRIPTION: 8, USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1: 9, USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2: 10, USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3: 11, }; /** * @type {{ * PLAYING: 0 * STREAMING: 1 * LISTENING: 2 * WATCHING: 3 * CUSTOM: 4 * }} * @readonly * @enum {0|1|2|3|4} */ export const CLIENT_STATUS_TYPES = { PLAYING: 0, STREAMING: 1, LISTENING: 2, WATCHING: 3, CUSTOM: 4, }; export default { DISCORD_GATEWAY_EVENTS, DISCORD_PERMISSIONS, PERMISSIONS_NUMBERS, EMBED_LIMITS, CHANNEL_TYPES, MESSAGE_TYPES, CLIENT_STATUS_TYPES, };