aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Skoland <davidskoland@gmail.com>2026-02-11 00:10:05 +0100
committerDavid Skoland <davidskoland@gmail.com>2026-02-11 00:10:05 +0100
commitc380112d5f29b68bfa301527405fdf372835900e (patch)
tree2adc4823adb41662db8062e6aaab4c3586e374d8
parent6314a7e61ad85aaf9313ed2947853e8e1d2aea33 (diff)
Filter playerlist by area and remove Area column
Hide players not in the client's current area. Re-render playerlist on area switch. Remove the now-redundant Area column. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
-rw-r--r--webAO/dom/areaClick.ts2
-rw-r--r--webAO/dom/renderPlayerList.ts10
-rw-r--r--webAO/styles/mod.css4
-rw-r--r--webAO/styles/nomod.css4
4 files changed, 10 insertions, 10 deletions
diff --git a/webAO/dom/areaClick.ts b/webAO/dom/areaClick.ts
index f7b177e..27682c7 100644
--- a/webAO/dom/areaClick.ts
+++ b/webAO/dom/areaClick.ts
@@ -1,4 +1,5 @@
import { client } from "../client";
+import { renderPlayerList } from "./renderPlayerList";
/**
* Triggered when an item on the area list is clicked.
* @param {HTMLElement} el
@@ -12,5 +13,6 @@ export function area_click(el: HTMLElement) {
areaHr.textContent = `switched to ${el.textContent}`;
document.getElementById("client_log")!.appendChild(areaHr);
client.area = Number(el.id.substring(4));
+ renderPlayerList();
}
window.area_click = area_click;
diff --git a/webAO/dom/renderPlayerList.ts b/webAO/dom/renderPlayerList.ts
index a78851b..a382194 100644
--- a/webAO/dom/renderPlayerList.ts
+++ b/webAO/dom/renderPlayerList.ts
@@ -6,7 +6,7 @@ export function renderPlayerList() {
list.innerHTML = "";
const header = list.createTHead().insertRow();
- for (const label of ["Icon", "Character", "Showname", "OOC Name", "Area"]) {
+ for (const label of ["Icon", "Character", "Showname", "OOC Name"]) {
const th = document.createElement("th");
th.textContent = label;
header.appendChild(th);
@@ -16,6 +16,7 @@ export function renderPlayerList() {
for (const [playerID, player] of client.playerlist) {
const playerRow = body.insertRow();
playerRow.id = `client_playerlist_entry${playerID}`;
+ playerRow.style.display = player.area === client.area ? "" : "none";
const imgCell = playerRow.insertCell(0);
imgCell.style.width = "64px";
@@ -38,17 +39,14 @@ export function renderPlayerList() {
const oocNameCell = playerRow.insertCell(3);
oocNameCell.textContent = player.name;
- const areaCell = playerRow.insertCell(4);
- areaCell.textContent = String(player.area);
-
- const kickCell = playerRow.insertCell(5);
+ const kickCell = playerRow.insertCell(4);
kickCell.style.width = "64px";
const kick = document.createElement("button");
kick.innerText = "Kick";
kick.onclick = () => window.kickPlayer(playerID);
kickCell.appendChild(kick);
- const banCell = playerRow.insertCell(6);
+ const banCell = playerRow.insertCell(5);
banCell.style.width = "64px";
const ban = document.createElement("button");
ban.innerText = "Ban";
diff --git a/webAO/styles/mod.css b/webAO/styles/mod.css
index 05f8c87..1e077b3 100644
--- a/webAO/styles/mod.css
+++ b/webAO/styles/mod.css
@@ -1,4 +1,4 @@
-table#client_playerlist td:nth-child(6),
-td:nth-child(7) {
+table#client_playerlist td:nth-child(5),
+td:nth-child(6) {
display: inherit;
}
diff --git a/webAO/styles/nomod.css b/webAO/styles/nomod.css
index 132e40e..1c03547 100644
--- a/webAO/styles/nomod.css
+++ b/webAO/styles/nomod.css
@@ -1,4 +1,4 @@
-table#client_playerlist td:nth-child(6),
-td:nth-child(7) {
+table#client_playerlist td:nth-child(5),
+td:nth-child(6) {
display: none;
}