mirror of
https://github.com/kolbytn/mindcraft.git
synced 2025-07-19 14:35:17 +02:00
73 lines
1.9 KiB
JavaScript
73 lines
1.9 KiB
JavaScript
import { io } from 'socket.io-client';
|
|
import convoManager from './conversation.js';
|
|
import settings from '../../settings.js';
|
|
|
|
class AgentServerProxy {
|
|
constructor() {
|
|
if (AgentServerProxy.instance) {
|
|
return AgentServerProxy.instance;
|
|
}
|
|
|
|
this.socket = null;
|
|
this.connected = false;
|
|
AgentServerProxy.instance = this;
|
|
}
|
|
|
|
connect(agent) {
|
|
if (this.connected) return;
|
|
|
|
this.agent = agent;
|
|
|
|
this.socket = io(`http://${settings.mindserver_host}:${settings.mindserver_port}`);
|
|
this.connected = true;
|
|
|
|
this.socket.on('connect', () => {
|
|
console.log('Connected to MindServer');
|
|
});
|
|
|
|
this.socket.on('disconnect', () => {
|
|
console.log('Disconnected from MindServer');
|
|
this.connected = false;
|
|
});
|
|
|
|
this.socket.on('chat-message', (agentName, json) => {
|
|
convoManager.receiveFromBot(agentName, json);
|
|
});
|
|
|
|
this.socket.on('agents-update', (agents) => {
|
|
convoManager.updateAgents(agents);
|
|
});
|
|
|
|
this.socket.on('restart-agent', (agentName) => {
|
|
console.log(`Restarting agent: ${agentName}`);
|
|
this.agent.cleanKill();
|
|
});
|
|
|
|
this.socket.on('send-message', (agentName, message) => {
|
|
try {
|
|
this.agent.respondFunc("NO USERNAME", message);
|
|
} catch (error) {
|
|
console.error('Error: ', JSON.stringify(error, Object.getOwnPropertyNames(error)));
|
|
}
|
|
});
|
|
}
|
|
|
|
login() {
|
|
this.socket.emit('login-agent', this.agent.name);
|
|
}
|
|
|
|
shutdown() {
|
|
this.socket.emit('shutdown');
|
|
}
|
|
|
|
getSocket() {
|
|
return this.socket;
|
|
}
|
|
}
|
|
|
|
// Create and export a singleton instance
|
|
export const serverProxy = new AgentServerProxy();
|
|
|
|
export function sendBotChatToServer(agentName, json) {
|
|
serverProxy.getSocket().emit('chat-message', agentName, json);
|
|
}
|