TrialChamberPro icon

TrialChamberPro -----

Trial Chamber Management Plugin



TrialChamberPro-1.2.4
1.2.4 - 2025-11-30
Fixed
  • Tipped Arrow Duration Bug: Fixed tipped arrows showing "00:00" duration when looted from vaults
    • Root cause: Minimum duration check only triggered when calculated duration was exactly 0
    • If Paper API returned small duration values (1-99 ticks), integer division produced tiny but non-zero values that bypassed the minimum check
    • Now uses maxOf(calculatedDuration, minDuration) to always enforce minimum durations
    • Also fixed: effect-duration: 0 in config now correctly falls back to calculated duration instead of using 0
Added
  • Full Folia Support: Complete rewrite of scheduler system for Folia compatibility
    • New SchedulerAdapter abstraction layer with Paper and Folia implementations
    • Automatic Folia detection at startup with appropriate scheduler selection
    • Location-based scheduling (runAtLocation) for block operations (snapshots, restoration, scanning)
    • Entity-based scheduling (runAtEntity) for player operations (teleportation, inventory, messages)
    • Global region scheduling for non-location-specific tasks
    • Added folia-supported: true to plugin.yml
Changed
  • 17 files updated to use the new scheduler abstraction:
    • Core: TrialChamberPro.kt, CoroutineExtensions.kt
    • Managers: ResetManager.kt, ChamberManager.kt, SnapshotManager.kt, LootManager.kt, PasteConfirmationManager.kt
    • Listeners: VaultInteractListener.kt, PlayerMovementListener.kt, UndoListener.kt
    • GUI: MenuService.kt, LootTypeSelectView.kt, LootEditorView.kt
    • Utils: BlockRestorer.kt, ParticleVisualizer.kt, UpdateChecker.kt
  • Player teleportation during chamber resets now uses entity-specific scheduling for thread safety
  • Block restoration batches now schedule to the correct region thread per chunk
  • Chamber scanning uses location-based scheduling for proper Bukkit API access
Technical Details
  • SchedulerAdapter interface provides unified API for both platforms:
    • runTask() / runTaskAsync() - Global/async tasks
    • runTaskLater() / runTaskLaterAsync() - Delayed tasks (now return ScheduledTask for cancellation)
    • runTaskTimer() / runTaskTimerAsync() - Repeating tasks
    • runAtLocation() / runAtLocationLater() - Region-specific tasks (critical for Folia)
    • runAtEntity() / runAtEntityLater() - Entity-specific tasks (critical for Folia)
  • On Paper: All location/entity methods delegate to main thread
  • On Folia: Uses RegionScheduler, EntityScheduler, GlobalRegionScheduler, and AsyncScheduler
----------, Nov 30, 2025
Resource Information
Author:
----------
Total Downloads: 334
First Release: Oct 24, 2025
Last Update: Today at 2:04 AM
Category: ---------------
All-Time Rating:
2 ratings
Find more info at darkstarworks.gitbook.io...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings