-
Notifications
You must be signed in to change notification settings - Fork 198
/
process.js
80 lines (75 loc) · 2.21 KB
/
process.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import fs from "fs";
import print from "./print";
import CFG from "../cfg";
const helpMessage = fs.readFileSync(".help", "utf8");
export function processCommand(cmd, data) {
let players = this.world.players;
switch (cmd) {
// How many active connections there are
case "/players":
var length = players.length;
print(`${length}/${CFG.MAX_CONNECTIONS} connected players!`, 33);
break;
// Exit the server
case "/exit":
this.shutdown();
break;
case "/kick":
this.world.kickPlayer(data[0]);
break;
case "/kickall":
var length = players.length;
this.removeAllPlayers();
var result = length - players.length;
print(`Removed ${result} player${result === 1 ? "": "s"}!`);
break;
case "/clear":
process.stdout.write("\x1Bc");
this.greet();
break;
case "/help":
console.log("\x1b[36;1m==================================== HELP =====================================\x1b[0m");
console.log(`\x1b[${CFG.DEFAULT_CONSOLE_COLOR};1m${helpMessage}\x1b[0m`);
console.log("\x1b[36;1m===============================================================================\x1b[0m");
break;
case "/save":
this.saveAllPlayers();
var length = players.length;
print(`Saved ${length} player${length === 1 ? "": "s"} into database!`);
break;
case "/spawn":
this.spawnPkmnAtPlayer(data[0], data[1], data[2] || 1);
break;
case "/dump":
print("Preparing dump session..");
this.onFirstRun(() => {
print("Dumped assets successfully!");
});
break;
default:
print(`${cmd} is not a valid command!`, 31);
break;
};
};
export function stdinInput(data) {
if (data.length <= 1) return void 0;
let args = data.split(" ");
let cmds = args.shift()
this.processCommand(cmds, args);
};
export function uncaughtException(e) {
switch (e.errno) {
case "EADDRINUSE":
print(`Port ${CFG.PORT} is already in use!`, 31);
break;
case "EACCES":
print("No root privileges!", 31);
break;
default:
print("Unhandled exception occurred: ", 31);
print(e, 31);
print(e.stack, 31);
break;
};
print("The server has crashed!", 31);
};