Skip to content

1.3.1: aspect menu, war planning feature, bugfixes - #8

Merged
burgerfan41 merged 5 commits into
masterfrom
war-suite
Jul 22, 2026
Merged

1.3.1: aspect menu, war planning feature, bugfixes#8
burgerfan41 merged 5 commits into
masterfrom
war-suite

Conversation

@burgerfan41

Copy link
Copy Markdown
Collaborator

1.3.1: aspect menu, war planning feature, bugfixes

… chat onto client thread, fix timer sort + tower-bar bounds, shared TowerBar parser, per-tick attack scan, value-key item-texture cache
… config

Attack-timer HUD gains guild-shared coordination, all over the bridge websocket:

- Defence scrape: reads slot 13 of the /guild attack GUI ("Territory Defences")
  and shares it so a member who never opened the menu still sees the freshest
  enemy-territory rating. Priority scrape > chat > advancement, except a recent
  chat report wins when scouts reported conflicting scrapes (the attacker's
  committed value breaks the tie).
- Who's-going: right-click a timer row to mark yourself heading there (left-click
  still points the compass). Each member's HUD draws the goers' heads (capped at
  5 + "+N"), IGN on hover from the tab list. Server-attributed identity.
- Lifetime: all of it is authoritative only while the timer exists; when a
  territory's timer ends the mod tells the backend to clear it, and everything
  resets on world change / disconnect.
- Configurable "Max attack-timer rows" slider (1-50) collapses a 30-40 war spree
  into a "+N more" footer; the wall and beacon still use the full list.

Wynntils hides the guild war-timer scoreboard segment, so the timers are read
from a shadow Scoreboard fed by ConnectionScoreboardMixin at the head of
Connection.channelRead0 — upstream of the packet listener where Wynntils strips
it — and reset each connection so nothing stale carries over.
- Border on each goer's head: green once they're inside their marked
  territory, red while en route. This client reports its own inside-status
  (only on a border crossing) via warGoingInside; the border colour comes
  from the board's per-goer `inside` flag.
- Cross-world skins: a goer on a different Wynncraft world instance isn't in
  our player list, so their profile has no textures and only a default skin
  is available. Resolve those by uuid from Mojang off-thread, cached, showing
  the default until it lands. Same-world goers still use the player list.
- Cross-world skin fetch is now rate-limited per uuid (30s) instead of
  clearing an in-flight guard on failure. skinFor runs every frame, so the
  old code re-submitted a failing Mojang fetch every frame while the head was
  visible; the backoff caps it and makes the failure/empty paths symmetric.
- Inside-status crossings now must hold 500ms before being reported, and the
  settled value is what's sent. Border-edge jitter no longer spams updates,
  and because the mod sends the settled state (not a dropped one) the backend
  can't be left with a stale inside flag. The server-side inside debounce is
  removed accordingly.
@burgerfan41
burgerfan41 merged commit bfc8b1a into master Jul 22, 2026
1 check passed
@burgerfan41
burgerfan41 deleted the war-suite branch July 22, 2026 20:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant