Skip to content

NeoTab 1.3.2

Choose a tag to compare

@DasEtwa DasEtwa released this 10 Jul 20:28
· 15 commits to main since this release

NeoTab 1.3.2

1.3.2 is a stability, interoperability, and performance patch for the 1.3.x feature line.

Lifecycle and correctness

  • Prevents delayed join work from recreating region or scoreboard state after a player has disconnected.
  • Restores tablist state only while NeoTab still owns it and yields when another plugin takes control.
  • Avoids replacing scoreboards that already contain objectives or teams and yields ownership when another plugin assigns a board later.
  • Clears stale update-check results after failures and respects the global ActionBar switch in timer and stopwatch services.
  • Preserves legacy ActionBar Timer configuration paths when editing timer text.
  • Keeps Region Profile boundary endpoints stable while Pos1 and Pos2 are edited in either order.

Permissions and Paper APIs

  • Rechecks granular permissions for GUI clicks and delayed chat callbacks.
  • Adds functional permission inheritance for scoreboard and ActionBar Extras parent nodes.
  • Uses Paper's Adventure-based AsyncChatEvent, inventory titles, and scoreboard components.
  • Removes deprecated scoreboard and Gradle resource-processing APIs.

Performance

  • Adds chunk-based Region Profile lookup with a safe fallback for extremely large regions.
  • Replaces the nearest-player all-pairs scan with a spatial grid.
  • Caches the visible advancement registry and per-player completion counts.
  • Shares player-independent footer components and skips unchanged tablist packets.
  • Coalesces YAML snapshots and performs atomic disk writes on a dedicated writer thread.

Tests and validation

  • Adds JUnit 5 regression coverage for YAML persistence, version ordering, timer parsing, and canonical region bounds.
  • Clean Gradle build and all regression tests pass without deprecation warnings.
  • Runtime smoke-tested on Paper 1.20.6, 1.21.11, and 26.1.2 with NeoTab enable, reload, command, RCON, and clean shutdown checks.

Compatibility

  • Paper 1.20.6+
  • Java 21 bytecode
  • LuckPerms, PlaceholderAPI, WorldEdit, and FastAsyncWorldEdit remain optional.