diff options
| author | sD <stoned@derpymail.org> | 2019-12-23 20:08:39 +0100 |
|---|---|---|
| committer | sD <stoned@derpymail.org> | 2019-12-23 20:08:39 +0100 |
| commit | 944737c560b155448f67bdf80f56fa65652a3c25 (patch) | |
| tree | 2d7a9df7c5a08b09b260002810f8c10e2686d535 /webAO | |
| parent | 72d52accc10f4dee36656ade1b076e482ed52623 (diff) | |
ability to log outgoing packets and server version detection
Diffstat (limited to 'webAO')
| -rw-r--r-- | webAO/client.js | 65 |
1 files changed, 41 insertions, 24 deletions
diff --git a/webAO/client.js b/webAO/client.js index 5794de8..82a440c 100644 --- a/webAO/client.js +++ b/webAO/client.js @@ -178,12 +178,21 @@ class Client extends EventEmitter { } /** + * Hook for sending messages to the server + * @param {string} message the message to send + */ + sendServer(message) { + // console.log(message); + this.serv.send(message); + } + + /** * Sends an out-of-character chat message. * @param {string} message the message to send */ sendOOC(message) { setCookie("OOC_name",document.getElementById("OOC_name").value); - this.serv.send(`CT#${escapeChat(encodeChat(document.getElementById("OOC_name").value))}#${escapeChat(encodeChat(message))}#%`); + this.sendServer(`CT#${escapeChat(encodeChat(document.getElementById("OOC_name").value))}#${escapeChat(encodeChat(message))}#%`); } /** @@ -217,7 +226,7 @@ class Client extends EventEmitter { `#${escapeChat(encodeChat(message))}#${side}#${sfx_name}#${emote_modifier}` + `#${this.charID}#${sfx_delay}#${objection_modifier}#${evidence}#${flip}#${realization}#${text_color}#${extra_cccc}%` ); - this.serv.send( + this.sendServer( `MS#${deskmod}#${speaking}#${name}#${silent}` + `#${escapeChat(encodeChat(message))}#${side}#${sfx_name}#${emote_modifier}` + `#${this.charID}#${sfx_delay}#${objection_modifier}#${evidence}#${flip}#${realization}#${text_color}#${extra_cccc}%` @@ -231,7 +240,7 @@ class Client extends EventEmitter { * @param {string} evidence image filename */ sendPE(name, desc, img) { - this.serv.send(`PE#${escapeChat(encodeChat(name))}#${escapeChat(encodeChat(desc))}#${img}#%`); + this.sendServer(`PE#${escapeChat(encodeChat(name))}#${escapeChat(encodeChat(desc))}#${img}#%`); } /** @@ -242,7 +251,7 @@ class Client extends EventEmitter { * @param {string} evidence image filename */ sendEE(id, name, desc, img) { - this.serv.send(`EE#${id}#${escapeChat(encodeChat(name))}#${escapeChat(encodeChat(desc))}#${img}#%`); + this.sendServer(`EE#${id}#${escapeChat(encodeChat(name))}#${escapeChat(encodeChat(desc))}#${img}#%`); } /** @@ -250,7 +259,7 @@ class Client extends EventEmitter { * @param {number} evidence id */ sendDE(id) { - this.serv.send(`DE#${id}#%`); + this.sendServer(`DE#${id}#%`); } /** @@ -259,7 +268,7 @@ class Client extends EventEmitter { * @param {number} hp the health point */ sendHP(side, hp) { - this.serv.send(`HP#${side}#${hp}#%`); + this.sendServer(`HP#${side}#${hp}#%`); } /** @@ -267,7 +276,7 @@ class Client extends EventEmitter { * @param {string} message to mod */ sendZZ(msg) { - this.serv.send(`ZZ#${msg}#%`); + this.sendServer(`ZZ#${msg}#%`); } /** @@ -276,7 +285,7 @@ class Client extends EventEmitter { */ sendRT(testimony) { if (this.chars[this.charID].side === "jud") { - this.serv.send(`RT#${testimony}#%`); + this.sendServer(`RT#${testimony}#%`); } } @@ -285,7 +294,7 @@ class Client extends EventEmitter { * @param {string} track the track ID */ sendMusicChange(track) { - this.serv.send(`MC#${track}#${this.charID}#%`); + this.sendServer(`MC#${track}#${this.charID}#%`); } /** @@ -295,7 +304,7 @@ class Client extends EventEmitter { * either the AO2 client or tsuserver. */ sendLeaveRoom() { - this.serv.send("FC#%"); + this.sendServer("FC#%"); } /** @@ -303,8 +312,8 @@ class Client extends EventEmitter { * to the server. */ joinServer() { - this.serv.send(`HI#${hdid}#%`); - this.serv.send("ID#webAO#2.3#%"); + this.sendServer(`HI#${hdid}#%`); + this.sendServer("ID#webAO#2.3#%"); this.checkUpdater = setInterval(() => this.sendCheck(), 5000); } @@ -349,7 +358,7 @@ class Client extends EventEmitter { */ sendCharacter(character) { if (this.chars[character].name) - this.serv.send(`CC#${this.playerID}#${character}#web#%`); + this.sendServer(`CC#${this.playerID}#${character}#web#%`); } /** @@ -357,14 +366,14 @@ class Client extends EventEmitter { * @param {number?} song the song to be played */ sendMusic(song) { - this.serv.send(`MC#${song}`); + this.sendServer(`MC#${song}`); } /** * Sends a keepalive packet. */ sendCheck() { - this.serv.send(`CH#${this.charID}#%`); + this.sendServer(`CH#${this.charID}#%`); } /** @@ -615,7 +624,7 @@ class Client extends EventEmitter { } } // Request the next pack - this.serv.send("AN#" + ((args[1] / 10) + 1) + "#%"); + this.sendServer("AN#" + ((args[1] / 10) + 1) + "#%"); } /** @@ -631,7 +640,7 @@ class Client extends EventEmitter { this.handleCharacterInfo(chargs, i-1); } // We're done with the characters, request the music - this.serv.send("RM#%"); + this.sendServer("RM#%"); } /** @@ -643,7 +652,7 @@ class Client extends EventEmitter { */ handleEI(args) { document.getElementById("client_loadingtext").innerHTML = `Loading Evidence ${args[1]}/${this.evidence_list_length}`; - this.serv.send("RM#%"); + this.sendServer("RM#%"); } /** @@ -682,7 +691,7 @@ class Client extends EventEmitter { */ handleEM(args) { document.getElementById("client_loadingtext").innerHTML = "Loading Music " + args[1]; - this.serv.send("AM#" + ((args[1] / 10) + 1) + "#%"); + this.sendServer("AM#" + ((args[1] / 10) + 1) + "#%"); const hmusiclist = document.getElementById("client_musiclist"); for (let i = 2; i < args.length - 1; i++) { if (i % 2 === 0) { @@ -738,7 +747,7 @@ class Client extends EventEmitter { } // Music done, carry on - this.serv.send("RD#%"); + this.sendServer("RD#%"); } /** @@ -868,6 +877,14 @@ class Client extends EventEmitter { */ handleID(args) { this.playerID = args[1]; + this.serverSoftware = args[2].split("&")[0]; + if (this.serverSoftware === "serverD") + this.serverVersion = args[2].split("&")[1]; + else + this.serverVersion = args[3]; + + if (this.serverSoftware === "serverD" && this.serverVersion === "1377.152") + oldLoading = true; // bugged version } /** @@ -875,7 +892,7 @@ class Client extends EventEmitter { * @param {Array} args packet arguments */ handlePN(_args) { - this.serv.send("askchaa#%"); + this.sendServer("askchaa#%"); } /** @@ -939,10 +956,10 @@ class Client extends EventEmitter { } // this is determined at the top of this file - if (oldLoading) { - this.serv.send("askchar2#%"); + if (!oldLoading && extrafeatures.includes("fastloading")) { + this.sendServer("RC#%"); } else { - this.serv.send("RC#%"); + this.sendServer("askchar2#%"); } } |
