diff options
| author | stonedDiscord <Tukz@gmx.de> | 2022-09-03 11:27:47 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-03 11:27:47 +0200 |
| commit | 38aee16e0e3fbb9d79d3a76d6792015f43251f3c (patch) | |
| tree | b7633e6535265e7e04f6c895ed1e542fd4c46624 /webAO | |
| parent | 0125980e43c1876c9c1d941b9bc3c8e485623d9d (diff) | |
| parent | 317708a352376a31f1410d57e08a2e1a1ceb6812 (diff) | |
Merge pull request #163 from caleb-mabry/newPacketHandler
New Packet Handler
Diffstat (limited to 'webAO')
| -rw-r--r-- | webAO/client.ts | 113 | ||||
| -rw-r--r-- | webAO/packets/ms.js | 28 | ||||
| -rw-r--r-- | webAO/packets/packetHandler.ts | 3 | ||||
| -rw-r--r-- | webAO/packets/packets.ts | 86 |
4 files changed, 99 insertions, 131 deletions
diff --git a/webAO/client.ts b/webAO/client.ts index f216bce..ef3ab1a 100644 --- a/webAO/client.ts +++ b/webAO/client.ts @@ -13,45 +13,6 @@ import vanilla_character_arr from "./constants/characters.js"; import vanilla_music_arr from "./constants/music.js"; import vanilla_background_arr from "./constants/backgrounds.js"; import vanilla_evidence_arr from "./constants/evidence.js"; -import { handleCT } from './packets/handlers/handleCT' -import { handleMC } from './packets/handlers/handleMC' -import { handleRMC } from './packets/handlers/handleRMC' -import { handleFL } from './packets/handlers/handleFL' -import { handleLE } from './packets/handlers/handleLE' -import { handleEM } from './packets/handlers/handleEM' -import { handleEI } from './packets/handlers/handleEI' -import { handleSC } from './packets/handlers/handleSC' -import { handleCI } from './packets/handlers/handleCI' -import { handleFM } from './packets/handlers/handleFM' -import { handleFA } from './packets/handlers/handleFA' -import { handleSM } from './packets/handlers/handleSM' -import { handleMM } from './packets/handlers/handleMM' -import { handleBD } from './packets/handlers/handleBD' -import { handleBB } from './packets/handlers/handleBB' -import { handleKB } from './packets/handlers/handleKB' -import { handleKK } from './packets/handlers/handleKK' -import { handleDONE } from './packets/handlers/handleDONE' -import { handleBN } from './packets/handlers/handleBN' -import { handleHP } from './packets/handlers/handleHP' -import { handleRT } from './packets/handlers/handleRT' -import { handleTI } from './packets/handlers/handleTI' -import { handleZZ } from './packets/handlers/handleZZ' -import { handleHI } from './packets/handlers/handleHI' -import { handleID } from './packets/handlers/handleID' -import { handlePN } from './packets/handlers/handlePN' -import { handleSI } from './packets/handlers/handleSI' -import { handleARUP } from './packets/handlers/handleARUP' -import { handleaskchaa } from './packets/handlers/handleaskchaa' -import { handleCC } from './packets/handlers/handleCC' -import { handleRC } from './packets/handlers/handleRC' -import { handleRM } from './packets/handlers/handleRM' -import { handleRD } from './packets/handlers/handleRD' -import { handleCharsCheck } from './packets/handlers/handleCharsCheck' -import { handlePV } from './packets/handlers/handlePV' -import { handleASS } from './packets/handlers/handleASS' -import { handleackMS } from './packets/handlers/handleackMS' -import { handleSP } from './packets/handlers/handleSP' -import { handleJD } from './packets/handlers/handleJD' import chatbox_arr from "./styles/chatbox/chatboxes.js"; import iniParse from "./iniParse"; import getCookie from "./utils/getCookie"; @@ -70,8 +31,7 @@ import downloadFile from "./services/downloadFile"; import { getFilenameFromPath } from "./utils/paths"; const version = process.env.npm_package_version; import masterViewport, { Viewport } from "./viewport"; -import { handleMS } from './packets/handlers/handleMS'; - +import { packetHandler } from './packets/packetHandler' let { ip: serverIP, mode, asset, theme } = queryParser(); // Unless there is an asset URL specified, use the wasabi one const DEFAULT_HOST = "http://attorneyoffline.de/base/"; @@ -259,53 +219,6 @@ class Client extends EventEmitter { this.checkUpdater = null; this.viewport = masterViewport(this); - /** - * Assign handlers for all commands - * If you implement a new command, you need to add it here - */ - this.on("MS", handleMS); - this.on("CT", handleCT); - this.on("MC", handleMC); - this.on("RMC", handleRMC); - this.on("CI", handleCI); - this.on("SC", handleSC); - this.on("EI", handleEI); - this.on("FL", handleFL); - this.on("LE", handleLE); - this.on("EM", handleEM); - this.on("FM", handleFM); - this.on("FA", handleFA); - this.on("SM", handleSM); - this.on("MM", handleMM); - this.on("BD", handleBD); - this.on("BB", handleBB); - this.on("KB", handleKB); - this.on("KK", handleKK); - this.on("DONE", handleDONE); - this.on("BN", handleBN); - this.on("HP", handleHP); - this.on("RT", handleRT); - this.on("TI", handleTI); - this.on("ZZ", handleZZ); - this.on("HI", handleHI); - this.on("ID", handleID); - this.on("PN", handlePN); - this.on("SI", handleSI); - this.on("ARUP", handleARUP); - this.on("askchaa", handleaskchaa); - this.on("CC", handleCC); - this.on("RC", handleRC); - this.on("RM", handleRM); - this.on("RD", handleRD); - this.on("CharsCheck", handleCharsCheck); - this.on("PV", handlePV); - this.on("ASS", handleASS); - this.on("ackMS", handleackMS); - this.on("SP", handleSP); - this.on("JD", handleJD); - this.on("decryptor", () => { }); - this.on("CHECK", () => { }); - this.on("CH", () => { }); this._lastTimeICReceived = new Date(0); } @@ -703,20 +616,14 @@ class Client extends EventEmitter { const msg = e.data; console.debug(`S: ${msg}`); - const lines = msg.split("%"); - - for (const msg of lines) { - if (msg === "") { - break; - } - - const args = msg.split("#"); - const header = args[0]; + const data = msg.split("%")[0]; + const splitPacket = data.split('#') + const packetHeader = splitPacket[0]; + + packetHandler.has(packetHeader) + ? packetHandler.get(packetHeader)(splitPacket) + : console.warn(`Invalid packet header ${packetHeader}`); - if (!this.emit(header, args)) { - console.warn(`Invalid packet header ${header}`); - } - } } /** @@ -1308,7 +1215,7 @@ window.changeCallwords = changeCallwords; * Triggered by the modcall sfx dropdown */ export function modcall_test() { - handleZZ("test#test".split("#")); + packetHandler.get("ZZ")("test#test".split("#")); } window.modcall_test = modcall_test; @@ -1320,7 +1227,7 @@ export async function iniedit() { .value; const inicharID = client.charID; await client.handleCharacterInfo(ininame.split("&"), inicharID); - handlePV(`PV#0#CID#${inicharID}`.split("#")); + packetHandler.get("PV")(`PV#0#CID#${inicharID}`.split("#")); } window.iniedit = iniedit; diff --git a/webAO/packets/ms.js b/webAO/packets/ms.js deleted file mode 100644 index 26851bd..0000000 --- a/webAO/packets/ms.js +++ /dev/null @@ -1,28 +0,0 @@ -export default { - deskmod, - preanim, - name, - emote, - message, - side, - sfx_name, - emote_modifier, - sfx_delay, - objection_modifier, - evidence, - flip, - realization, - text_color, - showname, - other_charid, - self_hoffset, - self_yoffset, - noninterrupting_preanim, - looping_sfx, - screenshake, - frame_screenshake, - frame_realization, - frame_sfx, - additive, - effect, -}; diff --git a/webAO/packets/packetHandler.ts b/webAO/packets/packetHandler.ts new file mode 100644 index 0000000..a9b567a --- /dev/null +++ b/webAO/packets/packetHandler.ts @@ -0,0 +1,3 @@ +import { packets } from './packets' + +export const packetHandler = new Map(Object.entries(packets))
\ No newline at end of file diff --git a/webAO/packets/packets.ts b/webAO/packets/packets.ts new file mode 100644 index 0000000..79c43c1 --- /dev/null +++ b/webAO/packets/packets.ts @@ -0,0 +1,86 @@ +import { handleMS } from './handlers/handleMS'; +import { handleCT } from './handlers/handleCT' +import { handleMC } from './handlers/handleMC' +import { handleRMC } from './handlers/handleRMC' +import { handleFL } from './handlers/handleFL' +import { handleLE } from './handlers/handleLE' +import { handleEM } from './handlers/handleEM' +import { handleEI } from './handlers/handleEI' +import { handleSC } from './handlers/handleSC' +import { handleCI } from './handlers/handleCI' +import { handleFM } from './handlers/handleFM' +import { handleFA } from './handlers/handleFA' +import { handleSM } from './handlers/handleSM' +import { handleMM } from './handlers/handleMM' +import { handleBD } from './handlers/handleBD' +import { handleBB } from './handlers/handleBB' +import { handleKB } from './handlers/handleKB' +import { handleKK } from './handlers/handleKK' +import { handleDONE } from './handlers/handleDONE' +import { handleBN } from './handlers/handleBN' +import { handleHP } from './handlers/handleHP' +import { handleRT } from './handlers/handleRT' +import { handleTI } from './handlers/handleTI' +import { handleZZ } from './handlers/handleZZ' +import { handleHI } from './handlers/handleHI' +import { handleID } from './handlers/handleID' +import { handlePN } from './handlers/handlePN' +import { handleSI } from './handlers/handleSI' +import { handleARUP } from './handlers/handleARUP' +import { handleaskchaa } from './handlers/handleaskchaa' +import { handleCC } from './handlers/handleCC' +import { handleRC } from './handlers/handleRC' +import { handleRM } from './handlers/handleRM' +import { handleRD } from './handlers/handleRD' +import { handleCharsCheck } from './handlers/handleCharsCheck' +import { handlePV } from './handlers/handlePV' +import { handleASS } from './handlers/handleASS' +import { handleackMS } from './handlers/handleackMS' +import { handleSP } from './handlers/handleSP' +import { handleJD } from './handlers/handleJD' + +export const packets = { + "MS": handleMS, + "CT": handleCT, + "MC": handleMC, + "RMC": handleRMC, + "CI": handleCI, + "SC": handleSC, + "EI": handleEI, + "FL": handleFL, + "LE": handleLE, + "EM": handleEM, + "FM": handleFM, + "FA": handleFA, + "SM": handleSM, + "MM": handleMM, + "BD": handleBD, + "BB": handleBB, + "KB": handleKB, + "KK": handleKK, + "DONE": handleDONE, + "BN": handleBN, + "HP": handleHP, + "RT": handleRT, + "TI": handleTI, + "ZZ": handleZZ, + "HI": handleHI, + "ID": handleID, + "PN": handlePN, + "SI": handleSI, + "ARUP": handleARUP, + "askchaa": handleaskchaa, + "CC": handleCC, + "RC": handleRC, + "RM": handleRM, + "RD": handleRD, + "CharsCheck": handleCharsCheck, + "PV": handlePV, + "ASS": handleASS, + "ackMS": handleackMS, + "SP": handleSP, + "JD": handleJD, + "decryptor": () => { }, + "CHECK": () => { }, + "CH": () => { }, +}
\ No newline at end of file |
