Перейти к содержимому
Mineforgian

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.


minecraft1.19+ codefactor badge

✨ 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

  1. Download bubblereset-1.1.2.jar
  2. Place it in your server's plugins/ folder
  3. (Optional) Install PlaceholderAPI for placeholder support
  4. Start/restart your server
  5. Configure worlds in plugins/BubbleReset/config.yml
  6. Run /resource reload to 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

Resource Worlds Menu

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-version in plugin.yml to 26.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.yml api-version updated 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.1MockBukkit-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, default 3)
  • preloadChunksAsync() simplified — removed a redundant CompletableFuture wrapper; getChunkAtAsync() is already non-blocking and handles its own threading
  • deleteWorldFolder() rewritten with NIO — now uses Files.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() inside startAutoResetScheduler()
  • 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() inside startAutoResetScheduler()
  • 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 ItemStack copy 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 reload command - 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 diagnostics

    • cache - View world and config cache contents with entry counts
    • timer - 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 /rwadmin subcommands 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 - /rwadmin with no arguments opens admin panel, or use /rwadmin panel explicitly
  • 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_day changes 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 /resource and /rwadmin commands
  • 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 (format HH: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_day is blank.

🛠️ Fixes

Custom menu heads (Base64 textures)

  • Fixed /resource menu custom head textures showing as Steve.
  • Head textures are now applied using the Base64 textures value reliably (preferred) with URL/JSON fallback.
  • Config now documents that menu.items.<slot>.texture supports 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 datapacks config section to automatically copy datapacks into freshly created resource worlds.
  • Optional /minecraft:reload after copying so datapacks apply without a full restart.
  • Configurable source (world:<name> or folder:<path>) and per-dimension apply toggles.

Per-world teleport toggle

  • New teleport_enabled option per dimension:
    • world.teleport_enabled
    • nether.teleport_enabled
    • end.teleport_enabled
  • Blocks teleports from both /resource tp <world> and the /resource GUI when disabled.

🛠️ Improvements

  • Added clear notes in config.yml explaining default /resource GUI 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

Комментарии

Загружаем…