@afocommunity/eco-rcon
Version:
An RCON Interface for ECO
82 lines (81 loc) • 2.49 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import EventEmitter from 'events';
import { Socket } from 'net';
import RCONParser from './parser/RCONParser';
type RconResponse = {
size: number;
id: number;
type: number;
body: string;
};
/**!
* node-rcon
* Copyright(c) 2012 Justin Li <j-li.net>
* MIT Licensed
* Stripped Down and modified by @bombitmanbomb
*/
declare class Rcon extends EventEmitter {
host: string;
port: number;
password: string;
outstandingData: Buffer | null;
hasAuthed: boolean;
protected _tcpSocket: Socket;
constructor(host: string, port: number, password: string);
_sendSocket(buf: Buffer): void;
connect(): void;
send(data: string, cmd: number, id?: number): void;
disconnect(): void;
setTimeout(timeout: number, callback: () => unknown): void;
_tcpSocketOnData(data: Buffer): boolean | void;
socketOnConnect(): void;
socketOnEnd(): void;
}
type ResponsePromiseQueueObject = {
time: Date;
buffer: string;
handled: boolean;
resolve: (data: unknown) => void;
reject: (reason: unknown) => void;
timeOut: NodeJS.Timeout;
};
type ECOOptions = {
disableAutoStatus: boolean;
};
/**
* Primary Interface Object for ECO servers.
*/
export default class ECO {
/**
* Rejects if an error occurs when connecting.
*/
onReady: Promise<null>;
rconParser: RCONParser;
protected messageID: number;
protected _conn: Rcon;
protected _isAuthorized: boolean;
protected _responsePromiseQueue: Map<number, ResponsePromiseQueueObject>;
debug: boolean;
/**Reconnect to the client */
reconnect: () => Promise<unknown>;
_events: EventEmitter;
constructor(ip: string, port: number, password: string, options?: ECOOptions);
on(event: 'READY', cb: () => void): EventEmitter;
removeListener(event: Parameters<EventEmitter['removeListener']>[0], cb: Parameters<EventEmitter['removeListener']>[1]): EventEmitter;
/**
* Send a Raw RCON command.
*/
send(cmd: string): Promise<unknown>;
protected _onResponse(response: RconResponse): void;
/**
* Disconnect the client.
*/
disconnect(): void;
protected _parseResponse(res: string): unknown;
protected _onError(err: string): void;
protected onEnd(): void;
}
export {};