-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcommandHandler.js
81 lines (75 loc) · 2.44 KB
/
commandHandler.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
81
const global = require('./global');
const user = require('./user');
const server = require('./server');
const messaging = require('./messaging');
const commands = {
"rename": {
"run": (socket, username) => {
if (username.length > 0) {
let oldUsername = user.getUsername(socket);
user.setUsername(global.getConnection(socket), username);
messaging.broadcastRaw(socket, oldUsername + ' hat sich zu ' + user.getUsername(socket) + ' umbenannt');
}
},
"usage": "/rename <Name>",
"man": "Mit 'rename' kann der Benutzername geändert werden, dabei werden alle Leerzeichen und Umbrüche entfernt."
},
"users": {
"run": (socket) => {
let usernames = []
global.allConnections.forEach(element => {
usernames.push(element.username);
});
messaging.sendRawLineAndUser(socket, "Folgende Benutzer sind verbunden: " + usernames.join(", "));
},
"usage": "/users",
"man": "Der Befehl 'users' listet alle aktiven Teilnehmer im Chat"
},
"logout": {
"run": (socket, msg) => {
global.getConnection(socket).goodbye = msg
server.closeSocketConnection(socket);
},
"usage": "/logout <Nachricht>",
"man": "Dieser Befehl beendet den Chat. Weiterer Text kann als Abschlusstext gesendet werden."
},
"help": {
"run": (socket, cmd) => {
if (cmd == 'all') {
commands.forEach(element => {
messaging.sendRawLine(socket, commands[element].usage);
messaging.sendRawLineAndUser(socket, commands[element].man);
});
return;
}
cmd = cmd != '' ? cmd : 'help';
if (commands[cmd] == undefined) {
messaging.sendRawLineAndUser(socket, "Befehl '" + cmd + "' nicht gefunden");
return;
}
messaging.sendRawLine(socket, commands[cmd]?.usage);
messaging.sendRawLineAndUser(socket, commands[cmd]?.man);
},
"usage": "/help <Befehl>/all",
"man": "Zeige Hilfe zu Befehlen an"
},
/*
"users": {
"run": (socket, appendix)=>{
},
"usage": "",
"man": ""
},
*/
}
function query(socket, message) {
let cmdEnd = message.indexOf(' ');
let command = message.substring(1, cmdEnd > 1 ? cmdEnd : undefined);
let parameter = message.substr(command.length + 1).trim(); // 1 for '/'
if (commands[command] == undefined) {
messaging.sendRawLineAndUser(socket, "Befehl ungültig");
} else {
commands[command].run(socket, parameter);
}
}
module.exports.query = query;