
BubbleReset
A Modern Resource World Plugin
- Загрузки
- 234
- Подписчики
- 0
- Обновлён
- 17 мая 2026 г.
- Лицензия
- MIT
Опубликован 15 декабря 2025 г.
🌍 A comprehensive and feature-rich resource world management plugin for Minecraft 1.19 - 1.21.x
BubbleReset is a complete replacement for traditional resource world plugins, designed from the ground up for modern Spigot/Paper servers. It provides automatic world resets, intuitive GUI menus, PlaceholderAPI integration, and advanced performance optimization.
✨ Key Features
🌐 Multi-World Support
- Overworld, Nether, and End resource worlds
- Individual configuration for each dimension
- Custom seeds and world types (Normal, Flat, Large Biomes, Amplified)
- Configurable world borders with damage and warnings
- Per-world game rule customization
⚡ Intelligent Reset System
- Automated scheduled resets with configurable intervals or fixed time-of-day
- TPS-aware reset queue - resets pause during server lag
- Advance warnings before resets with customizable announcements
- Staggered resets to minimize server impact
- Safe player evacuation - teleports players to spawn before reset
- Post-reset commands - run Chunky or custom commands after resets
🎨 Interactive GUI Menu
- Beautiful custom menu with player head icons
- Gradient color titles using HEX color codes
- One-click teleportation to any resource world
- Customizable layout - change items, positions, and textures (supports Base64 head textures)
- Simple permission-based access control
🔌 PlaceholderAPI Integration
Display real-time information in scoreboards, holograms, and chat:
%rw_world%- Time until overworld reset%rw_nether%- Time until nether reset%rw_end%- Time until end reset%rw_world_players%- Players in resource overworld%rw_nether_players%- Players in resource nether%rw_end_players%- Players in resource end
🚪 Portal Override System
- Redirect vanilla portals to resource worlds
- Configurable per dimension - override nether and/or end portals
- Seamlessly integrate resource worlds into normal gameplay
📍 Smart Teleportation
- Random safe locations within world borders
- Nether-aware algorithm - avoids lava and finds solid ground
- Configurable cooldowns and delays
- Cost system (optional economy integration)
- Potion effects on teleport for added flair
⚙️ Performance Optimized
- TPS monitoring - pauses heavy operations during lag
- Async world deletion with automatic retries
- Queue-based reset system prevents overlapping operations
- Configurable delays between world resets
- View distance reduction during resets
- Chunky integration for world pre-generation
🛠️ Admin Tools
- /rwadmin - Interactive admin panel with GUI
- Manual world resets - reset any world on demand
- Config reload without server restart
- Detailed logging of all operations
- Queue management - view and control reset queue
📋 Commands
| Command | Description | Permission | Aliases |
|---|---|---|---|
/resource |
Open resource world menu | rw.menu |
/rw, /resourceworld |
/resource tp [world] |
Teleport to resource world | rw.tp |
- |
/resource menu |
Open the GUI menu | rw.menu |
- |
/resource reset [world] |
Manually reset a world | rw.admin |
- |
/resource reload |
Reload configuration | rw.admin |
- |
/rwadmin |
Open admin control panel | rw.admin |
/rwa |
🔐 Permissions
rw.tp- Access to teleport to resource worlds (default: true)rw.menu- Access to resource world menu (default: true)rw.admin- Access to admin commands and panel (default: op)
Note: Legacy permissions (rw.tp.nether, rw.tp.end) are maintained for backwards compatibility but are no longer required.
⚙️ Configuration Highlights
# Per-World Settings
world:
enabled: true
teleport_enabled: true
world_name: resource_world
world_type: NORMAL # NORMAL, FLAT, LARGE_BIOMES, AMPLIFIED
environment: NORMAL # NORMAL, NETHER, THE_END
world_border:
enabled: true
size: 4500
automated_resets:
enabled: true
interval: 168 # hours
# Optional: run resets at a fixed server-local time instead of by interval
# Format: HH:mm (example: 02:00)
time_of_day: ""
# Performance Tuning
performance:
tps-threshold: 18.0 # Minimum TPS to process resets
reset-gap-per-world-ticks: 600 # Delay between resets
# Teleport Settings
teleport_settings:
cooldown: 300 # seconds
delay: 3 # seconds
effects:
enabled: true
effect: ABSORPTION
📦 Installation
- Download bubblereset-1.1.2.jar
- Place it in your server's
plugins/folder - (Optional) Install PlaceholderAPI for placeholder support
- Start/restart your server
- Configure worlds in
plugins/BubbleReset/config.yml - Run
/resource reloadto apply changes
🎯 Requirements
- Minecraft Version: 1.19 - 1.21.x
- Server Software: Spigot, Paper, or any Paper fork
- Java Version: Java 21 or higher
- Dependencies: None required (PlaceholderAPI optional)
🔧 Compatibility
✅ Spigot - Full support
✅ Paper - Full support with enhanced features
✅ Purpur - Full support
✅ Folia - Not yet tested
✅ PlaceholderAPI - Optional integration
✅ Chunky - Optional pre-generation support
✅ Vault - Optional economy support (planned)
💡 Why BubbleReset?
- Modern Design - Built specifically for modern Minecraft versions
- Performance First - Intelligent systems prevent server lag
- Highly Configurable - Customize every aspect to your needs
- User Friendly - Intuitive commands and beautiful GUIs
- Active Development - Regular updates and bug fixes
- Clean Code - Well-structured for easy customization
🐛 Bug Reports & Feature Requests
Found a bug or have a feature request? Please report it on our GitHub Issues page.
📄 License
This plugin is licensed under the MIT License. You are free to use, modify, and distribute this plugin.
📸 Screenshots
Download BubbleReset today and give your players a fresh, renewable resource experience!
Ченджлог
1.1.5Релиз26.1.2 · 17 мая 2026 г.
Updated
- Paper API updated to
26.1.2.build.63-stable(latest stable build) - Updated
api-versioninplugin.ymlto26.1.2
1.1.4Релиз26.1.2 · 2 мая 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
1.1.3Релиз1.21.9, 1.21.10, 1.21.11 · 20 января 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.
1.1.3Бета1.21.9, 1.21.10, 1.21.11 · 20 января 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.
1.1.2-1Релиз1.21.9, 1.21.10, 1.21.11 · 7 января 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
1.1.2Релиз1.21.9, 1.21.10, 1.21.11 · 6 января 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.
1.1.1Релиз1.21.9, 1.21.10, 1.21.11 · 6 января 2026 г.
✨ New Features
Datapacks support (custom structures / loot tables)
- New
datapacksconfig section to automatically copy datapacks into freshly created resource worlds. - Optional
/minecraft:reloadafter copying so datapacks apply without a full restart. - Configurable source (
world:<name>orfolder:<path>) and per-dimension apply toggles.
Per-world teleport toggle
- New
teleport_enabledoption per dimension:world.teleport_enablednether.teleport_enabledend.teleport_enabled
- Blocks teleports from both
/resource tp <world>and the/resourceGUI when disabled.
🛠️ Improvements
- Added clear notes in
config.ymlexplaining default/resourceGUI behavior and permissions. - Improved GUI click handling to identify the BubbleReset menu reliably (uses a dedicated inventory holder).
- Added a fallback to read the menu action from item lore when PDC is unavailable.
1.1.0Релиз1.21.9, 1.21.10, 1.21.11 · 15 декабря 2025 г.
BubbleReset v1.1.0 - Performance & Compatibility Update
- World caching with ConcurrentHashMap
- Config value pre-caching
- Async chunk pre-loading
- CompletableFuture async operations
- Performance timing tracker
- Statistics logging on shutdown
- Slow operation warnings
- Load time display
- Reload time display
- Support for Minecraft 1.19-1.21
Комментарии
Загружаем…
