mcraft-fun-mineflayer
Version:
Mineflayer viewer (connector) for mcraft.fun project and vanilla Minecraft client! Both TCP and WebSockets servers are supported.
84 lines (83 loc) • 3.2 kB
TypeScript
import { Client, Server } from 'minecraft-protocol';
import { Bot } from 'mineflayer';
import { UIDefinition, UiLilDef } from './customChannel';
import { PacketsLogger } from './packetsLogger';
export interface MineflayerPluginSettings {
/** @default 25587 */
websocketPort?: number;
websocketHost?: string;
/** @default true */
websocketEnabled?: boolean;
/** SSL configuration for WebSocket server */
ssl?: {
/** @default false */
enabled?: boolean;
/** @default false - if true, will use a self-signed certificate */
selfSigned?: boolean;
/** Path to SSL certificate file */
cert?: string;
/** Path to SSL private key file */
key?: string;
};
/** @default 25587 */
tcpPort?: number;
tcpHost?: string;
/** @default true */
tcpEnabled?: boolean;
/** @default undefined - no ip filter */
ipFilter?: string[];
/** @default true */
showConnectionInstructions?: boolean;
/** @default undefined - no password protection */
password?: string;
/**
* Disabling this option is experimental but can help with understanding when bot is disconnected
* @default true
*/
stopServersOnDisconnect?: boolean;
/** @default false */
allowEval?: boolean;
/** @default false */
sendConsole?: boolean;
/** @default true */
sendStats?: boolean;
/** @default false */
forwardChat?: boolean;
/** @default false */
takeoverMode?: boolean;
}
export declare const createMineflayerPluginServer: (bot: Bot, options: MineflayerPluginSettings) => {
ui: {
updateUI: (id: string, ui: UIDefinition) => void;
removeUI: (id: string) => void;
updateText: (id: string, text: string) => void;
updateLil: (id: string, object: {
[key: string]: string | number | boolean | (() => void) | null;
}, params?: Omit<UiLilDef, "type" | "params" | "buttons"> & {
onUpdate?: (id: string, newValue: any, oldValue: any) => void;
}) => void;
removeLil: (id: string) => void;
};
methods: Record<string, (...args: any[]) => void>;
_customChannel: {
send: (packet: import("./customChannel").CustomChannelPacketFromServer, client?: Client) => void;
receivedProcessor: (packet: import("./customChannel").CustomChannelPacketFromClient) => void;
registerChannel: (client: Client) => void;
newConnection: (client: Client) => void;
};
_tcpServer: Server | undefined;
_wsServer: Server | undefined;
captureWorldIntoFile: (fileName?: string, adjustPacketsLogger?: (logger: PacketsLogger) => void) => PacketsLogger;
_unstable: {
createStateCaptureFile: (fileName?: string, adjustPacketsLogger?: (logger: PacketsLogger) => void) => PacketsLogger;
startRecording: (adjustPacketsLogger?: (logger: PacketsLogger) => void) => void;
stopRecording: (saveFileName?: string) => void;
debugWorldCapture(): void;
};
};
export type WebViewerPlugin = ReturnType<typeof createMineflayerPluginServer>;
declare module 'mineflayer' {
interface Bot {
webViewer: WebViewerPlugin;
}
}