Skip to content

v25.3.3

Latest

Choose a tag to compare

@GreenArrowlol GreenArrowlol released this 27 Aug 14:13
· 1 commit to master since this release

BedWars1058 v25.3.3

Note

Stable release.

At a glance

Area Change
Scoreboard Team status (check/cross) moved back inline next to the team name on 1.20.3+
Stability Fixed a crash-the-arena NullPointerException in team lookups on a torn-down arena

Fixes

Scoreboard team status floating away from its team on 1.20.3+

Upstream draws the team status mark in the score slot of its sidebar line on 1.20.3 and newer. The client right-aligns the score to the widest line in the sidebar, so the mark ended up parked at the far right edge of the whole scoreboard, detached from the team it belonged to. On a resource pack with a narrow font it could look missing entirely. It is back inline, next to the team name, by default.

Technical detail

New config key:

scoreboard-settings:
  sidebar:
    team-status-in-score-slot: false

Set it to true to restore the upstream score-slot placement. The score slot renders blank (FixedFormat("")) when unused, so no stray numbers show up in its place.

Crash-the-arena NullPointerException in team lookups

An arena being torn down (destroyData()) nulls its team list. A task still mid-flight against that same arena could hit the null list while refreshing a player's sidebar, throwing and killing that arena's game logic for everyone in it.

Technical detail
java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because the return
value of "com.andrei1058.bedwars.arena.Arena.getTeams()" is null
    at com.andrei1058.bedwars.arena.Arena.getTeam(Arena.java:1845)
    at com.andrei1058.bedwars.arena.stats.StatisticsOrdered$StringParser.parseString(StatisticsOrdered.java:113)
    at com.andrei1058.bedwars.sidebar.BwSidebar.normalizeLines(BwSidebar.java:216)
    at com.andrei1058.bedwars.arena.Arena.changeStatus(Arena.java:1553)
    at com.andrei1058.bedwars.arena.tasks.GameStartingTask.run(GameStartingTask.java:134)

Arena.getTeams() now returns an empty list instead of null once the arena's data has been torn down, so every call site (getTeam(Player), getTeam(String), and everything else reading the team list) degrades gracefully instead of crashing.

Tip

Tested on Paper 1.8.8 and 1.20.4.


Betas that led here: v25.3.3-beta.3776 covered the scoreboard fix and was run on a live server before this build. The NullPointerException fix landed after that beta and went straight to stable, it was not separately beta-tested.

Base: built on top of v25.3.2.