Sueta

OnlySleep

1.4.4

Skip the night with just one player sleeping or configure it your way.

·Plugin
  1. 1.4.4latestOnlySleep 1.4.4last week
    Security
    - Fixed ReDoS-prone regular expressions in version and paste response parsing on Paper and Fabric - Replaced deprecated Bukkit APIs flagged by code scanning (getDescription, getDisplayName, sendTitle, Sound.valueOf, TextComponent.fromLegacyText, Spigot.sendMessage, World.get/setGameRuleValue) with Adventure and PluginMeta replacements - Removed dead code and made the Fabric TaskScheduler.Task holder static - Null-hardened Fabric /onlysleep world and /onlysleep gamemode command handlers
    Fixed
    - Fixed an inverted creative-mode check in Fabric SleepCounts that miscounted required sleepers - Fixed double percentage symbol appearing in /onlysleep status on Paper - Moved diagnostic dump paste uploads off the main server thread to run asynchronously - Replaced deprecated org.bukkit.ChatColor across Paper with a dedicated LegacyText helper to eliminate deprecation warnings while preserving formatting - Added support for underscores in raw Fabric configuration paths and improved percentage value parsing - Enforced Locale.ROOT across commands and configuration keys to prevent locale-specific casing bugs
    Changed
    - Refactored monolithic sleep managers on Paper and Fabric into dedicated lifecycle controllers (SkipCoordinator, GradualSkipController, SleepCounts, SleepEffects, SleepGamerules) - Split command handlers into dedicated action, dump, and config editor classes - Unified bed-leave and disconnect handling into a shared departure path on both platforms - Update checks now point at https://demonz.org/projects/onlysleep alongside Modrinth - Halloween countdown display is now colourised for both console and in-game chat
    32 downloads
  2. 1.4.3OnlySleep 1.4.33 weeks ago
    Added
    - Added an Halloween Easter egg
    621 downloads
  3. 1.4.2OnlySleep 1.4.2Sep 20, 2026
    ---

    [1.4.2] - 2026-09-20

    Changed
    - bumped dependencies for minecraft 26.3 (paper and fabric) - updated fabric clock manager call for 26.3 changes with fallback - updated fabric.mod.json and ci workflows for 26.3
    Fixed
    - suppressed removal warning for players_sleeping_percentage on paper 26.3 ---
    734 downloads
  4. 1.4.1OnlySleep 1.4.1-Patch update Aug 30, 2026
    fixes some recent bugs..
    360 downloads
  5. 1.4.0OnlySleep 1.4.0 -partial fabric support soon Aug 30, 2026

    [1.4.0] - 2026-08-29

    Latest-only 1.26.x - Java 25, Minecraft 26.2 (Paper & Fabric). Full parity + new APIs.
    Added
    - In-game config commands: /onlysleep set <percentage|skiptype|perworld|skipdelay|morningtime|resettime|gradualspeed|clearweather|clearthunder|bossbar|actionbar|progressbar|title|sounds|managegamerule|afktime> <value> with persistence, /onlysleep get <key>, /onlysleep toggle <key>, /onlysleep world <enable|disable|list> [world], /onlysleep gamemode <enable|disable|list> [type] - all with tab-complete - Dump command: /onlysleep dump [paste] - writes plugins/Onlysleep/dumps/dump-*.txt with config, worlds, eligible/sleeping/required, gamerules, players (AFK/exempt), messages; paste uploads to paste.mcsrv.top - Developer API: api/OnlysleepAPI.java (setSleepPercentage, setSkipType, getRequiredSleepingCount, forceSkipNight, getDiscordMessage/stripColor for ZDiscord), api/events/NightSkipEvent/SleepStartEvent/SleepCancelEvent (cancellable, fabric/api/* parity) - Fabric parity: sleep-percentage 0 default, setters, api/OnlysleepFabricAPI, same events, full command parity, FabricConfigManager persistence, PermissionHandler onlysleep.config/dump/world/gamemode - Discord helpers: OnlysleepAPI.getSleepStartDiscordMessage / getEnoughSleepingDiscordMessage / getCancelledDiscordMessage for ZDiscord bridge
    Changed
    - Default to 1.26.x only: build.gradle.kts paperApi 26.2-R0.1-SNAPSHOT / Java 25, plugin.yml api-version 1.21, fabric 26.2 / java >=25 / fabric-loader >=0.19.3, README 26.2, Java 25+, sleep-percentage 0 (was 50) for true one-player default - Help now lists set/get/toggle/world/gamemode/dump with set options footer
    Fixed
    - Gradual mode not cancellable: leaving bed during gradual/speed (activeTransitions) now cancels if sleeping < required - both Paper manager/SleepManager.java:206,230,469 and Fabric fabric/SleepManager.java:184,201,419 + timer check each tick
    22 downloads
  6. 1.3.0OnlySleep 1.3.0Jul 12, 2026
    For the full changelog, visit the [Onlysleep Wiki](https://github.com/DemonZ-Development/Onlysleep/wiki/Chan…
    ---

    [1.3.0] - 2026-07-12

    This release makes advertised features work, hardens Folia thread safety, fixes gradual skipping, and closes reload and memory leaks.
    Added
    - Automatic gamerule management: enabled worlds temporarily use playersSleepingPercentage: 101 so vanilla cannot race the plugin's configured sleep threshold. Each world's original value is restored when management stops, the world unloads, or the plugin disables. - World sleep sounds: configurable sounds now play when a player enters a bed, when weather is cleared, and when the night skip completes.
    Changed
    - Version compatibility: the release JAR now compiles against Paper 1.20.4 with Java 21 bytecode, while CI compiles and tests every available Paper API target through Paper 26.2 alpha. - Independent weather controls: rain and thunder can now be cleared separately with clear-weather and clear-thunder. - Disabled gamemode filtering: disabled gamemodes are excluded from both the sleeping count and the eligible-player total.
    Bug Fixes
    - Paper 26.1 startup crash: gamerule management now uses the typed GameRule.PLAYERS_SLEEPING_PERCENTAGE API instead of the removed legacy string lookup. - Safe gamerule reloads: turning off manage-gamerule or adding a world to disabled-worlds now restores the original gamerule immediately instead of leaving it at 101. - Dynamic world lifecycle: worlds loaded after plugin startup receive the configured override, while unloading worlds are restored and removed from tracked state. - Boss bar no longer shows "Unknown" when the initiating sleeper logs off mid-skip: - Replaced the live Bukkit.getPlayer(uuid) lookup (which returned null after the player logged out, falling back to "Unknown") with a per-world snapshot of the initiating player's name, populated at skip-start. The boss bar and deferred title both read from the snapshot, so attribution survives the player going offline. - Sleeping players no longer wake up mid-skip in gradual mode: - Rewrote scheduleGradualSkip to keep world.getTime() parked at the original night value for the entire animation. setTime() is now called exactly once — at the final tick — to snap to the morning target. This prevents vanilla's wake-up threshold (world.getTime() > 23458) from being crossed mid-animation, which previously caused players to be kicked out of bed before the skip's completion effects fired. - Listener leak on `/onlysleep reload`: AfkTracker and OfflinePlayerTracker no longer register duplicate event listeners on every reload (now properly unregistered). - `OfflinePlayerTracker` stale cache after reload: shutdown now resets the cached count so the "not loaded" sentinel works again. - Off-thread Bukkit calls in update checker: OP update notifications now dispatch to the main/global thread instead of running on the ForkJoinPool. - Folia crash on `/onlysleep update`: replaced Bukkit.getScheduler().runTask() (throws on Folia) with the SchedulerAdapter global task. - "Good morning" broadcast no longer leaks server-wide: skip/Weather-clearing messages are now scoped to the world that actually skipped, consistent with per-world sleep. - AFK double-count fixed: with count-afk-as-sleeping, a just-bed-entered player was counted twice (once in the sleeping set, once as AFK) because isSleeping() is still false right after the bed-enter event. Now deduped against the authoritative sleepingPlayers set. - Off-thread `getOfflinePlayers()` call: moved from ForkJoinPool to a scheduled global task (thread-safe on all server impls). - Thread-safe state: SleepManager maps and sets now use concurrent collections, preventing corruption on Folia region threads.
    Technical Improvements
    - Broad server-version support: gamerule handling uses a version-aware typed API across the supported Minecraft 1.20.4–26.2 range. - Extracted shared night-time bounds (12542–23458) into SleepManager.NIGHT_START_TICK / NIGHT_END_TICK + isNight(), reused by the listener and PlaceholderAPI expansion. - getSleepingPlayers() returns an unmodifiable view for safe PAPI iteration under concurrency. - Added coverage for gamerule reconciliation, dynamic world lifecycle, disabled-gamemode exclusion, independent weather clearing, and gradual skip state. ---
    561 downloads
  7. 1.2.0OnlySleep 1.2.0May 21, 2026
    For the full changelog, visit the [Onlysleep Wiki](https://github.com/DemonZ-Development/Onlysleep/wiki/Chan…
    ---

    [1.2.0] - 2026-05-21

    This release fixes critical bugs across the sleep skip system, AFK detection, config handling, and more.
    🐛 Bug Fixes
    - Fixed Gradual & Speed Skip Completing Instantly: - Rewrote the time-advance logic using a distance-traveled approach that correctly handles the night→midnight→morning wrap-around. Previously, both modes behaved identically to instant skip because newTime >= 0 was always true on the first tick. - Fixed "Good Morning" Message Appearing During Night: - Deferred all completion effects (sounds, titles, messages, cleanup) into a callback that only fires after the gradual/speed timer actually finishes. - Speed vs Gradual Now Visually Distinct: - Speed mode (150 ticks/tick, ~2-3s timelapse) and gradual mode (default 30 ticks/tick, ~6-8s sunrise) now feel genuinely different. - Fixed Bed Leave Unconditionally Cancelling Skip: - Previously, any single player leaving their bed cancelled the skip for everyone, even if enough players were still sleeping. Now only cancels when the sleeping count drops below the threshold. - Fixed Spurious "Cancelled" Message During Gradual Skip: - When vanilla kicked players out of bed at dawn during a gradual transition, a "Player has stopped sleeping" message appeared right before "Good Morning!". Bed-leave events during active transitions are now ignored. - Fixed Player Quit Not Rechecking Sleep Status: - When a non-sleeping player quit, the total player count decreased but the sleep threshold wasn't rechecked. Now properly triggers a skip if the remaining sleepers meet the new lower threshold. - Fixed CMI AFK Detection Always Failing: - The CMI integration was calling getCMIPlayer() on the Bukkit Player class (which doesn't have that method). Now uses CMI's correct static API: CMI.getInstance().getPlayerManager().getUser(player). - Fixed Config Values Containing `#` Being Stripped: - The ConfigUpdater naively stripped everything after # as an inline comment, breaking values like symbol: "■#test". Now respects quoted strings. - Fixed Misleading "No one needs to sleep" Message: - When a skip is already in progress, players now see "The night is already being skipped!" instead of the confusing "No one needs to sleep right now." - Removed Duplicate "Monsters Nearby" Message: - Vanilla Minecraft already shows its own "You can't sleep — monsters are nearby" message. The plugin's custom message stacked on top, causing players to see it twice.
    🛠️ Technical Improvements
    - Gradual/speed timer tasks stored in skipTasks for proper mid-transition cancellation. - activeTransitions set tracks worlds currently in mid-transition to prevent spurious cancel/message events. - HttpURLConnection in UpdateChecker now properly disconnected in a finally block (prevents socket leaks on 4-hour recurring checks). - Update checker recurring task is now stored and cancelled on onDisable(). - handleUpdate command dispatches async update results back to the main thread. - AfkTracker.onPlayerMove now null-checks event.getTo() (is @Nullable on Paper). - WorldUnloadEvent listener cleans up world state from maps to prevent memory leaks. - Added SleepManager.cleanupWorld() for explicit per-world state cleanup. ---
    313 downloads
  8. 1.1.0OnlySleep 1.1.0May 21, 2026
    For the full changelog, visit the [Onlysleep Wiki](https://github.com/DemonZ-Development/Onlysleep/wiki/Chan…
    ---

    [1.1.0] - 2026-05-21

    This release brings massive stability, compatibility, and user-experience improvements to Onlysleep.
    🚀 Key Improvements & Bug Fixes
    - 100% Folia/Paper Multi-threaded Stability: - Rewrote internal SchedulerAdapter to resolve reflection lookup issues and method signatures for Folia/Paper multi-threaded environments, preventing region-scheduler crashes. - Redesigned task self-cancellation on Folia to interact directly and safely with the region's returned ScheduledTask object via a thread-safe AtomicReference wrapper. - Fixed Operator Sleep Exclusion: - Removed onlysleep.exempt from the default OP wildcard permission list in plugin.yml. Administrators and OPs now contribute to sleeping by default instead of being permanently exempt, resolving issues where OPs were unable to trigger night skip. - Enhanced Gradual & Speed Transition Modes: - Resolved a critical bug in gradual mode where the skip task would continue running and fast-forwarding time all day. - Implemented the "speed" mode as a rapid timelapse fast-forward (150 ticks per tick) utilizing the self-canceling gradual skip engine. - PlaceholderAPI Null-Player Safety: - Re-engineered SleepPlaceholderExpansion to process all player-independent placeholders first (e.g. version, platform, percentage, and all world_ statistics), making it completely null-player safe when resolved from consoles, plugins, or non-player contexts. - Robust Player Trackers & Initialization: - Fixed unique player count estimation in OfflinePlayerTracker by checking for first-time players (!player.hasPlayedBefore()), preventing require-all-players-online from bypassing offline check. - Integrated direct PlayerJoinEvent and PlayerQuitEvent hooks in the built-in AfkTracker to instantly initialize player activity on join and clean up on quit, solving a bug where silent/idle players could never become AFK. - Strict Bed-Enter Validation: - Restructured SleepListener to only proceed with sleep registrations when BedEnterResult is explicitly OK (or custom-handled NOT_SAFE), avoiding false-positive skips caused by other failed bed enter attempts. - Asynchronous Recurring Update Checker: - Automatically schedules asynchronous update checks every 4 hours (non-blocking) when automatic checking is enabled, rather than only checking once on startup. - Smart Configuration Updater: - Implemented an automatic, stateful configuration merger that updates config.yml and messages.yml with new options and comments from the jar resources, fully preserving custom user values, comments, and formatting without overwriting user customization. - Safe Update Checks & Null-Safe Commands: - Fixed unescaped brackets and double quotes in the Update Checker query parameters to comply with modern strict Java runtimes, preventing URISyntaxException. - Guaranteed null-safe execution of /onlysleep update by always instantiating UpdateChecker on plugin load, regardless of whether auto-checking is enabled in the config.
    21 downloads
  9. 1.0.0OnlySleep 1.0.0May 18, 2026

    Changelog

    [1.0.0] - 2025-06-01

    🚀 Major Changes
    - Complete rewrite with modular package structure - Folia support — Full compatibility with Folia's regionized scheduler - bStats integration — Anonymous usage statistics (ID: 31415) - Platform detection — Auto-detects Bukkit, Spigot, Paper, Folia
    ✨ New Features
    - Custom skip types — Support for instant, speed, and gradual night skips - Title/subtitle support — Configurable titles when night is skipped - Sound system — Fully configurable sounds for skip events - AFK detection — EssentialsX and CMI integration - Disabled worlds — Per-world sleep disabling - Advanced player filtering — Creative mode, flying, and spectator controls - Better command system — /onlysleep status, tab completion improvements - Update checker — Automatic update checks via Modrinth API - Progress bar customization — Configurable symbols and length

    [1.0.0] - Initial Release

    - Basic one-player sleep functionality - Configurable sleep percentage - Per-world support - Boss bar display - Basic command system
    24 downloads

Similar projects

Plugin →