Unofficial site, not affiliated with modrinth.com.What is this?
Плагины/TrialChamberPro
Все версииTrialChamberPro 1.5.0

TrialChamberPro 1.5.0

Release2 нед. назад

Список изменений

1.5.0 - 2026-05-26

Added

  • Faithful loot items + bulk drag-in editor. Items added to a loot table are now stored as a serialized ItemStack, so enchantments, potion data, custom names/lore, custom-model-data and any NBT (incl. third-party enchant tags) are preserved exactly — previously only the material+amount were kept, turning an enchanted book into a plain book and a potion into a water bottle. The loot editor's "Add" captures the whole held item, entries can be removed with Q / drop key, and a new Bulk add button opens a chest you can drag/shift-click any number of items into at once (captured faithfully and handed back on close).
  • /tcp list pagination + locator. Lists 10 chambers per page with clickable Prev/Next instead of spamming 100+ lines, and /tcp list current reports the chamber you're standing in (or the nearest, with coords and a [/tp] suggestion).
  • /tcp snapshot update [chamber] — re-captures a registered chamber's snapshot, overwriting the old one, so edits made after the chamber was first registered/snapshotted become the new reset baseline. With no name it targets the chamber you're standing in; with a name it behaves like create.
  • Optional FastAsyncWorldEdit for resets (global.use-fawe, default off, Paper-only). Scheduled resets place blocks through one FAWE EditSession to smooth out the lag of large restores; manual resets keep the batched path so WorldEdit //undo still works; falls back automatically.
  • Operator-confirmation reset queue (global.reset-require-confirmation, default off). Due chambers are parked and online admins notified; /tcp reset pending lists them and /tcp reset confirm <chamber|all> fires them through the stagger.
  • Reset throttle (global.max-concurrent-resets, global.reset-stagger-seconds) so a wave of due chambers can't all restore at once and crater TPS.
  • global.suppress-trial-spawner-spam (default true) mutes the vanilla Trial Spawner ... has no detected players console line.
  • ChamberClearedEvent — public Bukkit event for "chamber cleared in one run." Fires exactly once when every trial spawner inside a registered chamber has completed a wave within the same reset cycle. Carries the cleared Chamber, the cumulative Set<UUID> of participants across every wave in the cycle, and the wall-clock durationMs from first-wave-start to last-wave-complete. Tracking is per-chamber, reset on every ChamberResetEvent. Wild spawners do not contribute.
  • Network-sync foundation (developer API). Groundwork for a future cross-server module: ChamberManager, StatisticsManager and VaultManager are now registered with Bukkit's ServicesManager (alongside DatabaseManager); cache-invalidation hooks added (StatisticsManager.invalidatePlayer(uuid), ChamberManager.reloadFromStore(name) / invalidateChamber(name)); new StatisticsUpdatedEvent fires after every stat persist. All additive — no behaviour change for single-server installs.
  • Procedural dungeon generation primitives (/tcp dungeon, dungeon.yml). Modular rooms captured via WorldEdit selections + minecraft:jigsaw connectors are stitched into a dungeon and registered as a normal chamber. Built primarily as the room-assembly substrate for the upcoming Mythic Trials module; usable standalone too but not the headline feature of this release.

Changed

  • GUI framework rewrite: InventoryFramework → in-house VcGui. All 14 admin GUI views moved off the third-party InventoryFramework library onto a framework adapted from tcp-vault-crates. Behaviour is preserved view-for-view; the wins are an event-handling overhaul (cross-inventory dup-exploits cancelled centrally, safe bottom-inventory actions pass through so cursor/pickup work normally while a GUI is open) and a cleaner deposit-style chest pattern. The IF dependency is dropped from the shaded JAR.
  • SpawnerWaveManager gained per-chamber wave-completion bookkeeping to support ChamberClearedEvent. Three new in-memory maps plus a lazy spawner-count cache (computed once per chamber via a one-time block-scan of the chamber bounds, then O(1)). All maps clear on chamber reset.

