diff options
Diffstat (limited to 'webAO/client.js')
| -rw-r--r-- | webAO/client.js | 50 |
1 files changed, 39 insertions, 11 deletions
diff --git a/webAO/client.js b/webAO/client.js index 1150f15..ac1c28b 100644 --- a/webAO/client.js +++ b/webAO/client.js @@ -91,12 +91,17 @@ let lastICMessageTime = new Date(0); class Client extends EventEmitter { constructor(address) { super(); - this.serv = new WebSocket("ws://" + address); - // Assign the websocket events - this.serv.addEventListener("open", this.emit.bind(this, "open")); - this.serv.addEventListener("close", this.emit.bind(this, "close")); - this.serv.addEventListener("message", this.emit.bind(this, "message")); - this.serv.addEventListener("error", this.emit.bind(this, "error")); + console.log("mode: " + mode); + if (mode !== "replay") { + this.serv = new WebSocket("ws://" + address); + // Assign the websocket events + this.serv.addEventListener("open", this.emit.bind(this, "open")); + this.serv.addEventListener("close", this.emit.bind(this, "close")); + this.serv.addEventListener("message", this.emit.bind(this, "message")); + this.serv.addEventListener("error", this.emit.bind(this, "error")); + } else { + this.joinServer(); + } this.on("open", this.onOpen.bind(this)); this.on("close", this.onClose.bind(this)); @@ -194,6 +199,7 @@ class Client extends EventEmitter { this.on("decryptor", this.handleDecryptor.bind(this)); this.on("PV", this.handlePV.bind(this)); this.on("CHECK", () => { }); + this.on("CH", () => { }); this._lastTimeICReceived = new Date(0); } @@ -224,8 +230,22 @@ class Client extends EventEmitter { * @param {string} message the message to send */ sendServer(message) { - // console.log(message); - this.serv.send(message); + console.debug("C: " + message); + if (mode === "replay") { + this.sendSelf(message); + } else { + this.serv.send(message); + } + } + + /** + * Hook for sending messages to the client + * @param {string} message the message to send + */ + sendSelf(message) { + document.getElementById("client_ooclog").innerHTML += message + "\r\n"; + const message_event = new MessageEvent('websocket', { data: message }); + this.onMessage(message_event); } /** @@ -285,8 +305,6 @@ 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}${extra_27}${extra_28}%`; - console.log(serverMessage); - this.sendServer(serverMessage); } @@ -482,7 +500,7 @@ class Client extends EventEmitter { */ onMessage(e) { const msg = e.data; - console.debug(msg); + console.debug("S: " + msg); const lines = msg.split("%"); const args = lines[0].split("#"); @@ -1114,6 +1132,8 @@ class Client extends EventEmitter { this.serverSoftware = args[2].split("&")[0]; if (this.serverSoftware === "serverD") this.serverVersion = args[2].split("&")[1]; + else if (this.serverSoftware === "webAO") + this.sendSelf("PN#0#0#%"); else this.serverVersion = args[3]; @@ -1316,6 +1336,14 @@ class Client extends EventEmitter { pickEmotion(1); } } + + /** + * we are asking ourselves what characters there are + * @param {Array} args packet arguments + */ + handleaskChaa(_args) { + this.onMessage("SC#Phoenix#PhoenixSOJ#Young Mia#Grossberg#%"); + } } class Viewport { |
