aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstonedDiscord <Tukz@gmx.de>2022-08-30 22:39:43 +0200
committerGitHub <noreply@github.com>2022-08-30 22:39:43 +0200
commitcced5e71d9004eaf34156935d214eac82204ab4b (patch)
treeaf3481664cebef9e0f1afbfe74629084c897ec40
parent325aa41d1216facbb7228743930a8ad21afec7aa (diff)
parent3d6e61c6b0962cea539c6d780d68a7ad0b64bee1 (diff)
Merge pull request #155 from caleb-mabry/move-two-packets
Move three packets
-rw-r--r--webAO/client.ts125
-rw-r--r--webAO/packets/handlers/handleCT.ts17
-rw-r--r--webAO/packets/handlers/handleMC.ts41
-rw-r--r--webAO/packets/handlers/handleRMC.ts24
4 files changed, 109 insertions, 98 deletions
diff --git a/webAO/client.ts b/webAO/client.ts
index a2735b2..676aa3f 100644
--- a/webAO/client.ts
+++ b/webAO/client.ts
@@ -13,7 +13,9 @@ 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 chatbox_arr from "./styles/chatbox/chatboxes.js";
import iniParse from "./iniParse";
import getCookie from "./utils/getCookie";
@@ -34,7 +36,7 @@ const version = process.env.npm_package_version;
import masterViewport, { Viewport } from "./viewport";
import { handleMS } from './packets/handlers/handleMS';
-let { ip: serverIP, mode, asset, theme } = queryParser() ;
+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/";
export let AO_HOST = asset || DEFAULT_HOST;
@@ -205,7 +207,7 @@ class Client extends EventEmitter {
this.selectedEmote = -1;
this.selectedEvidence = 0;
-
+
this.checkUpdater = null;
this.viewport = masterViewport(this);
/**
@@ -213,9 +215,9 @@ class Client extends EventEmitter {
* If you implement a new command, you need to add it here
*/
this.on("MS", handleMS);
- this.on("CT", this.handleCT.bind(this));
- this.on("MC", this.handleMC.bind(this));
- this.on("RMC", this.handleRMC.bind(this));
+ this.on("CT", handleCT);
+ this.on("MC", handleMC);
+ this.on("RMC", handleRMC);
this.on("CI", this.handleCI.bind(this));
this.on("SC", this.handleSC.bind(this));
this.on("EI", this.handleEI.bind(this));
@@ -252,9 +254,9 @@ class Client extends EventEmitter {
this.on("ackMS", this.handleackMS.bind(this));
this.on("SP", this.handleSP.bind(this));
this.on("JD", this.handleJD.bind(this));
- this.on("decryptor", () => {});
- this.on("CHECK", () => {});
- this.on("CH", () => {});
+ this.on("decryptor", () => { });
+ this.on("CHECK", () => { });
+ this.on("CH", () => { });
this._lastTimeICReceived = new Date(0);
}
@@ -436,8 +438,7 @@ class Client extends EventEmitter {
if (mode === "replay") {
(<HTMLInputElement>(
document.getElementById("client_ooclog")
- )).value += `wait#${
- (<HTMLInputElement>document.getElementById("client_replaytimer")).value
+ )).value += `wait#${(<HTMLInputElement>document.getElementById("client_replaytimer")).value
}#%\r\n`;
}
}
@@ -741,82 +742,11 @@ class Client extends EventEmitter {
- /**
- * Handles an out-of-character chat message.
- * @param {Array} args packet arguments
- */
- handleCT(args: string[]) {
- if (mode !== "replay") {
- const oocLog = document.getElementById("client_ooclog");
- oocLog.innerHTML += `${prepChat(args[1])}: ${prepChat(args[2])}\r\n`;
- if (oocLog.scrollTop > oocLog.scrollHeight - 600) {
- oocLog.scrollTop = oocLog.scrollHeight;
- }
- }
- }
- /**
- * Handles a music change to an arbitrary resource.
- * @param {Array} args packet arguments
- */
- handleMC(args: string[]) {
- const track = prepChat(args[1]);
- let charID = Number(args[2]);
- const showname = args[3] || "";
- const looping = Boolean(args[4]);
- const channel = Number(args[5]) || 0;
- // const fading = Number(args[6]) || 0; // unused in web
-
- const music = this.viewport.music[channel];
- let musicname;
- music.pause();
- if (track.startsWith("http")) {
- music.src = track;
- } else {
- music.src = `${AO_HOST}sounds/music/${encodeURI(track.toLowerCase())}`;
- }
- music.loop = looping;
- music.play();
- try {
- musicname = this.chars[charID].name;
- } catch (e) {
- charID = -1;
- }
- if (charID >= 0) {
- musicname = this.chars[charID].name;
- appendICLog(`${musicname} changed music to ${track}`);
- } else {
- appendICLog(`The music was changed to ${track}`);
- }
- document.getElementById("client_trackstatustext").innerText = track;
- }
- // TODO BUG:
- // this.viewport.music is an array. Therefore you must access elements
- /**
- * Handles a music change to an arbitrary resource, with an offset in seconds.
- * @param {Array} args packet arguments
- */
- handleRMC(args: string[]) {
- this.viewport.music.pause();
- const { music } = this.viewport;
- // Music offset + drift from song loading
- music.totime = args[1];
- music.offset = new Date().getTime() / 1000;
- music.addEventListener(
- "loadedmetadata",
- () => {
- music.currentTime += parseFloat(
- music.totime + (new Date().getTime() / 1000 - music.offset)
- ).toFixed(3);
- music.play();
- },
- false
- );
- }
/**
* Handles the incoming character information, and downloads the sprite + ini for it
@@ -958,7 +888,7 @@ class Client extends EventEmitter {
document.getElementById("client_loadingtext").innerHTML =
"Loading Characters";
- for (let i = 1; i < args.length-1; i++) {
+ for (let i = 1; i < args.length - 1; i++) {
document.getElementById(
"client_loadingtext"
).innerHTML = `Loading Character ${i}/${this.char_list_length}`;
@@ -2050,9 +1980,8 @@ export function mutelist_click(_event: Event) {
if (client.chars[selected_character.value].muted === false) {
client.chars[selected_character.value].muted = true;
- selected_character.text = `${
- client.chars[selected_character.value].name
- } (muted)`;
+ selected_character.text = `${client.chars[selected_character.value].name
+ } (muted)`;
console.info(`muted ${client.chars[selected_character.value].name}`);
} else {
client.chars[selected_character.value].muted = false;
@@ -2562,26 +2491,26 @@ export function resizeChatbox() {
chatContainerBox.style.fontSize = `${(gameHeight * 0.0521).toFixed(1)}px`;
const trackstatus = <HTMLMarqueeElement>(document.getElementById("client_trackstatustext"));
- trackstatus.width = (trackstatus.offsetWidth-1)+"px";
+ trackstatus.width = (trackstatus.offsetWidth - 1) + "px";
//clock
const now = new Date();
- let weekday = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
- const month = ["January","February","March","April","May","June","July","August","September","October","November","December"];
+ let weekday = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
+ const month = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
document.getElementById("client_clock_month").innerText = month[now.getMonth()];
console.debug(CHATBOX);
if (CHATBOX == "acww") {
- weekday = ["Su","Mo","Tu","We","Th","Fr","Sa"];
- document.getElementById("client_clock_weekday").innerText = weekday[now.getDay()];
- document.getElementById("client_clock_date").innerText = now.getDay()+"/"+now.getMonth();
- document.getElementById("client_clock_time").innerText = now.getHours()+":"+now.getMinutes();
+ weekday = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
+ document.getElementById("client_clock_weekday").innerText = weekday[now.getDay()];
+ document.getElementById("client_clock_date").innerText = now.getDay() + "/" + now.getMonth();
+ document.getElementById("client_clock_time").innerText = now.getHours() + ":" + now.getMinutes();
} else if (CHATBOX == "key") {
- weekday = ["Sun.","Mon.","Tue.","Wed.","Thu.","Fri.","Sat."];
- document.getElementById("client_clock_weekday").innerText = weekday[now.getDay()];
- document.getElementById("client_clock_date").innerText = String(now.getDay());
+ weekday = ["Sun.", "Mon.", "Tue.", "Wed.", "Thu.", "Fri.", "Sat."];
+ document.getElementById("client_clock_weekday").innerText = weekday[now.getDay()];
+ document.getElementById("client_clock_date").innerText = String(now.getDay());
}
-
+
}
window.resizeChatbox = resizeChatbox;
@@ -2628,7 +2557,7 @@ export function updateActionCommands(side: string) {
// Update role selector
for (
let i = 0,
- role_select = <HTMLSelectElement>document.getElementById("role_select");
+ role_select = <HTMLSelectElement>document.getElementById("role_select");
i < role_select.options.length;
i++
) {
diff --git a/webAO/packets/handlers/handleCT.ts b/webAO/packets/handlers/handleCT.ts
new file mode 100644
index 0000000..cff9b24
--- /dev/null
+++ b/webAO/packets/handlers/handleCT.ts
@@ -0,0 +1,17 @@
+import queryParser from '../../utils/queryParser'
+import { prepChat } from '../../encoding'
+let { mode } = queryParser();
+
+/**
+ * Handles an out-of-character chat message.
+ * @param {Array} args packet arguments
+ */
+export const handleCT = (args: string[]) => {
+ if (mode !== "replay") {
+ const oocLog = document.getElementById("client_ooclog")!;
+ oocLog.innerHTML += `${prepChat(args[1])}: ${prepChat(args[2])}\r\n`;
+ if (oocLog.scrollTop > oocLog.scrollHeight - 600) {
+ oocLog.scrollTop = oocLog.scrollHeight;
+ }
+ }
+} \ No newline at end of file
diff --git a/webAO/packets/handlers/handleMC.ts b/webAO/packets/handlers/handleMC.ts
new file mode 100644
index 0000000..28254ba
--- /dev/null
+++ b/webAO/packets/handlers/handleMC.ts
@@ -0,0 +1,41 @@
+import { prepChat } from "../../encoding";
+import { AO_HOST, appendICLog, client } from '../../client'
+
+/**
+ * Handles a music change to an arbitrary resource.
+ * @param {Array} args packet arguments
+ */
+export const handleMC = (args: string[]) => {
+ const track = prepChat(args[1]);
+ let charID = Number(args[2]);
+ const showname = args[3] || "";
+ const looping = Boolean(args[4]);
+ const channel = Number(args[5]) || 0;
+ // const fading = Number(args[6]) || 0; // unused in web
+
+ const music = client.viewport.music[channel];
+ let musicname;
+ music.pause();
+ if (track.startsWith("http")) {
+ music.src = track;
+ } else {
+ music.src = `${AO_HOST}sounds/music/${encodeURI(track.toLowerCase())}`;
+ }
+ music.loop = looping;
+ music.play();
+
+ try {
+ musicname = client.chars[charID].name;
+ } catch (e) {
+ charID = -1;
+ }
+
+ if (charID >= 0) {
+ musicname = client.chars[charID].name;
+ appendICLog(`${musicname} changed music to ${track}`);
+ } else {
+ appendICLog(`The music was changed to ${track}`);
+ }
+
+ document.getElementById("client_trackstatustext")!.innerText = track;
+} \ No newline at end of file
diff --git a/webAO/packets/handlers/handleRMC.ts b/webAO/packets/handlers/handleRMC.ts
new file mode 100644
index 0000000..ada1ad2
--- /dev/null
+++ b/webAO/packets/handlers/handleRMC.ts
@@ -0,0 +1,24 @@
+import { client } from '../../client'
+// TODO BUG:
+// this.viewport.music is an array. Therefore you must access elements
+/**
+ * Handles a music change to an arbitrary resource, with an offset in seconds.
+ * @param {Array} args packet arguments
+ */
+export const handleRMC = (args: string[]) => {
+ client.viewport.music.pause();
+ const { music } = client.viewport;
+ // Music offset + drift from song loading
+ music.totime = args[1];
+ music.offset = new Date().getTime() / 1000;
+ music.addEventListener(
+ "loadedmetadata",
+ () => {
+ music.currentTime += parseFloat(
+ music.totime + (new Date().getTime() / 1000 - music.offset)
+ ).toFixed(3);
+ music.play();
+ },
+ false
+ );
+} \ No newline at end of file