Fixed

  • Vaults dispensing vanilla loot instead of the configured table. The chamber cache was an LRU capped at 100; on servers with ≥100 chambers, vault interactions in evicted ("old") chambers resolved to no chamber and silently fell through to vanilla trial loot — and ignored updated loot tables. The cache now keeps all registered chambers (no size eviction), which also repairs spawner-wave tracking and tier scaling that relied on the same lookup.
  • Bulk-add deposit crash. Closing the bulk-add chest could trigger an infinite InventoryCloseEvent → reopen → close cascade that overflowed the JVM stack and killed the server. The editor reopen now defers one tick out of the close-event chain.
  • Chamber reset now removes blocks players ADDED into formerly-empty cells (lava, cobble, etc.). Snapshots skip air on capture to save space, so restoration only re-applied captured (non-air) blocks and never reverted anything placed into a cell that was air at capture time. Reset now walks the chamber volume before restore and clears player-added blocks. Gated by reset.clear-added-blocks (default true); disable to let players build inside chambers.
  • Automatic resets failing with StandaloneCoroutine was cancelled + endless trial-spawner error spam. A scheduled reset stored its own job and then cancelled it mid-run, leaving chambers half-reset (spawners stuck logging every tick). Scheduled jobs now de-register before running so a reset can't cancel itself; cancellation is no longer mis-logged as a failure.
  • All due chambers resetting simultaneously and dropping TPS to ~4. Resets now run through a concurrency limit + stagger (see new config above).
  • Players teleported into walls (suffocating) on reset. The "safe location" scan ran down the chamber's own centre column and didn't verify the destination was open; it now scans columns outside the chamber and requires solid ground with two passable, non-hazard cells above.
  • Loot items losing their enchantments/potions when added through the editor (see Added → faithful loot items).
  • Pause-chamber tooltip rendered raw & codes and squashed its multi-line lore into a bracketed single line. Tooltip now reads cleanly with paragraph breaks and full colour styling.
  • Spawner-wave proximity check no longer scans 33,500 blocks per player move. SpawnerWaveListener.onPlayerMove previously walked an O(r³) cube around every moving player calling world.getBlockAt().type (~1 ms/call in Spark profiles, compounding across players). Replaced with a per-world spatial index (TrialSpawnerIndex) populated by chunk-load tile-entity scans + block break/place tracking; the proximity query is now O(spawners-near-player) — typically zero or one chunk's worth of positions, sub-microsecond on the hot path.
  • Spawner-wave boss bar stayed attached after a non-walking chamber exit. The cleanup that drops far-away boss bars was wired only to PlayerMoveEvent, which doesn't fire for teleports, respawns, or world changes. A player who died inside a chamber and respawned at spawn (or /spawn'd / /home'd out, or got teleported by another plugin) kept the boss bar attached until the wave completed naturally or they logged out. Now also runs on PlayerTeleportEvent, PlayerRespawnEvent, and PlayerChangedWorldEvent (one tick later, so player.location reflects the destination). Bug existed since v1.2.26 when the proximity-cleanup logic was introduced.

Config additions

  • reset.clear-added-blocks (default true) — whether chamber reset also clears player-added blocks that fall outside the snapshot (see Fixed above).
  • global.use-fawe (default false) — route scheduled chamber resets through FastAsyncWorldEdit when available.
  • global.reset-require-confirmation (default false) — park due chambers in a queue and require an operator to release them via /tcp reset confirm.
  • global.max-concurrent-resets / global.reset-stagger-seconds — concurrency throttle so a batch of simultaneously-due chambers don't all reset at the same instant.
  • global.suppress-trial-spawner-spam (default true) — mute the vanilla Trial Spawner ... has no detected players console line.

Метаданные

Канал релиза

Release

Номер версии

1.5.0

Загрузчики

Folia
Paper
Purpur

Версии игры

1.21.1–1.21.11

Загрузок

10

Дата публикации

2 нед. назад

Загрузил

ID версии

Главная