hennus-api
Version:
Esta es una libreria para el bot Hennus
59 lines (58 loc) • 2.16 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Client = void 0;
const v10_1 = require("discord-api-types/v10");
const base_1 = require("./base");
const rest_1 = require("../rest");
const ws_1 = require("../ws");
const Error_1 = require("./Error");
const ws_2 = require("@discordjs/ws");
const utils_1 = require("../utils");
const types_1 = require("../types");
const aplication_1 = require("./base/aplication");
const emojis_1 = require("../utils/manager/emojis");
class Client extends base_1.BaseClient {
constructor(options) {
super();
this.options = options;
this.status = false;
this.intents.add(options.intents ?? 0);
this.channels = new utils_1.ChannelsManager(this);
this.users = new utils_1.UsersManager(this);
this.guilds = new utils_1.GuildsManager(this);
this.aplication.commands = new aplication_1.commandsManger(this);
this.emojis = new emojis_1.EmojisManager(this);
}
async login(token) {
if (!token || token.length === 0) {
throw new Error_1.HennusError(Error_1.errorCodes.TokenNull);
}
this.token = token;
try {
this.rest = new rest_1.HennusRest(this);
const ws = new ws_1.HennusWS(this, this.rest.api);
await ws.connect();
ws.on(ws_2.WebSocketShardEvents.Dispatch, ({ data }) => {
const { t } = data;
if (t === v10_1.GatewayDispatchEvents.Ready) {
if (!this.status) {
this.status = true;
this.user = new types_1.ClientUser(data.d.user, this);
this.id = data.d.user.id;
this.aplicationId = data.d.application.id;
ws.ready(data.d);
}
}
else {
ws.Handler(data);
}
});
this.ws = ws;
}
catch {
throw new Error_1.HennusError(Error_1.errorCodes.TokenInvalid);
}
return token;
}
}
exports.Client = Client;