
TrialChamberPro
Because Trial Chambers deserve better than being a "one and done" dungeon.
2.3K
26
Список изменений
This plugin version is compatible with Minecraft 26.X.X
1.5.6 - 2026-06-10
Fixed
- CRITICAL: chamber reset could wipe terrain far beyond what the snapshot covers. When an auto-discovered chamber's bounds grew after its snapshot was captured (discovery region merges), the reset's clear-added-blocks pass cleared the entire current AABB while the snapshot could only restore the old, smaller region — deleting every block in the newly annexed volume (terrain, builds, neighbouring structures). The clear region is now clamped to the intersection of the chamber bounds and the snapshot's actual coverage, with a console warning pointing at
/tcp snapshot createwhen a mismatch is detected. A snapshot can no longer destroy ground it cannot put back.- If one of your chambers was already affected: run
/tcp delete <chamber>— this removes the broken registration and its stale snapshot in one step (discovery will cleanly re-register the chamber afterwards if enabled). Terrain that a pre-1.5.6 reset already deleted cannot be recovered by the plugin; restore that area from a world backup (or let it regenerate if it was untouched wilderness).
- If one of your chambers was already affected: run
- Discovery auto-snapshot never linked the snapshot in the database.
discovery.auto-snapshot: truecaptured the.datfile but skipped thesnapshot_fileDB update (the step/tcp generateperforms), so auto-discovered chambers reported "No snapshot found" at reset time and skipped restoration — or worse, kept a stale link. Both the registration and merge paths now link the file and log loudly if the DB write fails. - Stale snapshot after a discovery merge. Merging a newly discovered region into an existing chamber now re-captures the snapshot whenever the chamber already had one (previously only when
discovery.auto-snapshotwas on), because a pre-merge snapshot no longer covers the grown bounds and is dangerous to restore. If the re-capture fails, the console warns that the existing snapshot is stale. - Glow marker was killable, collidable, and farmable. The invisible glow Shulker had no invulnerability or collision flags: players could target it (health-indicator mods showed "Shulker 30❤" when looking at a glowing spawner), kill it (removing the glow mid-wave and rolling vanilla shulker loot — farmable shulker shells at every glowing spawner), and arrows aimed near the spawner collided with it. The marker is now
invulnerable+ non-collidableat both spawn sites (wave-attached and chamber-remaining standalone). - First wave completion in a large chamber could freeze the server.
ChamberClearedEvent's spawner census (and the chamber-remaining glow's location scan) iterated every block in the chamber AABB on the region thread — up to 1.5MgetBlockAtcalls plus sync chunk loads on a merged discovery chamber. Both now share a chunk tile-entity scan (Chunk#getTileEntities, the same patternChamberDiscoveryListeneruses): O(chunks × tile-entities) instead of O(volume). - Stale spawner counts made
ChamberClearedEventfire early or never. The per-chamber spawner count/location caches were only cleared at shutdown, but the spawner set changes on discovery merges (bounds grow),/tcp scan, and spawner block breaks. NewSpawnerWaveManager.invalidateChamberSpawnerCaches(chamberId)is now called fromChamberManager.updateBounds,scanChamber, and the spawnerBlockBreakEventhandler — premium-module tier-ups (TCP-MythicTrials) depend on this signal being correct. - Breaking a standalone-glowed spawner orphaned its glow. In
chamber-remainingmode, breaking a non-active glowing spawner left its glow entity floating until the next chamber reset (cancelWaveAtonly cleans the wave-attached glow). The block-break handler now also removes the standalone glow. - Pending spectator offers leaked when a dead player disconnected.
PlayerDeathListener.pendingOfferswas only cleared on respawn; a player who quit on the death screen and never rejoined left their entry (and itsLocation→ world reference) in memory permanently. Now also cleared onPlayerQuitEvent. tcp.admin.createwas never declared in plugin.yml. The permission gating/tcp deleteand/tcp setexitwas checked in code but missing from the permission tree — so it wasn't a child oftcp.admin.*, and staff granted the wildcard couldn't delete chambers or set exits (ops were unaffected). Now declared withdefault: opand included intcp.admin.*.
Метаданные
Канал релиза
Release
Номер версии
1.5.6-mc26
Загрузчики
FoliaPaperPurpur
Версии игры
26.1–26.1.2
Загрузок
4
Дата публикации
4 дн. назад

