TD LeaderBoard Changelog
Mit BuildUp ausgelieferte Version: 1.9.0
1.9.0 · 1.8.0 · 1.7.1 · 1.7.0 · 1.6.0 · 1.5.1 · 1.5.0 · 1.4.1 · 1.4.0 · 1.3.1 · 1.3.0 · 1.2.4 · 1.2.3 · 1.2.2 · 1.2.1 · 1.2.0 · 1.1.0 · 1.0.0
1.9.0
- Requires TDLibrary 0.19.0 or newer. The shared client lifecycle retains the existing leaderboard tooltip order and dotted backdrop; period loading retains its 256 MiB NBT limit and local period rotation.
1.8.0
Fixed
- Preserve world-board controller positions, titles, metrics, model halves, text placement, and complete-structure removal when structure templates are mirrored or rotated.
- Show offline-import progress and failures on world boards even when partial rows are available; mark refreshing and stale snapshots instead of showing a successful green footer.
- Keep the resolved page's last valid rows during automatic refreshes and timeouts after using To me.
Changed
- Consolidate the mod's licensing under a single All Rights Reserved license file and document the terms in the README, matching the existing mod metadata.
- Align the manual AFK acceptance checks with TDUtilities and the standalone-WATUT fallback behavior.
Tests
- Exercise real world-board placement/removal callbacks and shipped loot tables in an in-memory test fixture, covering both variants, every part, creative mode, mirroring, support removal, and chunk-boundary coordinates without starting a server.
- Reject malformed network buffers in decoder regression tests, including invalid row counts, enum values, text, bounds, and truncated packets.
1.7.1
Fixed
- Reject world-board placement when any of its eight parts would extend outside the world border.
- Limit the declared NeoForge compatibility range to 21.1.250 or newer within the 21.1 series, matching the documented requirements.
- Queue TAB, full-screen, and world-board snapshot requests together so five different board metrics can load without repeatedly exceeding the per-player request limit; discard superseded queries and requests for closed views.
- Reuse live-statistics samples and cached rankings within each 20-server-tick window instead of invalidating every ranking on each requested tick as play time increases. Login, logout, and the final shutdown sample still capture current counters.
- Stop cancelled offline-statistics imports between files and during reads so a closed world does not keep its old scan running in the background.
- Avoid saving unchanged client preferences on automatic refreshes and page changes.
1.7.0
Added
- Add vanilla play time (including AFK time) and mob-kill rankings to TAB, full-screen views, and world boards.
- Group metric selection and column controls into Activity, Combat, and Travel categories.
- Search player names while retaining their ranking positions, jump to your own page, and open player detail snapshots with all five metrics.
- Allow operators to save plain-text world-board titles; titles survive chunk reloads and are synchronized to tracking clients.
- Add current calendar-week and calendar-month rankings using UTC boundaries and persistent per-player baselines, without modifying vanilla statistics. Tracking starts at first observation and does not reconstruct earlier activity.
Changed
- Read AFK indicators from TDUtilities 0.10.0 or newer instead of standalone WATUT in TAB and full-screen leaderboards, retaining the existing client setting.
- Require network protocol 4 on both client and server for the expanded metrics, queries, and board titles.
- Sample live counters every 20 server ticks for period tracking, preserve measurements across restarts, and restart a player's period measurement if their vanilla counters decrease.
- Refuse to silently replace corrupt or unsupported period data.
1.6.0
- Require TDLibrary 0.1.0 for shared technical helpers; its runtime requires NeoForge 21.1.250 or newer.
- Fit long button labels to their available width with shared LDLib2 controls and enforce row limits before allocating response lists.
- Require exactly one matching installed LDLib2 JAR instead of choosing the newest candidate when several are present.
1.5.1
Changed
- Reduced server-thread work for repeated leaderboard requests by reusing unchanged player-index snapshots and checking only previously online players during online-status updates.
Fixed
- Preserved newer live statistics and player names when a delayed offline-import batch arrives after the player logs out.
- Kept cached
TABrows inside the panel immediately after resizing the window or changing GUI scale. - Fell back to the vanilla player list when the GUI height cannot fit one leaderboard row and the reserved HUD space.
1.5.0
Added
- Added optional What Are They Up To integration that replaces the green online dot with WATUT's Z icon for AFK players in the
TABand full-screen leaderboards, controlled by the default-enableduseWatutAfkStatusclient setting.
1.4.1
Changed
- Published resolved offline profiles in batches of at most 256 per server tick instead of processing the complete import in one tick.
- Counted every entry in the vanilla statistics directory against the 100,000-entry scan limit.
Fixed
- Prevented a vanished player from being refreshed as online during login.
- Kept undersized full-screen and board-configuration views inside their available area by showing a resize hint.
- Kept the vanilla player list available when the custom
TABleaderboard cannot fit the GUI-scaled width.
1.4.0
Added
- Added server-side Vanishmod compatibility so vanished players are no longer shown as online.
1.3.1
Fixed
- Prevented the full-screen leaderboard's first row from overlapping the settings at 180 GUI pixels in height by using compact control spacing.
1.3.0
Added
- Added LDLib2 2.2.37 or newer as a required dependency on both the client and server.
- Added metric tooltips and the shared TDEconemy-style backdrop to the rebuilt leaderboard interfaces.
Changed
- Rebuilt the full-screen leaderboard and board configuration interfaces with the shared TDEconemy-style LDLib2 visual design.
- Aligned the
TABoverlay, full-screen view, board configuration, and in-world display around the same gold, cyan, neutral, and status colour palette. - Updated the network protocol to version 3; clients and servers must use the same TD LeaderBoard version.
- Consolidated distance and metric formatting so the full-screen,
TAB, and in-world views present values consistently. - Consolidated loading, stale, timeout, import, and unavailable status text across the client interfaces.
- Cached sorted rankings by data revision, offline mode, sort metric, and direction so page and visible-column changes reuse the same ranking.
- Restored normal camera-frustum culling for 3D boards while retaining render bounds for the complete 2x4 structure and roof overhang.
Security
- Added separate per-player and server-wide rate limits for board-configuration packets.
- Bounded full-screen requests to page 100,000 before they enter server-side query handling.
Fixed
- Ensured LDLib2 tooltips render above all full-screen and board-configuration content.
1.2.4
Changed
- Added explicit atlas-bounded UV mappings to the overhang and every outer frame face.
- Matched the rear side-frame depth to the display panel.
Fixed
- Prevented out-of-range automatic frame UVs from sampling adjacent texture-atlas sprites, removing the persistent black vertical strip on the stone-brick board.
- Excluded Blockbench's extracted vanilla assets from release JARs.
1.2.3
Fixed
- Aligned the side frames with the display surface to remove recessed geometry on angled views.
- Extended the roof beyond the outer frame to prevent coplanar texture flickering at both outside corners.
1.2.2
Fixed
- Split both display panels at the middle seam and removed internal panel faces that could overlap.
- Removed internal roof-seam faces from both board variants.
- Eliminated flickering textures and the black center strip on the stone-brick board.
1.2.1
Added
- Added a server-authorized configuration screen that lets operators choose deaths, distance walked, or total distance for each 3D leaderboard.
- Added synchronized network messages for opening board configuration, applying validated metric changes, and updating tracking clients.
- Added a separate light 3D leaderboard variant with a normal stone-brick frame.
- Added a configuration shortcut from the board dialog to the complete personal leaderboard.
Changed
- Allowed regular right-clicks by non-operators to open the personal full-screen leaderboard while keeping board configuration restricted to operators and the single-player host.
- Improved placement validation, interaction routing, render bounds, support checks, and complete-structure cleanup for the 2x4 board.
- Returned fresh board items without block-entity settings so they stack up to 64 and use deaths when placed again.
Removed
- Removed the crafting recipe from the original 3D leaderboard; neither board variant has a crafting recipe.
Fixed
- Fixed board metric persistence and synchronization across chunk reloads, reconnects, server restarts, and tracking clients.
- Fixed text disappearing when the controller block left the camera frustum while another part of the board remained visible.
- Split the roof overhang into non-overlapping left and right models to prevent z-fighting at the center seam.
- Ensured breaking any controller or proxy part removes the complete structure and produces at most one board item.
1.2.0
Added
- Added independent, server-side metric selection and block-entity persistence for every placed 3D leaderboard.
- Added per-board snapshot storage so multiple boards can simultaneously display deaths, distance walked, or total distance.
Changed
- Kept world-board metric selection independent from each client's personal
TABand full-screen preferences.
1.1.0
Added
- Added the original craftable, placeable 2x4 3D leaderboard with a blackstone frame, gold accents, and a world-space display.
- Added safe eight-part placement with controller/proxy mapping, support validation, rotation-aware structure coordinates, and complete-structure removal.
- Added a five-second refresh cycle showing the six highest-ranked known players for the board metric.
- Added the board item, block models, block state, loot table, recipe, creative-tab entry, localization, and client block-entity renderer.
1.0.0
Added
- Released TD LeaderBoard for Minecraft 1.21.1, Java 21, and NeoForge 21.1.249 or newer within the 21.1 series.
- Added a server-authoritative replacement for Minecraft's player list while
TABis held. - Added the
/tdleaderboardcommand and a paginated full-screen leaderboard with up to 50 rows per page. - Added deaths, distance walked, and total distance metrics with ascending and descending sorting.
- Added deterministic tie-breaking through the remaining metrics, player name, and UUID.
- Added online status, player heads, names, formatted metric values, and ping information.
- Added optional offline-player statistics loaded once from local vanilla
statsfiles without external profile requests. - Added local profile-cache resolution for offline names while excluding unresolved profiles from results.
- Added client preferences for visible metrics, sort metric, sort direction, and offline-player visibility in
tdleaderboard-client.toml. - Added English and German localization, localized compact column headings, and an in-game acceptance checklist.
Changed
- Made the
TABpanel responsive to screen size, available HUD space, visible columns, and the number of returned rows. - Made the full-screen table, controls, pagination, and row capacity responsive from small windows through high resolutions.
- Added loading, stale-data, timeout, import-progress, empty-result, and omitted-row feedback.
- Allowed compatible NeoForge versions from 21.1.249 up to, but not including, 21.2.
Security
- Added bounded request and response codecs with enum, metric, page, page-size, row-count, and request-ID validation.
- Added per-player and server-wide snapshot request rate limits.
- Limited offline import to 100,000 regular files and 8 MiB per file without following symbolic links.
- Read live player statistics at most once per server tick and cached identical rankings by data revision.
- Bound responses to the matching request and query state so rapid page, sort, filter, and column changes cannot mix old and new data.
- Cleared all client snapshot state on disconnect so data from a previous server cannot be displayed after reconnecting.
- Kept all leaderboard data read-only: no vanilla statistics, world data, databases, or external profile services are modified.
Fixed
- Fixed control and row render ordering in the full-screen view.
- Prevented the
TABpanel from overlapping reserved HUD space or keeping empty rows in its background. - Prevented missing metrics from being displayed as false zero values while a different query was pending.