1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
|
import { sendPasskeyLoginRequest } from "./ext_packet";
import { pickChar } from "./dom/pickChar";
import { ReconnectButton } from "./dom/reconnectButton";
import { toggleShout } from "./dom/toggleShout";
import { toggleEffect } from "./dom/toggleEffect";
import { changeCharacter } from "./dom/changeCharacter";
import { randomCharacterOOC } from "./dom/randomCharacterOOC";
import { toggleElement } from "./dom/toggleElement";
import { resetOffset } from "./dom/resetOffset";
import { showname_click } from "./dom/showNameClick";
import { initWT } from "./dom/initWT";
import { initCE } from "./dom/initCE";
import { notguilty } from "./dom/notGuilty";
import { guilty } from "./dom/guilty";
import { redHPD } from "./dom/redHPD";
import { addHPD } from "./dom/addHPD";
import { redHPP } from "./dom/redHPP";
import { addHPP } from "./dom/addHPP";
import { toggleMenu } from "./dom/toggleMenu";
import { callMod } from "./dom/callMod";
import { changeBackgroundOOC } from "./dom/changeBackgroundOOC";
import { addEvidence } from "./dom/addEvidence";
import { editEvidence } from "./dom/editEvidence";
import { cancelEvidence } from "./dom/cancelEvidence";
import { deleteEvidence } from "./dom/deleteEvidence";
import { iniedit } from "./dom/iniEdit";
import { switchPanTilt } from "./dom/switchPanTilt";
import { switchAspectRatio } from "./dom/switchAspectRatio";
import { switchChatOffset } from "./dom/switchChatOffset";
import { DisconnectButton } from "./dom/disconnectButton";
import { onReplayGo } from "./dom/onReplayGo";
import { chartable_filter } from "./dom/charTableFilter";
import { musiclist_filter } from "./dom/musicListFilter";
import { musiclist_click } from "./dom/musicListClick";
import { changeRoleOOC } from "./dom/changeRoleOOC";
import { mutelist_click } from "./dom/muteListClick";
import { updateBackgroundPreview } from "./dom/updateBackgroundPreview";
import { updateEvidenceIcon } from "./dom/updateEvidenceIcon";
import { changeMusicVolume } from "./dom/changeMusicVolume";
import { changeBlipVolume } from "./dom/changeBlipVolume";
import { setChatbox } from "./dom/setChatbox";
import { reloadTheme } from "./dom/reloadTheme";
import { updateIniswap } from "./dom/updateIniswap";
import { changeCallwords } from "./dom/changeCallwords";
import { imgError } from "./dom/imgError";
import { charError } from "./dom/charError";
import { opusCheck } from "./dom/opusCheck";
import { onEnter } from "./dom/onEnter";
import { onOOCEnter } from "./dom/onOOCEnter";
import {
changeSFXVolume,
changeShoutVolume,
changeTestimonyVolume,
} from "./dom/changeVolume";
document.addEventListener("click", (e: MouseEvent) => {
if (!(e.target instanceof HTMLElement)) {
return;
}
const button = e.target.closest("[data-action]");
if (!(button instanceof HTMLElement)) {
return;
}
switch (button.dataset.action) {
case "pick-char":
pickChar(Number(button.dataset.id));
break;
case "toggle-shout":
toggleShout(Number(button.dataset.id));
break;
case "toggle-effect":
toggleEffect(button);
break;
case "toggle-menu":
toggleMenu(Number(button.dataset.id));
break;
default:
break;
}
});
document
.getElementById("client_reconnect")
.addEventListener("click", () => ReconnectButton());
document
.getElementById("char_change")
.addEventListener("click", changeCharacter);
document
.getElementById("char_random")
.addEventListener("click", () => randomCharacterOOC());
document
.getElementById("button_toggle_pairing")
.addEventListener("click", () => toggleElement("pairing_settings"));
document.getElementById("pair_reset").addEventListener("click", resetOffset);
document.getElementById("showname").addEventListener("click", showname_click);
document.getElementById("menu_wt").addEventListener("click", () => initWT());
document.getElementById("menu_ce").addEventListener("click", () => initCE());
document
.getElementById("menu_nguilty")
.addEventListener("click", () => notguilty());
document
.getElementById("menu_guilty")
.addEventListener("click", () => guilty());
document.getElementById("menu_rhpd").addEventListener("click", () => redHPD());
document.getElementById("menu_ahpd").addEventListener("click", () => addHPD());
document.getElementById("menu_rhpp").addEventListener("click", () => redHPP());
document.getElementById("menu_ahpp").addEventListener("click", () => addHPP());
document.getElementById("menu_cm").addEventListener("click", () => callMod());
document
.getElementById("bg_change")
.addEventListener("click", () => changeBackgroundOOC());
document
.getElementById("evi_add")
.addEventListener("click", () => addEvidence());
document
.getElementById("evi_edit")
.addEventListener("click", () => editEvidence());
document
.getElementById("evi_cancel")
.addEventListener("click", () => cancelEvidence());
document
.getElementById("evi_del")
.addEventListener("click", () => deleteEvidence());
document
.getElementById("client_inichange")
.addEventListener("click", () => iniedit());
document
.getElementById("client_pantilt")
.addEventListener("click", () => switchPanTilt());
document
.getElementById("client_hdviewport")
.addEventListener("click", () => switchAspectRatio());
document
.getElementById("client_hdviewport_offset")
.addEventListener("click", () => switchChatOffset());
document
.getElementById("client_disconnect")
.addEventListener("click", () => DisconnectButton());
document
.getElementById("client_replaygo")
.addEventListener("click", onReplayGo);
document
.getElementById("client_charactersearch")
.addEventListener("input", chartable_filter);
document
.getElementById("client_musicsearch")
.addEventListener("input", musiclist_filter);
document
.getElementById("client_musiclist")
.addEventListener("change", musiclist_click);
document
.getElementById("role_select")
.addEventListener("change", () => changeRoleOOC());
document
.getElementById("mute_select")
.addEventListener("change", mutelist_click);
document
.getElementById("bg_select")
.addEventListener("change", () => updateBackgroundPreview());
document
.getElementById("evi_select")
.addEventListener("change", () => updateEvidenceIcon());
document
.getElementById("client_mvolume")
.addEventListener("change", () => changeMusicVolume());
document
.getElementById("client_bvolume")
.addEventListener("change", () => changeBlipVolume());
document
.getElementById("client_themeselect")
.addEventListener("change", () => reloadTheme());
const chatboxselect = document.getElementById(
"client_chatboxselect",
) as HTMLSelectElement;
chatboxselect.addEventListener("change", () => setChatbox(chatboxselect.value));
document
.getElementById("client_iniselect")
.addEventListener("change", () => updateIniswap());
document
.getElementById("client_callwords")
.addEventListener("change", () => changeCallwords());
document.addEventListener(
"error",
(e: Event) => {
const target = e.target;
if (!(target instanceof HTMLElement)) {
return;
}
switch (target.dataset.error) {
case "img":
imgError(target as HTMLImageElement);
break;
case "char":
charError(target as HTMLImageElement);
break;
case "opus-check":
opusCheck(target as HTMLAudioElement);
break;
default:
break;
}
},
true,
);
document
.getElementById("client_inputbox")
.addEventListener("keypress", onEnter);
document
.getElementById("client_oocinputbox")
.addEventListener("keypress", onOOCEnter);
document
.getElementById("client_sfxaudio")
.addEventListener("volumechange", changeSFXVolume);
document
.getElementById("client_shoutaudio")
.addEventListener("volumechange", changeShoutVolume);
document
.getElementById("client_testimonyaudio")
.addEventListener("volumechange", changeTestimonyVolume);
|