TeaSpeak-Client/imports/shared-app/connection/AbstractCommandHandler.d.ts

32 lines
1.5 KiB
TypeScript
Raw Normal View History

2021-02-20 12:55:36 -05:00
import { AbstractServerConnection, ServerCommand, SingleCommandHandler } from "../connection/ConnectionBase";
export declare abstract class AbstractCommandHandler {
readonly connection: AbstractServerConnection;
handler_boss: AbstractCommandHandlerBoss | undefined;
volatile_handler_boss: boolean;
ignore_consumed: boolean;
protected constructor(connection: AbstractServerConnection);
/**
* @return If the command should be consumed
*/
abstract handle_command(command: ServerCommand): boolean;
}
2021-05-01 17:38:36 -04:00
export declare type CommandHandlerCallback = (command: ServerCommand, consumed: boolean) => void | boolean;
2021-02-20 12:55:36 -05:00
export declare abstract class AbstractCommandHandlerBoss {
readonly connection: AbstractServerConnection;
protected command_handlers: AbstractCommandHandler[];
protected single_command_handler: SingleCommandHandler[];
protected explicitHandlers: {
2021-05-01 17:38:36 -04:00
[key: string]: CommandHandlerCallback[];
2021-02-20 12:55:36 -05:00
};
protected constructor(connection: AbstractServerConnection);
destroy(): void;
2021-05-01 17:38:36 -04:00
registerCommandHandler(command: string, callback: CommandHandlerCallback): () => void;
unregisterCommandHandler(command: string, callback: CommandHandlerCallback): boolean;
registerHandler(handler: AbstractCommandHandler): void;
unregisterHandler(handler: AbstractCommandHandler): void;
registerSingleHandler(handler: SingleCommandHandler): void;
removeSingleHandler(handler: SingleCommandHandler): void;
2021-02-20 12:55:36 -05:00
handlers(): AbstractCommandHandler[];
2021-05-01 17:38:36 -04:00
invokeCommand(command: ServerCommand): boolean;
2021-02-20 12:55:36 -05:00
}