diff options
32 files changed, 194 insertions, 151 deletions
diff --git a/webAO/client.ts b/webAO/client.ts index 4d01cfd..e92489c 100644 --- a/webAO/client.ts +++ b/webAO/client.ts @@ -212,109 +212,6 @@ class Client extends EventEmitter { } /** - * Sends an out-of-character chat message. - * @param {string} message the message to send - */ - sendOOC(message: string) { - setCookie( - "OOC_name", - (<HTMLInputElement>document.getElementById("OOC_name")).value - ); - const oocName = `${escapeChat( - (<HTMLInputElement>document.getElementById("OOC_name")).value - )}`; - const oocMessage = `${escapeChat(message)}`; - - const commands = { - "/save_chatlog": this.saveChatlogHandle, - }; - const commandsMap = new Map(Object.entries(commands)); - - if (oocMessage && commandsMap.has(oocMessage.toLowerCase())) { - try { - commandsMap.get(oocMessage.toLowerCase())(); - } catch (e) { - // Command Not Recognized - } - } else { - this.sender.sendServer(`CT#${oocName}#${oocMessage}#%`); - } - } - - - - /** - * Sends add evidence command. - * @param {string} evidence name - * @param {string} evidence description - * @param {string} evidence image filename - */ - sendPE(name: string, desc: string, img: string) { - this.sender.sendServer( - `PE#${escapeChat(name)}#${escapeChat(desc)}#${escapeChat(img)}#%` - ); - } - - /** - * Sends edit evidence command. - * @param {number} evidence id - * @param {string} evidence name - * @param {string} evidence description - * @param {string} evidence image filename - */ - sendEE(id: number, name: string, desc: string, img: string) { - this.sender.sendServer( - `EE#${id}#${escapeChat(name)}#${escapeChat(desc)}#${escapeChat(img)}#%` - ); - } - - /** - * Sends delete evidence command. - * @param {number} evidence id - */ - sendDE(id: number) { - this.sender.sendServer(`DE#${id}#%`); - - } - - /** - * Sends health point command. - * @param {number} side the position - * @param {number} hp the health point - */ - sendHP(side: number, hp: number) { - this.sender.sendServer(`HP#${side}#${hp}#%`); - } - - /** - * Sends call mod command. - * @param {string} message to mod - */ - sendZZ(msg: string) { - if (extrafeatures.includes("modcall_reason")) { - this.sender.sendServer(`ZZ#${msg}#%`); - } else { - this.sender.sendServer("ZZ#%"); - } - } - - /** - * Sends testimony command. - * @param {string} testimony type - */ - sendRT(testimony: string) { - this.sender.sendServer(`RT#${testimony}#%`); - } - - /** - * Requests to change the music to the specified track. - * @param {string} track the track ID - */ - sendMusicChange(track: string) { - this.sender.sendServer(`MC#${track}#${this.charID}#%`); - } - - /** * Begins the handshake process by sending an identifier * to the server. */ @@ -323,7 +220,7 @@ class Client extends EventEmitter { this.sender.sendServer(`HI#${hdid}#%`); this.sender.sendServer("ID#webAO#webAO#%"); if (mode !== "replay") { - this.checkUpdater = setInterval(() => this.sendCheck(), 5000); + this.checkUpdater = setInterval(() => this.sender.sendCheck(), 5000); } } @@ -400,31 +297,6 @@ class Client extends EventEmitter { } /** - * Requests to play as a specified character. - * @param {number} character the character ID - */ - sendCharacter(character: number) { - if (character === -1 || this.chars[character].name) { - this.sender.sendServer(`CC#${this.playerID}#${character}#web#%`); - } - } - - /** - * Requests to select a music track. - * @param {number?} song the song to be played - */ - sendMusic(song: string) { - this.sender.sendServer(`MC#${song}#${this.charID}#%`); - } - - /** - * Sends a keepalive packet. - */ - sendCheck() { - this.sender.sendServer(`CH#${this.charID}#%`); - } - - /** * Triggered when a connection is established to the server. */ onOpen(_e: Event) { diff --git a/webAO/client/sender/index.ts b/webAO/client/sender/index.ts index ce5b488..41a6bd5 100644 --- a/webAO/client/sender/index.ts +++ b/webAO/client/sender/index.ts @@ -1,6 +1,16 @@ import { sendIC } from "./sendIC"; import { sendSelf } from './sendSelf' import { sendServer } from './sendServer' +import { sendCheck } from './sendCheck' +import {sendHP} from './sendHP' +import {sendOOC} from './sendOOC' +import {sendCharacter} from './sendCharacter' +import {sendRT} from './sendRT' +import {sendMusicChange} from './sendMusicChange' +import {sendZZ} from './sendZZ' +import {sendEE} from './sendEE' +import {sendDE} from './sendDE' +import {sendPE} from './sendPE' export interface ISender { sendIC: (deskmod: number, preanim: string, @@ -30,10 +40,29 @@ export interface ISender { effect: string) => void sendSelf: (message: string) => void sendServer: (message: string) => void + sendCheck: () => void + sendHP: (side: number, hp: number) => void + sendOOC: (message: string) => void + sendCharacter: (character: number) => void + sendRT: (testimony: string) => void + sendMusicChange: (track: string) => void + sendZZ: (msg: string) => void + sendEE: (id: number, name: string, desc: string, img: string) => void + sendDE: (id: number) => void + sendPE: (name: string, desc: string, img: string) => void } export const sender = { sendIC, sendSelf, - sendServer - + sendServer, + sendCheck, + sendHP, + sendOOC, + sendCharacter, + sendRT, + sendMusicChange, + sendZZ, + sendEE, + sendDE, + sendPE }
\ No newline at end of file diff --git a/webAO/client/sender/sendCharacter.ts b/webAO/client/sender/sendCharacter.ts new file mode 100644 index 0000000..5e81727 --- /dev/null +++ b/webAO/client/sender/sendCharacter.ts @@ -0,0 +1,11 @@ +import { client } from "../../client"; + +/** + * Requests to play as a specified character. + * @param {number} character the character ID + */ +export const sendCharacter = (character: number) => { + if (character === -1 || client.chars[character].name) { + client.sender.sendServer(`CC#${client.playerID}#${character}#web#%`); + } +}
\ No newline at end of file diff --git a/webAO/client/sender/sendCheck.ts b/webAO/client/sender/sendCheck.ts new file mode 100644 index 0000000..91b3a02 --- /dev/null +++ b/webAO/client/sender/sendCheck.ts @@ -0,0 +1,8 @@ +import { client } from "../../client"; + +/** + * Sends a keepalive packet. + */ +export const sendCheck = () => { + client.sender.sendServer(`CH#${client.charID}#%`); +} diff --git a/webAO/client/sender/sendDE.ts b/webAO/client/sender/sendDE.ts new file mode 100644 index 0000000..4d94d65 --- /dev/null +++ b/webAO/client/sender/sendDE.ts @@ -0,0 +1,9 @@ +import { client } from "../../client"; + +/** + * Sends delete evidence command. + * @param {number} evidence id + */ +export const sendDE = (id: number) => { + client.sender.sendServer(`DE#${id}#%`); +}
\ No newline at end of file diff --git a/webAO/client/sender/sendEE.ts b/webAO/client/sender/sendEE.ts new file mode 100644 index 0000000..7c5bfe3 --- /dev/null +++ b/webAO/client/sender/sendEE.ts @@ -0,0 +1,16 @@ +import { client } from "../../client"; +import { escapeChat } from "../../encoding"; + + +/** + * Sends edit evidence command. + * @param {number} evidence id + * @param {string} evidence name + * @param {string} evidence description + * @param {string} evidence image filename + */ +export const sendEE = (id: number, name: string, desc: string, img: string) => { + client.sender.sendServer( + `EE#${id}#${escapeChat(name)}#${escapeChat(desc)}#${escapeChat(img)}#%` + ); +}
\ No newline at end of file diff --git a/webAO/client/sender/sendHP.ts b/webAO/client/sender/sendHP.ts new file mode 100644 index 0000000..d007094 --- /dev/null +++ b/webAO/client/sender/sendHP.ts @@ -0,0 +1,10 @@ +import { client } from "../../client"; + +/** + * Sends health point command. + * @param {number} side the position + * @param {number} hp the health point + */ +export const sendHP = (side: number, hp: number) => { + client.sender.sendServer(`HP#${side}#${hp}#%`); +}
\ No newline at end of file diff --git a/webAO/client/sender/sendMusic.ts b/webAO/client/sender/sendMusic.ts new file mode 100644 index 0000000..eceba08 --- /dev/null +++ b/webAO/client/sender/sendMusic.ts @@ -0,0 +1,10 @@ +import { client } from "../../client"; + + +/** + * Requests to select a music track. + * @param {number?} song the song to be played + */ +export const sendMusic = (song: string) => { + client.sender.sendServer(`MC#${song}#${client.charID}#%`); +}
\ No newline at end of file diff --git a/webAO/client/sender/sendMusicChange.ts b/webAO/client/sender/sendMusicChange.ts new file mode 100644 index 0000000..50c6306 --- /dev/null +++ b/webAO/client/sender/sendMusicChange.ts @@ -0,0 +1,10 @@ +import { client } from "../../client"; + + +/** + * Requests to change the music to the specified track. + * @param {string} track the track ID + */ +export const sendMusicChange = (track: string) => { + client.sender.sendServer(`MC#${track}#${client.charID}#%`); +} diff --git a/webAO/client/sender/sendOOC.ts b/webAO/client/sender/sendOOC.ts new file mode 100644 index 0000000..a410b5f --- /dev/null +++ b/webAO/client/sender/sendOOC.ts @@ -0,0 +1,33 @@ +import { client } from '../../client' +import { escapeChat } from '../../encoding'; +import setCookie from '../../utils/setCookie'; + +/** + * Sends an out-of-character chat message. + * @param {string} message the message to send + */ +export const sendOOC = (message: string) => { + setCookie( + "OOC_name", + (<HTMLInputElement>document.getElementById("OOC_name")).value + ); + const oocName = `${escapeChat( + (<HTMLInputElement>document.getElementById("OOC_name")).value + )}`; + const oocMessage = `${escapeChat(message)}`; + + const commands = { + "/save_chatlog": client.saveChatlogHandle, + }; + const commandsMap = new Map(Object.entries(commands)); + + if (oocMessage && commandsMap.has(oocMessage.toLowerCase())) { + try { + commandsMap.get(oocMessage.toLowerCase())(); + } catch (e) { + // Command Not Recognized + } + } else { + client.sender.sendServer(`CT#${oocName}#${oocMessage}#%`); + } +}
\ No newline at end of file diff --git a/webAO/client/sender/sendPE.ts b/webAO/client/sender/sendPE.ts new file mode 100644 index 0000000..984fc4d --- /dev/null +++ b/webAO/client/sender/sendPE.ts @@ -0,0 +1,14 @@ +import { client } from "../../client"; +import { escapeChat } from "../../encoding"; + +/** + * Sends add evidence command. + * @param {string} evidence name + * @param {string} evidence description + * @param {string} evidence image filename + */ +export const sendPE = (name: string, desc: string, img: string) => { + client.sender.sendServer( + `PE#${escapeChat(name)}#${escapeChat(desc)}#${escapeChat(img)}#%` + ); +}
\ No newline at end of file diff --git a/webAO/client/sender/sendRT.ts b/webAO/client/sender/sendRT.ts new file mode 100644 index 0000000..2d6c60a --- /dev/null +++ b/webAO/client/sender/sendRT.ts @@ -0,0 +1,9 @@ +import { client } from "../../client"; + +/** + * Sends testimony command. + * @param {string} testimony type + */ +export const sendRT = (testimony: string) => { + client.sender.sendServer(`RT#${testimony}#%`); +}
\ No newline at end of file diff --git a/webAO/client/sender/sendZZ.ts b/webAO/client/sender/sendZZ.ts new file mode 100644 index 0000000..237ab37 --- /dev/null +++ b/webAO/client/sender/sendZZ.ts @@ -0,0 +1,13 @@ +import { client, extrafeatures } from "../../client"; + +/** + * Sends call mod command. + * @param {string} message to mod + */ +export const sendZZ = (msg: string) => { + if (extrafeatures.includes("modcall_reason")) { + client.sender.sendServer(`ZZ#${msg}#%`); + } else { + client.sender.sendServer("ZZ#%"); + } +}
\ No newline at end of file diff --git a/webAO/dom/addEvidence.ts b/webAO/dom/addEvidence.ts index 89bb4d5..8a13f06 100644 --- a/webAO/dom/addEvidence.ts +++ b/webAO/dom/addEvidence.ts @@ -8,7 +8,7 @@ import { cancelEvidence } from "./cancelEvidence"; const evidence_select = <HTMLSelectElement>( document.getElementById("evi_select") ); - client.sendPE( + client.sender.sendPE( (<HTMLInputElement>document.getElementById("evi_name")).value, (<HTMLInputElement>document.getElementById("evi_desc")).value, evidence_select.selectedIndex === 0 diff --git a/webAO/dom/addHPD.ts b/webAO/dom/addHPD.ts index 12d1c07..8f7e1f7 100644 --- a/webAO/dom/addHPD.ts +++ b/webAO/dom/addHPD.ts @@ -4,6 +4,6 @@ import { client } from "../client"; * Increment defense health point. */ export function addHPD() { - client.sendHP(1, client.hp[0] + 1); + client.sender.sendHP(1, client.hp[0] + 1); } window.addHPD = addHPD;
\ No newline at end of file diff --git a/webAO/dom/addHPP.ts b/webAO/dom/addHPP.ts index 4a1521c..1379f7c 100644 --- a/webAO/dom/addHPP.ts +++ b/webAO/dom/addHPP.ts @@ -4,6 +4,6 @@ import { client } from "../client"; * Increment prosecution health point. */ export function addHPP() { - client.sendHP(2, client.hp[1] + 1); + client.sender.sendHP(2, client.hp[1] + 1); } window.addHPP = addHPP;
\ No newline at end of file diff --git a/webAO/dom/areaClick.ts b/webAO/dom/areaClick.ts index 6c3ff6b..1b0fe52 100644 --- a/webAO/dom/areaClick.ts +++ b/webAO/dom/areaClick.ts @@ -5,7 +5,7 @@ import { client } from '../client' */ export function area_click(el: HTMLElement) { const area = client.areas[el.id.substr(4)].name; - client.sendMusicChange(area); + client.sender.sendMusicChange(area); const areaHr = document.createElement("div"); areaHr.className = "hrtext"; diff --git a/webAO/dom/callMod.ts b/webAO/dom/callMod.ts index 0c52433..a2e2685 100644 --- a/webAO/dom/callMod.ts +++ b/webAO/dom/callMod.ts @@ -10,7 +10,7 @@ export function callMod() { if (modcall == null || modcall === "") { // cancel } else { - client.sendZZ(modcall); + client.sender.sendZZ(modcall); } } window.callMod = callMod;
\ No newline at end of file diff --git a/webAO/dom/changeBackgroundOOC.ts b/webAO/dom/changeBackgroundOOC.ts index ff5aaaa..1608ebe 100644 --- a/webAO/dom/changeBackgroundOOC.ts +++ b/webAO/dom/changeBackgroundOOC.ts @@ -20,7 +20,7 @@ export function changeBackgroundOOC() { if (mode === "join") { - client.sendOOC(`/${changeBGCommand.replace("$1", filename)}`); + client.sender.sendOOC(`/${changeBGCommand.replace("$1", filename)}`); } else if (mode === "replay") { client.sender.sendSelf(`BN#${filename}#%`); } diff --git a/webAO/dom/changeRoleOOC.ts b/webAO/dom/changeRoleOOC.ts index ec7b65d..7d89bee 100644 --- a/webAO/dom/changeRoleOOC.ts +++ b/webAO/dom/changeRoleOOC.ts @@ -6,7 +6,7 @@ import { client } from '../client' export function changeRoleOOC() { const roleselect = <HTMLInputElement>document.getElementById("role_select"); - client.sendOOC(`/pos ${roleselect.value}`); + client.sender.sendOOC(`/pos ${roleselect.value}`); client.sender.sendServer(`SP#${roleselect.value}#%`); updateActionCommands(roleselect.value); } diff --git a/webAO/dom/deleteEvidence.ts b/webAO/dom/deleteEvidence.ts index f007cdf..cd299e4 100644 --- a/webAO/dom/deleteEvidence.ts +++ b/webAO/dom/deleteEvidence.ts @@ -6,7 +6,7 @@ import { cancelEvidence } from "./cancelEvidence"; */ export function deleteEvidence() { const id = client.selectedEvidence - 1; - client.sendDE(id); + client.sender.sendDE(id); cancelEvidence(); } window.deleteEvidence = deleteEvidence;
\ No newline at end of file diff --git a/webAO/dom/editEvidence.ts b/webAO/dom/editEvidence.ts index 2cc4565..931caad 100644 --- a/webAO/dom/editEvidence.ts +++ b/webAO/dom/editEvidence.ts @@ -9,7 +9,7 @@ export function editEvidence() { document.getElementById("evi_select") ); const id = client.selectedEvidence - 1; - client.sendEE( + client.sender.sendEE( id, (<HTMLInputElement>document.getElementById("evi_name")).value, (<HTMLInputElement>document.getElementById("evi_desc")).value, diff --git a/webAO/dom/guilty.ts b/webAO/dom/guilty.ts index f7fa5b8..f008065 100644 --- a/webAO/dom/guilty.ts +++ b/webAO/dom/guilty.ts @@ -4,6 +4,6 @@ import { client } from "../client"; * Declare the defendant not guilty */ export function guilty() { - client.sendRT("judgeruling#1"); + client.sender.sendRT("judgeruling#1"); } window.guilty = guilty;
\ No newline at end of file diff --git a/webAO/dom/initCE.ts b/webAO/dom/initCE.ts index 87bc256..fd57d74 100644 --- a/webAO/dom/initCE.ts +++ b/webAO/dom/initCE.ts @@ -4,6 +4,6 @@ import { client } from "../client"; * Declare cross examination. */ export function initCE() { - client.sendRT("testimony2"); + client.sender.sendRT("testimony2"); } window.initCE = initCE;
\ No newline at end of file diff --git a/webAO/dom/initWT.ts b/webAO/dom/initWT.ts index b6268fc..d99fc3e 100644 --- a/webAO/dom/initWT.ts +++ b/webAO/dom/initWT.ts @@ -4,6 +4,6 @@ import { client } from "../client"; * Declare witness testimony. */ export function initWT() { - client.sendRT("testimony1"); + client.sender.sendRT("testimony1"); } window.initWT = initWT;
\ No newline at end of file diff --git a/webAO/dom/musicListClick.ts b/webAO/dom/musicListClick.ts index 8fd3be5..2243553 100644 --- a/webAO/dom/musicListClick.ts +++ b/webAO/dom/musicListClick.ts @@ -7,7 +7,7 @@ export function musiclist_click(_event: Event) { const playtrack = (<HTMLInputElement>( document.getElementById("client_musiclist") )).value; - client.sendMusicChange(playtrack); + client.sender.sendMusicChange(playtrack); // This is here so you can't actually select multiple tracks, // even though the select tag has the multiple option to render differently diff --git a/webAO/dom/notGuilty.ts b/webAO/dom/notGuilty.ts index e15ee4b..95b830b 100644 --- a/webAO/dom/notGuilty.ts +++ b/webAO/dom/notGuilty.ts @@ -4,6 +4,6 @@ import { client } from "../client"; * Declare the defendant not guilty */ export function notguilty() { - client.sendRT("judgeruling#0"); + client.sender.sendRT("judgeruling#0"); } window.notguilty = notguilty;
\ No newline at end of file diff --git a/webAO/dom/onOOCEnter.ts b/webAO/dom/onOOCEnter.ts index a6bde4c..d7ec21b 100644 --- a/webAO/dom/onOOCEnter.ts +++ b/webAO/dom/onOOCEnter.ts @@ -4,9 +4,8 @@ import { client } from "../client"; * @param {KeyboardEvent} event */ export function onOOCEnter(event: KeyboardEvent) { - console.log('FUCK') if (event.keyCode === 13) { - client.sendOOC( + client.sender.sendOOC( (<HTMLInputElement>document.getElementById("client_oocinputbox")).value ); (<HTMLInputElement>document.getElementById("client_oocinputbox")).value = diff --git a/webAO/dom/pickChar.ts b/webAO/dom/pickChar.ts index 5773125..82fb6af 100644 --- a/webAO/dom/pickChar.ts +++ b/webAO/dom/pickChar.ts @@ -11,6 +11,6 @@ export function pickChar(ccharacter: number) { document.getElementById("client_waiting")!.style.display = "none"; document.getElementById("client_charselect")!.style.display = "none"; } - client.sendCharacter(ccharacter); + client.sender.sendCharacter(ccharacter); } window.pickChar = pickChar;
\ No newline at end of file diff --git a/webAO/dom/randomCharacterOOC.ts b/webAO/dom/randomCharacterOOC.ts index 507c3f0..657a474 100644 --- a/webAO/dom/randomCharacterOOC.ts +++ b/webAO/dom/randomCharacterOOC.ts @@ -3,6 +3,6 @@ import { client } from '../client' * Random character via OOC. */ export function randomCharacterOOC() { - client.sendOOC(`/randomchar`); + client.sender.sendOOC(`/randomchar`); } window.randomCharacterOOC = randomCharacterOOC;
\ No newline at end of file diff --git a/webAO/dom/redHPD.ts b/webAO/dom/redHPD.ts index 7b47c23..e228d21 100644 --- a/webAO/dom/redHPD.ts +++ b/webAO/dom/redHPD.ts @@ -4,6 +4,6 @@ import { client } from "../client"; * Decrement defense health point. */ export function redHPD() { - client.sendHP(1, client.hp[0] - 1); + client.sender.sendHP(1, client.hp[0] - 1); } window.redHPD = redHPD;
\ No newline at end of file diff --git a/webAO/dom/redHPP.ts b/webAO/dom/redHPP.ts index fb6711e..efde941 100644 --- a/webAO/dom/redHPP.ts +++ b/webAO/dom/redHPP.ts @@ -4,6 +4,6 @@ import { client } from "../client"; * Decrement prosecution health point. */ export function redHPP() { - client.sendHP(2, client.hp[1] - 1); + client.sender.sendHP(2, client.hp[1] - 1); } window.redHPP = redHPP;
\ No newline at end of file |
