
TrialChamberPro
Because Trial Chambers deserve better than being a "one and done" dungeon.
1.2K
14
Список изменений
1.2.21 - 2026-01-10
Fixed
- Vault Cooldown Not Working: Fixed permanent vault cooldown not being enforced after the 5-second spam protection expires
- Root cause: We were cancelling the
PlayerInteractEventto handle loot ourselves, but this prevented vanilla from tracking the player in the vault'srewarded_playersNBT - Our database tracking was supposed to handle cooldowns, but wasn't being respected properly
- Fix: Now uses Paper's native
VaultTileState API for cooldown tracking:hasRewardedPlayer(UUID)to check if player already opened the vaultaddRewardedPlayer(UUID)to mark player as rewarded after giving lootupdate()to persist the block state changes
- This is more reliable because it uses Minecraft's built-in tracking that persists with the block
- Cooldowns automatically reset when the vault block is restored during chamber reset
- Root cause: We were cancelling the
Improved
- SpawnerWaveListener: Removed reflection-based ominous detection, now uses Paper's native
TrialSpawner.isOminousproperty directly - VaultInteractListener: Simplified trial key detection using direct
Material.OMINOUS_TRIAL_KEYenum instead of string comparison- Note: Vault ominous detection still uses block data string parsing as Paper's Vault TileState doesn't have
isOminousproperty (unlike TrialSpawner)
- Note: Vault ominous detection still uses block data string parsing as Paper's Vault TileState doesn't have
- Vault Reset Commands: Now properly clear both database tracking AND native Vault
rewarded_players/tcp vault reset <chamber> <player>- Clears specific player from vault cooldown- GUI "Reset All Cooldowns" button - Clears all players from vault cooldowns
- Chamber automatic reset - Clears all vault cooldowns (both DB and native API)
- Uses
Vault.removeRewardedPlayer(UUID)andVault.update()to clear native state - Fully Folia-compatible using
scheduler.runAtLocation()for block operations
Technical Details
VaultInteractListenernow importsorg.bukkit.block.VaultTileState- Cooldown check:
block.state as? VaultthenvaultState.hasRewardedPlayer(player.uniqueId) - After loot:
vaultState.addRewardedPlayer(player.uniqueId)thenvaultState.update()(CRITICAL: must call update!) - Database
recordOpenis still called for statistics tracking, but not used for cooldown enforcement - Both operations run on the region thread (Folia compatible) using
scheduler.runAtLocation() - Added
vault-errormessage to messages.yml for edge cases where vault state can't be updated - Key detection:
Material.TRIAL_KEYandMaterial.OMINOUS_TRIAL_KEYdirect enum comparison - Spawner ominous check:
state.isOminousproperty (no reflection needed)
Файлы
TrialChamberPro-1.2.21.jar(12.35 MiB)
ОсновнойМетаданные
Канал релиза
Release
Номер версии
1.2.21
Загрузчики
FoliaPaperPurpur
Версии игры
1.21.1–1.21.11
Загрузок
114
Дата публикации
1 мес. назад
