mirror of
https://github.com/MCSManager/MCSManager.git
synced 2025-02-11 15:49:53 +08:00
130 lines
4.1 KiB
JavaScript
130 lines
4.1 KiB
JavaScript
const {
|
|
WebSocketObserver
|
|
} = require('../../model/WebSocketModel');
|
|
const serverModel = require('../../model/ServerModel');
|
|
const response = require('../../helper/Response');
|
|
const permssion = require('../../helper/Permission');
|
|
const os = require("os");
|
|
|
|
|
|
WebSocketObserver().listener('server/view', (data) => {
|
|
if (!permssion.isMaster(data.WsSession)) return;
|
|
let value = serverModel.ServerManager().getServerList();
|
|
response.wsSend(data.ws, 'server/view', {
|
|
items: value
|
|
});
|
|
});
|
|
|
|
|
|
WebSocketObserver().listener('server/get', (data) => {
|
|
//服务器名在 data.body 里面
|
|
if (!permssion.isMaster(data.WsSession)) return;
|
|
|
|
let serverName = data.body.trim();
|
|
let mcserver = serverModel.ServerManager().getServer(serverName);
|
|
if (mcserver == null) {
|
|
response.wsMsgWindow(data.ws, '服务端 ' + serverName + ' 不存在!请刷新或自行检查。');
|
|
return;
|
|
}
|
|
|
|
let serverData = mcserver.dataModel;
|
|
serverData.serverName = serverName;
|
|
response.wsSend(data.ws, 'server/get', serverData);
|
|
});
|
|
|
|
WebSocketObserver().listener('server/create', (data) => {
|
|
if (!permssion.isMaster(data.WsSession)) return;
|
|
|
|
let ServerConfig = JSON.parse(data.body);
|
|
let serverName = ServerConfig.serverName.trim();
|
|
if (serverName.indexOf('.') != -1) {
|
|
response.wsMsgWindow(data.ws, '不可包含 "." 字符');
|
|
return;
|
|
}
|
|
try {
|
|
serverModel.createServer(serverName, ServerConfig);
|
|
} catch (err) {
|
|
response.wsMsgWindow(data.ws, '创建出错:' + err);
|
|
return;
|
|
}
|
|
response.wsMsgWindow(data.ws, '创建完成√');
|
|
});
|
|
|
|
WebSocketObserver().listener('server/create_dir', (data) => {
|
|
if (!permssion.isMaster(data.WsSession)) return;
|
|
|
|
let ServerConfig = JSON.parse(data.body);
|
|
try {
|
|
serverModel.createServerDir(ServerConfig.serverName, ServerConfig.cwd);
|
|
response.wsMsgWindow(data.ws, '创建服务器目录已完成 √');
|
|
} catch (e) {
|
|
response.wsMsgWindow(data.ws, '创建目录' + ServerConfig.cwd + '出错');
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
WebSocketObserver().listener('server/rebulider', (data) => {
|
|
if (!permssion.isMaster(data.WsSession)) return;
|
|
|
|
let ServerConfig = JSON.parse(data.body);
|
|
let oldServerName = ServerConfig.oldServerName.trim();
|
|
let newServerName = ServerConfig.serverName.trim();
|
|
if (oldServerName != newServerName) {
|
|
serverModel.ServerManager().reServerName(oldServerName, newServerName);
|
|
serverModel.builder(newServerName, ServerConfig);
|
|
//serverModel.loadALLMinecraftServer();
|
|
} else {
|
|
serverModel.builder(oldServerName, ServerConfig);
|
|
}
|
|
response.wsSend(data.ws, 'server/rebulider', true);
|
|
response.wsMsgWindow(data.ws, '修改完成√');
|
|
});
|
|
|
|
|
|
WebSocketObserver().listener('server/delete', (data) => {
|
|
if (!permssion.isMaster(data.WsSession)) return;
|
|
|
|
let serverName = data.body.trim();
|
|
try {
|
|
serverModel.deleteServer(serverName);
|
|
|
|
response.wsSend(data.ws, 'server/delete', true);
|
|
response.wsMsgWindow(data.ws, '删除服务器完成√');
|
|
} catch (e) {
|
|
response.wsSend(data.ws, 'server/delete', null);
|
|
response.wsMsgWindow(data.ws, '删除服务器失败' + e);
|
|
}
|
|
|
|
});
|
|
|
|
|
|
//服务器批量启动与关闭
|
|
WebSocketObserver().listener('server/opt_all', (data) => {
|
|
if (!permssion.isMaster(data.WsSession)) return;
|
|
let command = data.body.trim();
|
|
|
|
try {
|
|
let servers = serverModel.ServerManager().getServerObjects();
|
|
for (let k in servers) {
|
|
try {
|
|
let server = servers[k];
|
|
if (command == "start") {
|
|
server.start();
|
|
} else {
|
|
server.send('stop');
|
|
server.send('end');
|
|
server.send('exit');
|
|
}
|
|
} catch (serverErr) {
|
|
//忽略
|
|
continue;
|
|
}
|
|
}
|
|
response.wsMsgWindow(data.ws, '操作执行发出!需要一定时间,具体结果请看服务端运行状态.');
|
|
} catch (err) {
|
|
response.wsMsgWindow(data.ws, '执行失败:' + err);
|
|
}
|
|
|
|
}); |