UNPKG

axoncore

Version:

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

86 lines (76 loc) 2.35 kB
import Client from '../../definitions/Client'; /** * @typedef {import('eris').Client} client * @typedef {import('eris').Guild} Guild * @typedef {'online' | 'idle' | 'dnd' | 'invisible'} status * @typedef {{ * name?: String, url?: String, type: 0|1|2|3|4 * }} ErisPresenceGame * @typedef {{ * id: String, type: Number, content: String, channel_id: String, author: { bot: true, id: String, username: String, avatar: String|null, discriminator: '0000'}, * attachments: Array<RawAttachment>, embeds: Array<import('eris').EmbedOptions>, mentions: Array<RawUser>, mention_roles: Array<String>, pinned: false, * mention_everyone: boolean, tts: boolean, timestamp: String, edited_timestamp: null, flags: Number, nonce: null, webhook_id: String * }} WebhookResponse * @typedef {{ * url: String, filename: String, id: String, size: Number, proxy_url: String, height?: Number, width?: Number * }} RawAttachment * @typedef {{ * id: String, username: String, avatar: String, discriminator: String * }} RawUser * @typedef {import('eris').Member} Member */ class ErisClient extends Client { /** * @readonly * @type {client} * @memberof ErisClient */ get client() { return this.lib.botClient; } /** * @returns {String} * @memberof ErisClient */ getAvatar() { return this.getUser() ? this.getUser().avatarURL : null; } /** * @param {Guild} guild * @returns {Member} * @memberof ErisClient */ getMember(guild) { return guild.members.get(this.client.user.id); } // **** METHODS **** // /** * @returns {Promise<void>} * @memberof ErisClient */ connect() { return this.client.connect(); } /** * @param {status} status * @param {ErisPresenceGame} game * @returns {void} * @memberof ErisClient */ setPresence(status, game) { return this.client.editStatus(status, game); } /** * @param {String} id * @param {String} token * @param {WebhookResponse} data * @returns {Promise<void>} * @memberof ErisClient */ triggerWebhook(id, token, data) { return this.client ? this.client.executeWebhook(id, token, data) : super.triggerWebhook(id, token, data); } } export default ErisClient;