forked from lavender/watch-party
handle chat commands better
in preparation for other commands such as for resyncing
This commit is contained in:
parent
72c212a100
commit
af4b23e879
1 changed files with 35 additions and 17 deletions
|
@ -12,24 +12,42 @@ const setupChatboxEvents = (socket) => {
|
|||
if (content.trim().length) {
|
||||
input.value = "";
|
||||
|
||||
if (
|
||||
content.toLowerCase() == "/ping" ||
|
||||
content.toLowerCase().startsWith("/ping ")
|
||||
) {
|
||||
socket.send(
|
||||
JSON.stringify({
|
||||
op: "Ping",
|
||||
data: content.slice(5).trim(),
|
||||
})
|
||||
);
|
||||
} else {
|
||||
socket.send(
|
||||
JSON.stringify({
|
||||
op: "ChatMessage",
|
||||
data: content,
|
||||
})
|
||||
);
|
||||
// handle commands
|
||||
if (content.startsWith("/")) {
|
||||
const command = content.toLowerCase().match(/^\/\S+/)[0];
|
||||
const args = content.slice(command.length).trim();
|
||||
|
||||
let handled = false;
|
||||
switch (command) {
|
||||
case "/ping":
|
||||
socket.send(
|
||||
JSON.stringify({
|
||||
op: "Ping",
|
||||
data: args,
|
||||
})
|
||||
);
|
||||
handled = true;
|
||||
break;
|
||||
case "/help":
|
||||
// TODO: print help in chat
|
||||
handled = true;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (handled) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// handle regular chat messages
|
||||
socket.send(
|
||||
JSON.stringify({
|
||||
op: "ChatMessage",
|
||||
data: content,
|
||||
})
|
||||
);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue