aboutsummaryrefslogtreecommitdiff
path: root/webAO/packets/handlers/handleMC.ts
diff options
context:
space:
mode:
authorstonedDiscord <Tukz@gmx.de>2022-10-12 18:25:14 +0200
committerstonedDiscord <Tukz@gmx.de>2022-10-12 18:25:14 +0200
commit8a7942c0565298c29edbf0b271d5d7c7f9e56fd8 (patch)
tree67b788f40b7a4713904836de05f0e5876c32bd79 /webAO/packets/handlers/handleMC.ts
parenta83c8962b68f2cc0a0e22d988b8ff030057454e5 (diff)
parent82983e0c38383ec2602b4f41327342d1c8d0a8fd (diff)
Merge branch 'master' into 2fa
Diffstat (limited to 'webAO/packets/handlers/handleMC.ts')
-rw-r--r--webAO/packets/handlers/handleMC.ts43
1 files changed, 43 insertions, 0 deletions
diff --git a/webAO/packets/handlers/handleMC.ts b/webAO/packets/handlers/handleMC.ts
new file mode 100644
index 0000000..aeb178d
--- /dev/null
+++ b/webAO/packets/handlers/handleMC.ts
@@ -0,0 +1,43 @@
+import { prepChat } from "../../encoding";
+import { client } from '../../client'
+import { AO_HOST } from "../../client/aoHost";
+import { appendICLog } from '../../client/appendICLog'
+
+/**
+ * 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