axoncore
Version:
The best fully featured discord bot framework. Universal Client, Command and Event handler.
97 lines (82 loc) • 2.22 kB
JavaScript
import LibraryInterface from '../definitions/LibraryInterface';
import * as HANDLERS from './handlers/index';
import ErisEnums from './lib/ErisEnums';
import ErisClient from './lib/ErisClient';
import ErisUser from './lib/ErisUser';
import ErisMember from './lib/ErisMember';
import ErisMessage from './lib/ErisMessage';
import ErisChannel from './lib/ErisChannel';
import ErisGuild from './lib/ErisGuild';
import ErisResolver from './lib/ErisResolver';
/**
* @typedef {import('eris').Client} Client
* @typedef {import('eris').Message} Message
*/
class ErisInterface extends LibraryInterface {
/**
* @param {Client} botClient
*/
constructor(botClient) {
super(botClient, {
User: ErisUser,
Member: ErisMember,
Message: ErisMessage,
Channel: ErisChannel,
Guild: ErisGuild,
Resolver: ErisResolver,
} );
this.client = new ErisClient(this);
this.type = 0;
}
get enums() {
return ErisEnums;
}
get HANDLERS() {
return HANDLERS;
}
/**
* @param {(msg: Message) => void} func
* @returns {void}
* @memberof ErisInterface
*/
onMessageCreate(func) {
this.botClient.on(this.enums.EVENTS.MESSAGE_CREATE, (msg) => {
func(msg);
} );
}
/**
* @param {() => void} func
* @returns {void}
* @memberof ErisInterface
*/
onceReady(func) {
this.botClient.once('ready', () => {
func();
} );
}
/**
* @param {(msg: Message) => void}
* @returns {(msg: Message) => void}
* @memberof ErisInterface
*/
getMessageCreate(func) {
return (msg) => func(msg);
}
/**
* @param {(msg: Message) => void}
* @returns {(msg: Message, oldMsg: Message) => void}
* @memberof ErisInterface
*/
getMessageUpdate(func) {
return (msg, oldMsg) => func(oldMsg, msg);
}
/**
* @param {(msg: Message) => void}
* @returns {(msg: Message) => void}
* @memberof ErisInterface
*/
getMessageDelete(func) {
return (msg) => func(msg);
}
}
export default ErisInterface;