▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/TrialChamberPro
TrialChamberPro

TrialChamberPro

Because Trial Chambers deserve better than being a "one and done" dungeon.

1.5K
15

TrialChamberPro 1.2.24-mc26

release15 апреля 2026 г.

This plugin version is compatible with Minecraft 26.X.X


1.2.24 - 2026-04-15

Added

  • Custom Plugin Item Support in loot.yml: Nexo, ItemsAdder, and Oraxen items can now be used as loot drops
    • Use type: CUSTOM_ITEM with plugin: Nexo/ItemsAdder/Oraxen and item-id: "..." fields
    • Resolved at runtime via reflection — no compile-time dependency on any custom item plugin
    • If the plugin is not installed, the item is skipped with a console warning
    • Extra name:, lore:, and enchantments: fields are applied on top of the resolved item
  • custom-model-data field for vanilla items: Set custom model data (resource pack texture override) on any vanilla item in loot.yml
    • Works with all other item fields (enchantments, lore, durability ranges, etc.)

TrialChamberPro 1.2.24

release15 апреля 2026 г.

1.2.24 - 2026-04-15

Added

  • Custom Plugin Item Support in loot.yml: Nexo, ItemsAdder, and Oraxen items can now be used as loot drops
    • Use type: CUSTOM_ITEM with plugin: Nexo/ItemsAdder/Oraxen and item-id: "..." fields
    • Resolved at runtime via reflection — no compile-time dependency on any custom item plugin
    • If the plugin is not installed, the item is skipped with a console warning
    • Extra name:, lore:, and enchantments: fields are applied on top of the resolved item
  • custom-model-data field for vanilla items: Set custom model data (resource pack texture override) on any vanilla item in loot.yml
    • Works with all other item fields (enchantments, lore, durability ranges, etc.)

TrialChamberPro 1.2.23

release14 февраля 2026 г.

1.2.23 - 2026-02-14

Fixed

  • Vanilla Vaults Broken: Unregistered/vanilla vaults now work correctly when plugin is installed
    • Root cause: VaultInteractListener intercepted ALL vault interactions server-wide, cancelling the event for vaults not in the plugin's database
    • Fix: Early-return check skips plugin logic for vaults outside registered chambers
  • Custom Death Message Not Working: Death messages set from async thread had no effect (event already processed)
    • Fix: Use synchronous cache lookup (getCachedChamberAt) so death message is set while event is still being processed
  • Async Block Data Access: saveVault() accessed block.blockData.asString on IO thread (unsafe Bukkit API access)
    • Fix: Block data string is now read on the main thread and passed as a parameter
  • runBlocking in Async Thread: UndoListener used runBlocking inside runTaskAsync, blocking Bukkit's async thread pool
    • Fix: Replaced with plugin.launchAsync {} coroutine pattern
  • JDBC Resource Leaks: StatisticsManager had 5 methods with PreparedStatement/ResultSet not wrapped in .use{}
    • Fix: All JDBC resources now use .use{} for automatic cleanup
  • loadingLocks Memory Leak: Per-player mutex map in StatisticsManager grew without bound
    • Fix: Entries now cleaned up alongside cache invalidation

Improved

  • Messages Performance: getMessage() now caches the parsed messages.yml instead of re-reading and re-parsing the file on every call; cache invalidated on /tcp reload
  • Shutdown Reliability: PlayerMovementListener, PlayerDeathListener, and PasteConfirmListener coroutine scopes now properly cancelled on plugin disable
  • Time Tracking Data Preservation: Player time-in-chamber data is flushed to database on plugin shutdown (previously up to 5 minutes of data could be lost)
  • Duplicate Command Handlers: Removed redundant TCPCommand/TCPTabCompleter creation during async initialization (already registered at startup)

TrialChamberPro 1.2.22

release10 января 2026 г.

1.2.22 - 2026-01-10

Fixed

  • GUI Teleport Right-Click: Fixed teleport button in ChamberDetailView ignoring click type
    • Right-click was teleporting to chamber center instead of exit location
    • Root cause: handleTeleport() didn't check for left vs right click - always teleported to center
    • Fix: Added isLeftClick and isRightClick parameters to handler
    • Left click: Teleport to chamber center (as before)
    • Right click: Teleport to exit location (now works correctly)
    • Shows "No exit location set" message if exit not configured

Technical Details

  • ChamberDetailView.handleTeleport() now accepts left: Boolean, right: Boolean parameters
  • Uses when expression to differentiate click types
  • Existing messages gui-teleport-to-center, gui-teleport-to-exit, and gui-no-exit-location used

TrialChamberPro 1.2.21

release9 января 2026 г.

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 PlayerInteractEvent to handle loot ourselves, but this prevented vanilla from tracking the player in the vault's rewarded_players NBT
    • Our database tracking was supposed to handle cooldowns, but wasn't being respected properly
    • Fix: Now uses Paper's native Vault TileState API for cooldown tracking:
      • hasRewardedPlayer(UUID) to check if player already opened the vault
      • addRewardedPlayer(UUID) to mark player as rewarded after giving loot
      • update() 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

Improved

  • SpawnerWaveListener: Removed reflection-based ominous detection, now uses Paper's native TrialSpawner.isOminous property directly
  • VaultInteractListener: Simplified trial key detection using direct Material.OMINOUS_TRIAL_KEY enum instead of string comparison
    • Note: Vault ominous detection still uses block data string parsing as Paper's Vault TileState doesn't have isOminous property (unlike TrialSpawner)
  • 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) and Vault.update() to clear native state
    • Fully Folia-compatible using scheduler.runAtLocation() for block operations

Technical Details

  • VaultInteractListener now imports org.bukkit.block.Vault TileState
  • Cooldown check: block.state as? Vault then vaultState.hasRewardedPlayer(player.uniqueId)
  • After loot: vaultState.addRewardedPlayer(player.uniqueId) then vaultState.update() (CRITICAL: must call update!)
  • Database recordOpen is 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-error message to messages.yml for edge cases where vault state can't be updated
  • Key detection: Material.TRIAL_KEY and Material.OMINOUS_TRIAL_KEY direct enum comparison
  • Spawner ominous check: state.isOminous property (no reflection needed)

Совместимость

Minecraft: Java Edition

26.1.x1.21.x

Платформы

Поддерживаемые окружения

Сервер

Детали

Лицензия:CC-BY-NC-ND-4.0
Опубликован:5 месяцев назад
Обновлён:20 часов назад
Главная