Fixes:
Changes:
- IndexOutOfBoundsException crash in selectNextCrate() caused by TOCTOU race between async tick and reload
- Reload no longer ignores interval changes countdown now resets to new duration immediately
- Disabled message channels (chat/actionbar/title/bossbar/sounds) now actually suppress output
- Sounds played even when all broadcast types were disabled
- Config restructured all message channels (chat, actionbar, title, bossbar, sounds) moved under single messages: block, each with its own enabled flag
- RewardService.loadConfig() now uses atomic list swap no partial state visible to async tick during reload
- MessageService BossBar teardown/rebuild dispatched through per-player entity scheduler (Folia safe)
- Full reload now dispatched to global-region thread via FoliaUtil.runGlobal
- Deprecated player.playSound(Location, Sound, float, float) replaced with Adventure Sound API
- Deprecated getDescription() replaced with getPluginMeta()
- persist-timer change detected on reload and logged as a warning
