diff options
Diffstat (limited to 'webAO/packets/handlers/handlePR.ts')
| -rw-r--r-- | webAO/packets/handlers/handlePR.ts | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/webAO/packets/handlers/handlePR.ts b/webAO/packets/handlers/handlePR.ts new file mode 100644 index 0000000..a52ad1f --- /dev/null +++ b/webAO/packets/handlers/handlePR.ts @@ -0,0 +1,44 @@ +import { client } from "../../client"; +import { banPlayer } from '../../dom/banPlayer' + +function addPlayer(playerID: number) { + const list = <HTMLTableElement>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 name = document.createTextNode('Unknown'); + + const charNameCell = playerRow.insertCell(1); + charNameCell.appendChild(name); + const showNameCell = playerRow.insertCell(2); + showNameCell.appendChild(name); + const oocNameCell = playerRow.insertCell(3); + oocNameCell.appendChild(name); + + const banCell = playerRow.insertCell(4); + const ban = <HTMLButtonElement>document.createElement("button"); + ban.innerText = "Ban"; + ban.onclick = () => { window.banPlayer(playerID) } + banCell.appendChild(ban); +} + +function removePlayer(playerID: number) { + const playerRow = <HTMLTableElement>document.getElementById(`client_playerlist_entry${playerID}`); + playerRow.remove(); +} + +/** + * 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 |
