aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--public/client.html2
-rw-r--r--tsconfig.json2
-rw-r--r--webAO/client.ts3
-rw-r--r--webAO/dom/muteListClick.ts19
-rw-r--r--webAO/encoding.ts20
-rw-r--r--webAO/packets/handlers/handleEM.ts2
-rw-r--r--webAO/packets/handlers/handleMS.ts7
-rw-r--r--webAO/styles/client.css9
-rw-r--r--webAO/viewport/constants/colors.ts1
-rw-r--r--webAO/viewport/utils/handleICSpeaking.ts2
10 files changed, 44 insertions, 23 deletions
diff --git a/public/client.html b/public/client.html
index 3f45793..ac27662 100644
--- a/public/client.html
+++ b/public/client.html
@@ -250,7 +250,7 @@
<input id="ic_chat_name" name="ic_chat_name" type="text">
<br>
<label for="showname">Show others:</label>
- <input id="showname" name="showname" type="checkbox" onclick="showname_click()">
+ <input id="showname" name="showname" type="checkbox" onclick="showname_click()" checked>
<br>
<br>
<label for="check_nonint">Noninterrupting Preanimation:</label>
diff --git a/tsconfig.json b/tsconfig.json
index 1a2dd33..7f8928e 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -3,7 +3,7 @@
"outDir": "./dist",
"allowJs": true,
"target": "es5",
- "lib": ["DOM","DOM.Iterable"],
+ "lib": ["DOM","DOM.Iterable","ES2021.String"],
"strict": true,
"strictNullChecks": false, //document.getElementBy
"downlevelIteration": true
diff --git a/webAO/client.ts b/webAO/client.ts
index 6df8748..a86664c 100644
--- a/webAO/client.ts
+++ b/webAO/client.ts
@@ -295,9 +295,8 @@ class Client extends EventEmitter {
fetchBackgroundList();
fetchEvidenceList();
fetchCharacterList();
- fetchManifest();
}
}
-export default Client; \ No newline at end of file
+export default Client;
diff --git a/webAO/dom/muteListClick.ts b/webAO/dom/muteListClick.ts
new file mode 100644
index 0000000..e7c9357
--- /dev/null
+++ b/webAO/dom/muteListClick.ts
@@ -0,0 +1,19 @@
+import { client } from "../client";
+/**
+ * Triggered when a character in the mute list is clicked
+ * @param {MouseEvent} event
+ */
+export function mutelist_click(_event: Event) {
+ const mutelist = <HTMLSelectElement>(document.getElementById('mute_select'));
+ const selected_character = mutelist.options[mutelist.selectedIndex];
+
+ 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)`;
+ console.info(`muted ${client.chars[selected_character.value].name}`);
+ } else {
+ client.chars[selected_character.value].muted = false;
+ selected_character.text = client.chars[selected_character.value].name;
+ }
+}
+window.mutelist_click = mutelist_click; \ No newline at end of file
diff --git a/webAO/encoding.ts b/webAO/encoding.ts
index 54770d0..3477d7b 100644
--- a/webAO/encoding.ts
+++ b/webAO/encoding.ts
@@ -4,10 +4,10 @@
*/
export function escapeChat(estring: string): string {
return estring
- .replace(/#/g, '<num>')
- .replace(/&/g, '<and>')
- .replace(/%/g, '<percent>')
- .replace(/\$/g, '<dollar>');
+ .replaceAll('#', '<num>')
+ .replaceAll('&', '<and>')
+ .replaceAll('%', '<percent>')
+ .replaceAll('$', '<dollar>');
}
/**
@@ -16,10 +16,10 @@ export function escapeChat(estring: string): string {
*/
export function unescapeChat(estring: string): string {
return estring
- .replace(/<num>/g, '#')
- .replace(/<and>/g, '&')
- .replace(/<percent>/g, '%')
- .replace(/<dollar>/g, '$');
+ .replaceAll('<num>', '#')
+ .replaceAll('<and>', '&')
+ .replaceAll('<percent>', '%')
+ .replaceAll('<dollar>', '$');
}
/**
@@ -31,8 +31,8 @@ export function unescapeChat(estring: string): string {
export function safeTags(unsafe: string): string {
if (unsafe) {
return unsafe
- .replace(/>/g, '&gt;')
- .replace(/</g, '&lt;');
+ .replaceAll('>', '>')
+ .replaceAll('<', '<');
}
return '';
}
diff --git a/webAO/packets/handlers/handleEM.ts b/webAO/packets/handlers/handleEM.ts
index 5e49ea4..cfe63b7 100644
--- a/webAO/packets/handlers/handleEM.ts
+++ b/webAO/packets/handlers/handleEM.ts
@@ -20,7 +20,7 @@ export const handleEM = (args: string[]) => {
for (let i = 2; i < args.length - 1; i++) {
if (i % 2 === 0) {
- const trackname = safeTags(args[i]);
+ const trackname = args[i];
const trackindex = Number(args[i - 1]);
(<HTMLProgressElement>(
document.getElementById("client_loadingbar")
diff --git a/webAO/packets/handlers/handleMS.ts b/webAO/packets/handlers/handleMS.ts
index 92d65db..c30e777 100644
--- a/webAO/packets/handlers/handleMS.ts
+++ b/webAO/packets/handlers/handleMS.ts
@@ -78,7 +78,7 @@ export const handleMS = (args: string[]) => {
if (extrafeatures.includes("cccc_ic_support")) {
const extra_cccc = {
- showname: safeTags(args[16]),
+ showname: prepChat(args[16]),
other_charid: Number(args[17]),
other_name: safeTags(args[18]),
other_emote: safeTags(args[19]),
@@ -154,6 +154,11 @@ export const handleMS = (args: string[]) => {
chatmsg = Object.assign(extra_28, chatmsg);
}
+ if (chatmsg.content.trim() === "") {
+ //blankpost
+ chatmsg.content = "";
+ }
+
// our own message appeared, reset the buttons
if (chatmsg.charid === client.charID) {
resetICParams();
diff --git a/webAO/styles/client.css b/webAO/styles/client.css
index 31bc64b..ced8339 100644
--- a/webAO/styles/client.css
+++ b/webAO/styles/client.css
@@ -21,15 +21,12 @@
.text_rainbow {
background-color: #fff;
- background-image: repeating-linear-gradient(to right,
- red 0% 8%, orange 8% 16%, yellow 16% 24%, green 24% 32%, blue 32% 40%,
- red 40% 48%, orange 48% 56%, yellow 56% 64%, green 64% 72%, blue 72% 80%,
- red 80% 88%, orange 88% 96%, yellow 96% 100%);
- background-size: 40% 40%;
+ background-image: repeating-linear-gradient(to right, red 0% 20%, orange 20% 40%, yellow 40% 60%, green 60% 80%, blue 80% 100%);
+ background-size: 75% 75%;
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
- animation: rainbow 4s linear infinite;
+ animation: rainbow 2s linear infinite;
}
@keyframes rainbow_alt {
diff --git a/webAO/viewport/constants/colors.ts b/webAO/viewport/constants/colors.ts
index aad3530..4858081 100644
--- a/webAO/viewport/constants/colors.ts
+++ b/webAO/viewport/constants/colors.ts
@@ -8,4 +8,5 @@ export const COLORS = [
"pink",
"cyan",
"grey",
+ "rainbow",
]; \ No newline at end of file
diff --git a/webAO/viewport/utils/handleICSpeaking.ts b/webAO/viewport/utils/handleICSpeaking.ts
index 83c216d..e2d147d 100644
--- a/webAO/viewport/utils/handleICSpeaking.ts
+++ b/webAO/viewport/utils/handleICSpeaking.ts
@@ -157,7 +157,7 @@ export const handle_ic_speaking = async (playerChatMsg: ChatMsg) => {
client.viewport.getChatmsg().startspeaking = false;
} else {
client.viewport.getChatmsg().startspeaking = true;
- if (client.viewport.getChatmsg().content !== "") chatContainerBox.style.opacity = "1";
+ if (client.viewport.getChatmsg().content.trim() !== "") chatContainerBox.style.opacity = "1";
}
client.viewport.getChatmsg().preanimdelay = gifLength;
const setAside = {