UNPKG

xedoc.js

Version:

A wrapper for Rust Console Edition (RCE) that allows you to use the websocket and API from G-Portal.

83 lines (82 loc) 2.4 kB
import ServerManager from "./servers/Servers"; import type { AuthOptions, LoggerOptions, RCEEventTypes } from "./interfaces"; import { EventEmitter } from "events"; import { ILogger } from "./logger/interfaces"; declare class RCEEventManager extends EventEmitter { emit<K extends keyof RCEEventTypes>(event: K, ...args: RCEEventTypes[K] extends undefined ? [] : [RCEEventTypes[K]]): boolean; on<K extends keyof RCEEventTypes>(event: K, listener: (arg: RCEEventTypes[K]) => void): this; once<K extends keyof RCEEventTypes>(event: K, listener: (arg: RCEEventTypes[K]) => void): this; off<K extends keyof RCEEventTypes>(event: K, listener: (arg: RCEEventTypes[K]) => void): this; } export default class RCEManager { private _auth; private _socket; private _plugins; logger: ILogger; events: RCEEventManager; servers: ServerManager; constructor(); /** * * @param auth {AuthOptions} - The authentication options for the GPortal API * @returns {Promise<void>} * * @example * ```js * const rce = new RCEManager(); * await rce.init({ * username: "username", * password: "password" * }); * ``` * * @example * ```js * const rce = new RCEManager(); * await rce.init({ * username: "username", * password: "password" * }, { * level: LogLevel.Info, * file: "rce.log" * }); */ init(auth: AuthOptions, logger: LoggerOptions): Promise<void>; /** * Gracefully close the RCE Manager * @returns {void} * * @example * ```js * const rce = new RCEManager(); * rce.destroy(); * ``` */ destroy(): void; /** * Register a plugin with the RCE Manager * @param name {string} - The name of the plugin * @param instance {any} - The instance of the plugin * @returns {void} * * @example * ```js * const rce = new RCEManager(); * rce.registerPlugin("myPlugin", new MyPlugin()); * ``` */ registerPlugin(name: string, instance: any): void; /** * Get a registered plugin * @param name {string} - The name of the plugin * @returns {any} * * @example * ```js * const rce = new RCEManager(); * const myPlugin = rce.getPlugin("myPlugin"); * ``` */ getPlugin(name: string): any; } export {};