From a87d5a87167ee790b395f57eb5da19fbaa684537 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Wed, 7 Aug 2024 19:23:44 +0200 Subject: update layout --- webAO/packets/handlers/handlePR.ts | 23 +++++++++++++++++++++++ webAO/packets/handlers/handlePU.ts | 9 +++++++++ webAO/packets/handlers/handlePV.ts | 25 ++++++++++++++++--------- 3 files changed, 48 insertions(+), 9 deletions(-) create mode 100644 webAO/packets/handlers/handlePR.ts create mode 100644 webAO/packets/handlers/handlePU.ts (limited to 'webAO/packets') diff --git a/webAO/packets/handlers/handlePR.ts b/webAO/packets/handlers/handlePR.ts new file mode 100644 index 0000000..1908077 --- /dev/null +++ b/webAO/packets/handlers/handlePR.ts @@ -0,0 +1,23 @@ +import { client } from "../../client"; + +function addPlayer(playerID) { +const list = document.getElementById("client_playerlist"); + +} + +function removePlayer(playerID) { + const list = document.getElementById("client_playerlist"); + +} + +/** + * Handles a player joining or leaving + * @param {Array} args packet arguments + */ +export const handlePR = (args: string[]) => { + const playerID = Number(args[1]); + if (Number(args[2]) === 0) + addPlayer(playerID); + else if (Number(args[2]) === 1) + removePlayer(playerID); +} \ No newline at end of file diff --git a/webAO/packets/handlers/handlePU.ts b/webAO/packets/handlers/handlePU.ts new file mode 100644 index 0000000..0bc1201 --- /dev/null +++ b/webAO/packets/handlers/handlePU.ts @@ -0,0 +1,9 @@ +import { getCharIcon } from "../../client/handleCharacterInfo"; + +/** + * Handles a playerlist update + * @param {Array} args packet arguments + */ +export const handlePU = (args: string[]) => { + const playerID = Number(args[1]); +} \ No newline at end of file diff --git a/webAO/packets/handlers/handlePV.ts b/webAO/packets/handlers/handlePV.ts index 879d004..38657be 100644 --- a/webAO/packets/handlers/handlePV.ts +++ b/webAO/packets/handlers/handlePV.ts @@ -4,6 +4,19 @@ import { updateActionCommands } from '../../dom/updateActionCommands' import { pickEmotion } from '../../dom/pickEmotion' import { AO_HOST } from "../../client/aoHost"; +function addEmoteButton(i: Number, imgurl: string, desc: string) { + const emotesList = document.getElementById("client_emo"); + const emote_item = new Image(); + emote_item.id = "emo_" + i; + emote_item.className = "emote_button"; + emote_item.src = imgurl; + emote_item.alt = desc; + emote_item.title = desc; + emote_item.onclick = () => { window.pickEmotion(i) } + emotesList.appendChild(emote_item); +} + + /** * Handles the server's assignment of a character for the player to use. * PV # playerID (unused) # CID # character ID @@ -17,7 +30,7 @@ export const handlePV = async (args: string[]) => { const me = client.chars[client.charID]; client.selectedEmote = -1; const { emotes } = client; - const emotesList = document.getElementById("client_emo")!; + const emotesList = document.getElementById("client_emo"); emotesList.style.display = ""; emotesList.innerHTML = ""; // Clear emote box const ini = me.inifile; @@ -72,14 +85,8 @@ export const handlePV = async (args: string[]) => { button: url, }; - const emote_item = new Image(); - emote_item.id = "emo_" + i; - emote_item.className = "emote_button"; - emote_item.src = emotes[i].button; - emote_item.alt = emotes[i].desc; - emote_item.title = emotes[i].desc; - emote_item.onclick = () => { window.pickEmotion(i) } - emotesList.appendChild(emote_item); + addEmoteButton(i, url, emotes[i].desc); + if (i === 1) pickEmotion(1); } catch (e) { console.error(`missing emote ${i}`); -- cgit From 26d5691ce5d3840c458745409a70f196dc5474f3 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Wed, 7 Aug 2024 19:33:35 +0200 Subject: adding and removing works --- webAO/packets/handlers/handlePR.ts | 21 +++++++++++++++------ webAO/packets/packets.ts | 4 ++++ 2 files changed, 19 insertions(+), 6 deletions(-) (limited to 'webAO/packets') diff --git a/webAO/packets/handlers/handlePR.ts b/webAO/packets/handlers/handlePR.ts index 1908077..aa365af 100644 --- a/webAO/packets/handlers/handlePR.ts +++ b/webAO/packets/handlers/handlePR.ts @@ -1,13 +1,22 @@ import { client } from "../../client"; -function addPlayer(playerID) { -const list = document.getElementById("client_playerlist"); +function addPlayer(playerID: Number) { + const list = document.getElementById("client_playerlist"); + const playerRow = list.insertRow(); + playerRow.id = `client_playerlist_entry${playerID}`; + + const imgCell = playerRow.insertCell(0); + const img = document.createElement('img'); + imgCell.appendChild(img); + const nameCell = playerRow.insertCell(1); + const name = document.createTextNode('Unknown'); + nameCell.appendChild(name); } -function removePlayer(playerID) { - const list = document.getElementById("client_playerlist"); - +function removePlayer(playerID: Number) { + const playerRow = document.getElementById(`client_playerlist_entry${playerID}`); + playerRow.remove(); } /** @@ -19,5 +28,5 @@ export const handlePR = (args: string[]) => { if (Number(args[2]) === 0) addPlayer(playerID); else if (Number(args[2]) === 1) - removePlayer(playerID); + removePlayer(playerID); } \ No newline at end of file diff --git a/webAO/packets/packets.ts b/webAO/packets/packets.ts index 79c43c1..ab6e3b0 100644 --- a/webAO/packets/packets.ts +++ b/webAO/packets/packets.ts @@ -38,6 +38,8 @@ import { handleASS } from './handlers/handleASS' import { handleackMS } from './handlers/handleackMS' import { handleSP } from './handlers/handleSP' import { handleJD } from './handlers/handleJD' +import { handlePU } from './handlers/handlePU' +import { handlePR } from './handlers/handlePR' export const packets = { "MS": handleMS, @@ -80,6 +82,8 @@ export const packets = { "ackMS": handleackMS, "SP": handleSP, "JD": handleJD, + "PU": handlePU, + "PR": handlePR, "decryptor": () => { }, "CHECK": () => { }, "CH": () => { }, -- cgit From 8bbb97917a595ebbd2cef080b3df6cb331193663 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Wed, 7 Aug 2024 20:04:58 +0200 Subject: populate fields correctly --- webAO/packets/handlers/handlePR.ts | 9 +++++++-- webAO/packets/handlers/handlePU.ts | 22 +++++++++++++++++++++- 2 files changed, 28 insertions(+), 3 deletions(-) (limited to 'webAO/packets') diff --git a/webAO/packets/handlers/handlePR.ts b/webAO/packets/handlers/handlePR.ts index aa365af..d3f4364 100644 --- a/webAO/packets/handlers/handlePR.ts +++ b/webAO/packets/handlers/handlePR.ts @@ -9,9 +9,14 @@ function addPlayer(playerID: Number) { const img = document.createElement('img'); imgCell.appendChild(img); - const nameCell = playerRow.insertCell(1); const name = document.createTextNode('Unknown'); - nameCell.appendChild(name); + + const charNameCell = playerRow.insertCell(1); + charNameCell.appendChild(name); + const showNameCell = playerRow.insertCell(2); + showNameCell.appendChild(name); + const oocNameCell = playerRow.insertCell(3); + oocNameCell.appendChild(name); } function removePlayer(playerID: Number) { diff --git a/webAO/packets/handlers/handlePU.ts b/webAO/packets/handlers/handlePU.ts index 0bc1201..6db644b 100644 --- a/webAO/packets/handlers/handlePU.ts +++ b/webAO/packets/handlers/handlePU.ts @@ -5,5 +5,25 @@ import { getCharIcon } from "../../client/handleCharacterInfo"; * @param {Array} args packet arguments */ export const handlePU = (args: string[]) => { - const playerID = Number(args[1]); + const playerRow = document.getElementById(`client_playerlist_entry${Number(args[1])}`); + const type = Number(args[2]); + const data = args[3]; + switch (type) { + case 0: + const oocName = playerRow.childNodes[3]; + oocName.innerText = data; + break; + case 1: + const playerImg = playerRow.childNodes[0].firstChild; + getCharIcon(playerImg, data); + const charName = playerRow.childNodes[1]; + charName.innerText = data; + break; + case 2: + const showName = playerRow.childNodes[2]; + showName.innerText = data; + break; + default: + break; + } } \ No newline at end of file -- cgit From 73373ce08b060c97fcb6311e862b8261c3222d9f Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Wed, 7 Aug 2024 20:49:33 +0200 Subject: add ban button --- webAO/packets/handlers/handlePR.ts | 11 +++++++++-- webAO/packets/handlers/handlePV.ts | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) (limited to 'webAO/packets') diff --git a/webAO/packets/handlers/handlePR.ts b/webAO/packets/handlers/handlePR.ts index d3f4364..a52ad1f 100644 --- a/webAO/packets/handlers/handlePR.ts +++ b/webAO/packets/handlers/handlePR.ts @@ -1,6 +1,7 @@ import { client } from "../../client"; +import { banPlayer } from '../../dom/banPlayer' -function addPlayer(playerID: Number) { +function addPlayer(playerID: number) { const list = document.getElementById("client_playerlist"); const playerRow = list.insertRow(); playerRow.id = `client_playerlist_entry${playerID}`; @@ -17,9 +18,15 @@ function addPlayer(playerID: Number) { showNameCell.appendChild(name); const oocNameCell = playerRow.insertCell(3); oocNameCell.appendChild(name); + + const banCell = playerRow.insertCell(4); + const ban = document.createElement("button"); + ban.innerText = "Ban"; + ban.onclick = () => { window.banPlayer(playerID) } + banCell.appendChild(ban); } -function removePlayer(playerID: Number) { +function removePlayer(playerID: number) { const playerRow = document.getElementById(`client_playerlist_entry${playerID}`); playerRow.remove(); } diff --git a/webAO/packets/handlers/handlePV.ts b/webAO/packets/handlers/handlePV.ts index 38657be..5a04b89 100644 --- a/webAO/packets/handlers/handlePV.ts +++ b/webAO/packets/handlers/handlePV.ts @@ -4,7 +4,7 @@ import { updateActionCommands } from '../../dom/updateActionCommands' import { pickEmotion } from '../../dom/pickEmotion' import { AO_HOST } from "../../client/aoHost"; -function addEmoteButton(i: Number, imgurl: string, desc: string) { +function addEmoteButton(i: number, imgurl: string, desc: string) { const emotesList = document.getElementById("client_emo"); const emote_item = new Image(); emote_item.id = "emo_" + i; -- cgit