aboutsummaryrefslogtreecommitdiff
path: root/webAO/client
diff options
context:
space:
mode:
authorstonedDiscord <Tukz@gmx.de>2022-09-09 17:19:51 +0200
committerGitHub <noreply@github.com>2022-09-09 17:19:51 +0200
commit09a23ea9d7ee37d8e2dfb036786c41ce37496c51 (patch)
treedeb962d3fa12966f0f7a29c9ed1784b3c83b5e40 /webAO/client
parent23d4ef48f894adf601039fe574a0e7dfe918a105 (diff)
parent776fe2f4241a67be354908df546f300f413a7d42 (diff)
Merge pull request #172 from caleb-mabry/finishing-sender
I'm so sorry - Finished moving sender functions
Diffstat (limited to 'webAO/client')
-rw-r--r--webAO/client/sender/index.ts33
-rw-r--r--webAO/client/sender/sendCharacter.ts11
-rw-r--r--webAO/client/sender/sendCheck.ts8
-rw-r--r--webAO/client/sender/sendDE.ts9
-rw-r--r--webAO/client/sender/sendEE.ts16
-rw-r--r--webAO/client/sender/sendHP.ts10
-rw-r--r--webAO/client/sender/sendMusic.ts10
-rw-r--r--webAO/client/sender/sendMusicChange.ts10
-rw-r--r--webAO/client/sender/sendOOC.ts33
-rw-r--r--webAO/client/sender/sendPE.ts14
-rw-r--r--webAO/client/sender/sendRT.ts9
-rw-r--r--webAO/client/sender/sendZZ.ts13
12 files changed, 174 insertions, 2 deletions
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