
BubbleReset 1.1.4
release2 мая 2026 г.[1.1.4] - 2026-05-02
Updated
- Paper API updated to 26.1.2 (build 53, stable) — new Paper version scheme (
26.1.2.build.53-stable) plugin.ymlapi-versionupdated to'26.1.2'(required format for Paper 26.1+)- Java compiler target bumped from 21 → 25 to match Paper 26.1 recommended baseline
- MockBukkit updated from
MockBukkit-v1.20:3.15.1→MockBukkit-v1.21:3.133.2
Improved (resource world regeneration)
- Player eviction uses
teleportAsync()— players are now kicked from the world via Paper's async teleport API before reset, reducing main-thread stall during chunk unloading - Spawn chunk pre-warming after recreation — after a new resource world is generated, a configurable radius of chunks around spawn is pre-loaded with
getChunkAtAsync()so the world is immediately ready for players (performance.spawn-preload-radius, default3) preloadChunksAsync()simplified — removed a redundantCompletableFuturewrapper;getChunkAtAsync()is already non-blocking and handles its own threadingdeleteWorldFolder()rewritten with NIO — now usesFiles.walk(...).sorted(reverseOrder())to guarantee files are deleted before their parent directories, fixing the silent-failure case where non-empty directories were not deleted
BubbleReset v1.1.3 — 2026-01-20
release20 января 2026 г.This is a maintenance release focused on versioning and improving maintainability. No functional behavior has changed.
Changes
- Bump project version to 1.1.3.
- Refactor complex methods to reduce cyclomatic complexity.
Issues
-
Complex Method (cyclomatic complexity = 19)
- File: src/main/java/com/bubblecraft/bubblereset/BubbleReset.java:289-319
- Context: Scheduler tick
run()insidestartAutoResetScheduler()
-
Complex Method (cyclomatic complexity = 16)
- File: src/main/java/com/bubblecraft/bubblereset/ResourceWorldMenu.java:239-301
- Context:
onInventoryClick(InventoryClickEvent event)
-
Complex Method (cyclomatic complexity = 16)
- File: src/main/java/com/bubblecraft/bubblereset/ResourceWorldMenu.java:122-185
- Context:
createCustomSkull(String textureBase64)
Actions (Implemented)
-
BubbleReset.java (scheduler
run())- Extracted fixed-time vs interval scheduling into separate private methods.
- Reduced nesting with guard clauses.
- Extracted warning broadcast + reset scheduling helpers.
-
ResourceWorldMenu.java (
onInventoryClick)- Centralized action extraction (PDC first, lore fallback).
- Simplified click handler using helpers + early returns.
-
ResourceWorldMenu.java (
createCustomSkull)- Extracted texture normalization + profile application helpers.
- Isolated base64/url parsing + skin application.
Notes
- Unit tests passed after the refactor.
BubbleReset 1.1.3
beta20 января 2026 г.This is a maintenance release focused on versioning and tracking code quality hotspots. No functional behavior has changed.
Changes
- Bump project version to 1.1.3.
- Document complex methods and proposed refactors to improve maintainability.
Issues
-
Complex Method (cyclomatic complexity = 19)
- File: src/main/java/com/bubblecraft/bubblereset/BubbleReset.java:289-319
- Context: Scheduler tick
run()insidestartAutoResetScheduler()
-
Complex Method (cyclomatic complexity = 16)
- File: src/main/java/com/bubblecraft/bubblereset/ResourceWorldMenu.java:239-301
- Context:
onInventoryClick(InventoryClickEvent event)
-
Complex Method (cyclomatic complexity = 16)
- File: src/main/java/com/bubblecraft/bubblereset/ResourceWorldMenu.java:122-185
- Context:
createCustomSkull(String textureBase64)
Actions
-
BubbleReset.java (scheduler
run())- Extract fixed-time vs interval scheduling into separate private methods.
- Replace nested conditionals with guard clauses (early returns).
- Cache repeated configuration reads into local variables.
- Extract broadcast message and reset scheduling into helper methods to reduce branching.
-
ResourceWorldMenu.java (
onInventoryClick)- Use a switch on slot/button IDs and extract per-action handlers.
- Centralize permission checks and common messaging.
- Prefer early returns to minimize nesting.
-
ResourceWorldMenu.java (
createCustomSkull)- Extract profile/texture creation into a helper.
- Consolidate null/meta validation path.
- Isolate texture application and return immutable
ItemStackcopy if appropriate.
BubbleReset 1.1.2-1
release7 января 2026 г.[1.1.2-1] - 2026-01-07
Added
-
New
/rwadmin reloadcommand - Dedicated reload command with enhanced feedback- Displays reload time in milliseconds
- Reports number of reset timers cleared
- Shows cached worlds cleared count
- Confirms config cache rebuild status
-
New
/rwadmin test <feature>command - Comprehensive testing system for diagnosticscache- View world and config cache contents with entry countstimer- Display next reset times for all worlds (shows remaining hours/minutes)performance- Show operation performance metrics (teleport, reset timings)tps- Check current server TPS with color-coded health indicators (green/yellow/red)config- Verify configuration loading for all worlds (displays name, auto-reset status, interval/time_of_day mode)
-
Enhanced tab completion - Added full tab completion support for
/rwadminsubcommands and test features
Improved
- Reload command feedback - More detailed output showing exactly what was cleared and recalculated
- World cache management - Reload now properly clears world cache in addition to config cache and reset timers
- Admin panel access -
/rwadminwith no arguments opens admin panel, or use/rwadmin panelexplicitly - Console compatibility - Reload and test commands now work from console, not just in-game
Fixed
- Continued fix from v1.1.1: Reset timers properly clear on reload, ensuring
time_of_daychanges take effect immediately
Technical
- Refactored command handler to support subcommands (panel, reload, test)
- Added dedicated test methods for each diagnostic feature
- Updated ResourceTabCompleter to handle both
/resourceand/rwadmincommands - Improved error handling and permission checks for admin commands
BubbleReset 1.1.2
release7 января 2026 г.✨ New Features
Time-of-day automated resets
- Added
automated_resets.time_of_day(formatHH:mm) under each dimension. - When set, the auto-reset schedule runs at that local server time instead of using the interval timer.
- Existing interval-based scheduling still works as a fallback when
time_of_dayis blank.
🛠️ Fixes
Custom menu heads (Base64 textures)
- Fixed
/resourcemenu custom head textures showing as Steve. - Head textures are now applied using the Base64
texturesvalue reliably (preferred) with URL/JSON fallback. - Config now documents that
menu.items.<slot>.texturesupports Base64 (recommended) or a textures URL.
