{"id":141852,"date":"2026-06-08T13:23:51","date_gmt":"2026-06-08T10:23:51","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/singleplayersleep\/"},"modified":"2026-06-08T13:23:51","modified_gmt":"2026-06-08T10:23:51","slug":"singleplayersleep","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/singleplayersleep\/","title":{"rendered":"SinglePlayerSleep &#8211; Sleep Plugin"},"content":{"rendered":"<p># UPDATE V2.2.0 IS HERE!<br \/>\n> ### \u26a0\ufe0f This project is still under development and may contain bugs. Use carefully and report any issues.<br \/>\n> **I DO NOT INTEND TO MAKE ANY MONEY FROM THIS PROJECT.** Contact: mrsuffix@olnk.tr<br \/>\n><br \/>\n> This plugin has no connection to the SinglePlayerSleep plugin on SpigotMC. It is merely a coincidence in name.<br \/>\n><br \/>\n> This plugin was created using AI and was developed solely to demonstrate that AI can write advanced code and build a functional system. You are welcome to fork and utilize it as you see fit.<\/p>\n<p># \ud83d\udecc SinglePlayerSleep Plugin<\/p>\n<p>![GitHub release](https:\/\/img.shields.io\/github\/v\/release\/MRsuffixx\/SinglePlayerSleep)<br \/>\n![GitHub license](https:\/\/img.shields.io\/github\/license\/MRsuffixx\/SinglePlayerSleep)<br \/>\n![GitHub issues](https:\/\/img.shields.io\/github\/issues\/MRsuffixx\/SinglePlayerSleep)<br \/>\n![Modrinth Downloads](https:\/\/img.shields.io\/modrinth\/dt\/piy7OZtR?color=blue&#038;label=Downloads&#038;logo=modrinth)<br \/>\n![Modrinth Version](https:\/\/img.shields.io\/modrinth\/v\/piy7OZtR?label=Latest%20Version&#038;logo=modrinth)<br \/>\n![Java Version](https:\/\/img.shields.io\/badge\/Java-21%2B-blue)<br \/>\n![Minecraft Version](https:\/\/img.shields.io\/badge\/Minecraft-1.21.1+-green)<\/p>\n<p>![Hangar Downloads](https:\/\/hangar.papermc.io\/MRsuffixx\/SinglePlayerSleep)<br \/>\n![Hangar Stars](https:\/\/hangar.papermc.io\/MRsuffixx\/SinglePlayerSleep)<br \/>\n![Hangar Views](https:\/\/hangar.papermc.io\/MRsuffixx\/SinglePlayerSleep)<\/p>\n<p>> \u2728 A modern, lightweight Minecraft plugin to skip the night instantly in single-player worlds or with percentage-based voting \u2014 packed with rich features, visual effects, and fully configurable settings.<\/p>\n<p>\ud83d\udce5 Download from Modrinth<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udcdc About<\/p>\n<p>**SinglePlayerSleep** is designed for Minecraft servers that aim to keep the immersive single-player feel, even in multiplayer mode, by allowing the night to be skipped when a single player sleeps or when a certain percentage of players vote to sleep.<\/p>\n<p>Built with performance and flexibility in mind, it features configurable messages, particle &#038; sound effects, automatic saving, AFK detection, PlaceholderAPI integration, sleep statistics, and automatic update checking.<\/p>\n<p>Whether you run a small private SMP or a public server, SinglePlayerSleep seamlessly handles night skipping without requiring everyone online to sleep.<\/p>\n<p>&#8212;<\/p>\n<p>## \u2699\ufe0f Features<\/p>\n<p>### Core Features<br \/>\n&#8211; \u2705 Skip the night when just **one** player sleeps (classic mode)<br \/>\n&#8211; \u2705 Percentage-based sleep voting system<br \/>\n&#8211; \u2705 AFK player detection and exclusion from sleep count<br \/>\n&#8211; \u2705 Automatic GitHub update checker<br \/>\n&#8211; \u2705 Fully configurable delay before skipping night<br \/>\n&#8211; \u2705 Cooldown between sleep events to prevent spam<br \/>\n&#8211; \u2705 Automatic weather clearing on new day<br \/>\n&#8211; \u2705 **PlaceholderAPI integration** (`%sps_*%` placeholders)<br \/>\n&#8211; \u2705 **Sleep statistics tracking** (global + per-player, persisted to `stats.yml`)<br \/>\n&#8211; \u2705 **Countdown** before night skip (action bar + chat)<br \/>\n&#8211; \u2705 **Per-world enable\/disable** (whitelist or blacklist mode)<br \/>\n&#8211; \u2705 **Phantom timer reset** on night skip (Paper-aware)<\/p>\n<p>### Visual &#038; Performance<br \/>\n&#8211; \u2705 Particle and sound effects for visual feedback<br \/>\n&#8211; \u2705 Smart particle optimization based on player count<br \/>\n&#8211; \u2705 Config cache system for fast performance<br \/>\n&#8211; \u2705 Real-time sleep progress messages<\/p>\n<p>### Server Management<br \/>\n&#8211; \u2705 Auto-save worlds after night skip<br \/>\n&#8211; \u2705 Custom messages with color codes and placeholders<br \/>\n&#8211; \u2705 World-specific activation<br \/>\n&#8211; \u2705 Debug mode and detailed logging<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83c\udd95 What&#8217;s New in v2.2.0<\/p>\n<p>### \ud83d\udc1b Critical Bug Fixes<\/p>\n<p>&#8211; **Fixed `getSleepingPlayers()` always returning empty set** \u2014 The method was returning a newly created empty collection instead of the actual sleeping players. Any code relying on this (placeholders, stats) was silently broken.<br \/>\n&#8211; **Fixed `\/sleep` vote command bypassing cooldown** \u2014 In percentage mode, players could bypass the sleep cooldown by using the `\/sleep` command instead of entering a bed. Cooldown is now enforced on both paths.<br \/>\n&#8211; **Fixed particles spawning in wrong world** \u2014 If a player changed worlds during the countdown, particles would spawn at their current location in the wrong world. Players are now verified to still be in the session&#8217;s world before effects are applied.<br \/>\n&#8211; **Fixed `CooldownManager` missing from `SleepCommand` constructor** \u2014 The `cooldownManager` field was declared but never assigned, causing a `NullPointerException` on every `\/sleep` command execution.<\/p>\n<p>### \ud83d\udd27 High-Priority Fixes<\/p>\n<p>&#8211; **Implemented `PhantomListener`** \u2014 The listener was registered but the event handler body was completely empty, meaning phantom spawns were never actually cancelled. Logic is now correctly implemented.<br \/>\n&#8211; **Fixed stats not auto-saving** \u2014 Stats were only written to disk on server shutdown or `\/sps reload`. A crash would cause full stats loss. A periodic auto-save task now runs every 5 minutes.<br \/>\n&#8211; **Fixed `SleepSession` thread safety** \u2014 `sleepingPlayers` is now backed by a concurrent collection to prevent `ConcurrentModificationException` during async PlaceholderAPI queries.<br \/>\n&#8211; **Fixed `VoteModule.addVote()` race condition** \u2014 `computeIfAbsent()` and `get()` were two separate operations. They are now chained into a single atomic call.<br \/>\n&#8211; **Fixed `CooldownManager` thread safety** \u2014 Changed from `HashMap` to `ConcurrentHashMap` to prevent race conditions from async PlaceholderAPI thread access.<br \/>\n&#8211; **Fixed AFK exclusion message spam** \u2014 The &#8220;AFK players excluded&#8221; message was broadcasting on every single sleep attempt per session. It now sends only once per session.<br \/>\n&#8211; **Migrated action bar from deprecated Bungee Chat API to Adventure API** \u2014 `net.md_5.bungee.api` usages replaced with `player.sendActionBar()` via Adventure API, as recommended for Paper 1.21+.<br \/>\n&#8211; **Fixed `refreshRequirement()` using raw player count** \u2014 Now correctly uses `getEffectiveSleepingCount()` instead of `sleepingPlayers.size()` to account for `\/sleep` votes in percentage mode.<br \/>\n&#8211; **Fixed quit\/kick handler missing sleeping players** \u2014 Players tracked in `sleepingPlayers` but kicked before sleep animation completed were not being removed. `onPlayerLeave()` is now called unconditionally.<br \/>\n&#8211; **Fixed `getSession()` creating empty sessions** \u2014 In percentage mode, `getSession(world)` was called to retrieve the required count, which triggered `computeIfAbsent` and created an empty session even when no one had entered a bed. Now uses `getSessionIfExists()`.<br \/>\n&#8211; **Fixed vote world check missing** \u2014 Votes were being counted without verifying the voter is still in the same world as the sleep session.<br \/>\n&#8211; **Fixed default GitHub repository name** \u2014 Update checker default was `SinglePlayerSleep` instead of `SinglePlayerSleepV2`, causing update checks to fail on fresh installs.<\/p>\n<p>### \u26a1 Performance &#038; Medium Fixes<\/p>\n<p>&#8211; **Introduced `TimeUtil` class** \u2014 Magic numbers `12541` (sunset) and `23458` (sunrise) were hardcoded across `SleepSession.java`, `SleepManager.java`, and `PlaceholderHook.java`. These are now named constants (`SUNSET_TICKS`, `SUNRISE_TICKS`) in a shared `TimeUtil` class.<br \/>\n&#8211; **Optimized `getEffectiveSleepingCount()`** \u2014 Replaced set-union allocation (creating a new `HashSet` on every call) with a simple counter loop, reducing GC pressure on busy servers.<br \/>\n&#8211; **Fixed `calculateRequired()` called multiple times** \u2014 Result is now cached in a local variable within `checkSleepCondition()`.<br \/>\n&#8211; **Unified leaderboard cache updates** \u2014 `topSleepersCache`, `topContributorsCache`, and `lastLeaderboardRefresh` are now updated atomically via a single `LeaderboardSnapshot` object to prevent inconsistent reads across threads.<br \/>\n&#8211; **Fixed empty world session memory leak** \u2014 Sleep sessions now clean themselves up when a world becomes empty, preventing unbounded session map growth on servers with many temporary worlds.<br \/>\n&#8211; **Added stats cleanup for old player data** \u2014 `stats.yml` no longer grows unbounded. A configurable `stats.cleanup-days` option (default: 90) purges entries for players who haven&#8217;t been seen recently.<br \/>\n&#8211; **Removed redundant null checks** \u2014 `Player.getWorld()` is never null in the Bukkit API. Removed misleading defensive checks from `VoteModule` and `SleepListener`.<br \/>\n&#8211; **Removed redundant `isPrimaryThread()` check in `AfkListener`** \u2014 `AsyncPlayerChatEvent` is always async by Bukkit contract; the check was misleading.<br \/>\n&#8211; **Removed redundant null check in `AfkModule.scheduledCheck()`** \u2014 `sleepManager` is never null at the call site.<br \/>\n&#8211; **Fixed `VoteModule.getVotes()` unnecessary copy** \u2014 Changed from `Set.copyOf()` (full allocation) to `Collections.unmodifiableSet()` (view only).<br \/>\n&#8211; **Fixed `PhantomModule` broadcasting when no players were reset** \u2014 The phantom-reset message now only broadcasts if at least one player&#8217;s timer was actually reset.<\/p>\n<p>### \ud83c\udfa8 Code Quality<\/p>\n<p>&#8211; **Added `TimeUtil` class** with `isNight(World)` helper method<br \/>\n&#8211; **Fixed fully qualified class names** in `SpsCommand.java` and `SleepManager.java` \u2014 proper imports added, simple class names used consistently<br \/>\n&#8211; **Removed unnecessary null checks on Bukkit events** \u2014 Bukkit never fires null events; defensive checks removed from `SleepListener`<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udcc2 Installation<\/p>\n<p>1. Download the latest release from Releases or Modrinth.<br \/>\n2. Place the `.jar` file into your server&#8217;s `\/plugins` folder.<br \/>\n3. Restart or reload your server.<br \/>\n4. Edit `plugins\/SinglePlayerSleep\/config.yml` as needed.<br \/>\n5. Use `\/sps reload` to apply configuration changes.<\/p>\n<p>**Requirements:**<br \/>\n&#8211; Minecraft 1.21.1+<br \/>\n&#8211; Java 21+<br \/>\n&#8211; Paper (recommended) or Spigot<\/p>\n<p>> **Optional:** Install PlaceholderAPI to enable `%sps_*%` placeholders.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udee0\ufe0f Commands<\/p>\n<p>| Command | Description | Permission |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| `\/sleep` | Vote to skip the night (percentage mode) | `singleplayersleep.sleep` |<br \/>\n| `\/sps reload` | Reload config and reset sessions | `singleplayersleep.admin` |<br \/>\n| `\/sps stats [player]` | View global or per-player sleep stats | `singleplayersleep.admin` |<br \/>\n| `\/sps afk` | Toggle your AFK status manually | `singleplayersleep.admin` |<br \/>\n| `\/sps version` | Show plugin info and update status | `singleplayersleep.admin` |<br \/>\n| `\/sps debug` | Toggle debug logging | `singleplayersleep.admin` |<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udd11 Permissions<\/p>\n<p>| Permission | Default | Description |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| `singleplayersleep.sleep` | `true` | Use `\/sleep` |<br \/>\n| `singleplayersleep.admin` | `op` | Use `\/sps` and admin features |<br \/>\n| `singleplayersleep.bypasscooldown` | `op` | Bypass sleep cooldown |<br \/>\n| `singleplayersleep.bypassafk` | `op` | Never marked as AFK |<br \/>\n| `singleplayersleep.stats` | `true` | View statistics (reserved) |<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udcca PlaceholderAPI<\/p>\n<p>> Requires PlaceholderAPI installed. Expansion identifier: `sps`<\/p>\n<p>| Placeholder | Description |<br \/>\n|&#8212;|&#8212;|<br \/>\n| `%sps_sleeping%` | Current sleeping players in the viewer&#8217;s world |<br \/>\n| `%sps_required%` | Required sleepers in the viewer&#8217;s world |<br \/>\n| `%sps_is_night%` | `true\/false` \u2014 is it currently night |<br \/>\n| `%sps_is_processing%` | `true\/false` \u2014 is night skip in progress |<br \/>\n| `%sps_cooldown%` | Remaining cooldown in seconds |<br \/>\n| `%sps_is_afk%` | `true\/false` \u2014 is the player AFK |<br \/>\n| `%sps_nights_skipped%` | Total nights skipped (global) |<br \/>\n| `%sps_player_times_slept%` | Times this player has slept |<br \/>\n| `%sps_mode%` | `single` or `percentage` |<br \/>\n| `%sps_percentage%` | Required percentage |<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83e\udde9 Configuration Overview<\/p>\n<p>Config file: `plugins\/SinglePlayerSleep\/config.yml`<\/p>\n<p>### Sleep Behavior<\/p>\n<p>| Key | Default | Description |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| `sleep.mode` | `single` | `single` or `percentage` |<br \/>\n| `sleep.percentage` | `50` | Required % of non-AFK players |<br \/>\n| `sleep.delay-ticks` | `100` | Delay before night skip (20 = 1 second) |<br \/>\n| `sleep.cooldown-seconds` | `60` | Cooldown between sleep sessions |<br \/>\n| `sleep.clear-weather` | `true` | Clear rain\/thunder after skip |<br \/>\n| `sleep.auto-save` | `true` | Call `world.save()` after skip |<\/p>\n<p>### AFK System<\/p>\n<p>| Key | Default | Description |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| `afk.enabled` | `true` | Enable AFK tracking |<br \/>\n| `afk.timeout-seconds` | `300` | Inactivity before AFK |<br \/>\n| `afk.exclude-from-count` | `true` | Exclude AFK players from required count |<br \/>\n| `afk.check-interval-ticks` | `200` | How often AFK checks run |<\/p>\n<p>### Countdown<\/p>\n<p>| Key | Default | Description |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| `countdown.enabled` | `true` | Enable countdown before skip |<br \/>\n| `countdown.duration-seconds` | `5` | Countdown length |<br \/>\n| `countdown.show-actionbar` | `true` | Show countdown in action bar |<br \/>\n| `countdown.show-chat` | `false` | Also post countdown to chat |<br \/>\n| `countdown.sound-on-each-tick` | `true` | Play tick sound each second |<\/p>\n<p>### Statistics<\/p>\n<p>| Key | Default | Description |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| `stats.enabled` | `true` | Enable stats tracking |<br \/>\n| `stats.persist` | `true` | Save stats to `stats.yml` |<br \/>\n| `stats.track-per-player` | `true` | Track per-player stats |<br \/>\n| `stats.cleanup-days` | `90` | Purge stats for players unseen this many days |<\/p>\n<p>### World Filtering<\/p>\n<p>| Key | Default | Description |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| `worlds.enabled` | `[&#8220;world&#8221;]` | World list |<br \/>\n| `worlds.mode` | `whitelist` | `whitelist` or `blacklist` |<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83e\udd1d Contributing<\/p>\n<p>Contributions are welcome!<\/p>\n<p>1. Fork the repository<br \/>\n2. Create a feature branch: `git checkout -b feature\/my-feature`<br \/>\n3. Commit your changes: `git commit -m &#8220;Add my feature&#8221;`<br \/>\n4. Push: `git push origin feature\/my-feature`<br \/>\n5. Open a Pull Request<\/p>\n<p>&#8220;`bash<br \/>\n# Clone and build<br \/>\ngit clone https:\/\/github.com\/MRsuffixx\/SinglePlayerSleep.git<br \/>\nmvn clean package<br \/>\n# Output: target\/SinglePlayerSleep-2.2.0.jar<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udcde Support<\/p>\n<p>&#8211; GitHub Issues<br \/>\n&#8211; Modrinth Page<\/p>\n<p>When reporting a bug, please include: Minecraft version, plugin version, server software, `config.yml`, and any error logs.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\uddfa\ufe0f Roadmap<\/p>\n<p>&#8211; [ ] Bossbar progress indicator<br \/>\n&#8211; [ ] MySQL\/SQLite database support for statistics<br \/>\n&#8211; [ ] Multi-language support<br \/>\n&#8211; [ ] Discord webhook integration<br \/>\n&#8211; [ ] Per-world configuration overrides<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udcc3 License<\/p>\n<p>Distributed under the MIT License. See [LICENSE](LICENSE) for details.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83c\udfc6 Credits<\/p>\n<p>**Author:** MRsuffix \u2014 **Current Version:** 2.2.0 \u2014 **Minecraft:** 1.21.1+<\/p>\n<p>> \ud83e\udde1 Built with love for the Minecraft community.<\/p>\n<p>**Current Version:** 2.2.0<br \/>\n**Last Updated:** April 2026<br \/>\n**Minecraft Compatibility:** 26.1+<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A modern Minecraft plugin that lets a single player sleep, skip the night with stylish effects, lightweight performance, and full configurability \u2014 entirely AI-crafted.<\/p>\n","protected":false},"featured_media":141853,"template":"","meta":{"_minecraft_slug":"singleplayersleep","_minecraft_project_id":"piy7OZtR","_minecraft_author":"MRsuffixx","_minecraft_license":"MIT","_minecraft_downloads":9735,"_minecraft_follows":8,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"singleplayersleep.zip","_minecraft_size_bytes":299324,"_minecraft_version_count":6,"_minecraft_updated_at":"2026-05-16T02:00:34.976456Z","_minecraft_date_created":"2025-07-26T22:04:43.650509Z","_minecraft_date_modified":"2026-04-09T20:15:23.408751Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/singleplayersleep","_minecraft_icon_attachment_id":141853,"_minecraft_imported_at":"2026-06-08T10:23:52+00:00","_minecraft_import_hash":"cba16036a0abbc48c1bde39790c125cc","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[124,89,126,127,128,129],"mod_loader":[130,132,133,134],"minecraft_version":[59,36,60,93,94,101,102,62,37,40,41,73,74,38,78,79,80,81,82,83,167,163],"class_list":["post-141852","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-bukkit","mod_category-game-mechanics","mod_category-management","mod_category-paper","mod_category-purpur","mod_category-spigot","mod_loader-bukkit","mod_loader-paper","mod_loader-purpur","mod_loader-spigot","minecraft_version-1-20","minecraft_version-1-20-1","minecraft_version-1-20-2","minecraft_version-1-20-3","minecraft_version-1-20-4","minecraft_version-1-20-5","minecraft_version-1-20-6","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9","minecraft_version-26-1","minecraft_version-26-1-1","minecraft_version-26-1-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>SinglePlayerSleep - Sleep Plugin - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/singleplayersleep\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SinglePlayerSleep - Sleep Plugin - Minecraft\" \/>\n<meta property=\"og:description\" content=\"A modern Minecraft plugin that lets a single player sleep, skip the night with stylish effects, lightweight performance, and full configurability \u2014 entirely AI-crafted.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/singleplayersleep\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/singleplayersleep\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/singleplayersleep\\\/\",\"name\":\"SinglePlayerSleep - Sleep Plugin - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/singleplayersleep\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/singleplayersleep\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/singleplayersleep-icon-8f7053bfd49d281576e91b758cdb28de13ec3a00_96.webp\",\"datePublished\":\"2026-06-08T10:23:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/singleplayersleep\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/singleplayersleep\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/singleplayersleep\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/singleplayersleep-icon-8f7053bfd49d281576e91b758cdb28de13ec3a00_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/singleplayersleep-icon-8f7053bfd49d281576e91b758cdb28de13ec3a00_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/singleplayersleep\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"SinglePlayerSleep &#8211; Sleep Plugin\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SinglePlayerSleep - Sleep Plugin - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/singleplayersleep\/","og_locale":"en_US","og_type":"article","og_title":"SinglePlayerSleep - Sleep Plugin - Minecraft","og_description":"A modern Minecraft plugin that lets a single player sleep, skip the night with stylish effects, lightweight performance, and full configurability \u2014 entirely AI-crafted.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/singleplayersleep\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/singleplayersleep\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/singleplayersleep\/","name":"SinglePlayerSleep - Sleep Plugin - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/singleplayersleep\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/singleplayersleep\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/singleplayersleep-icon-8f7053bfd49d281576e91b758cdb28de13ec3a00_96.webp","datePublished":"2026-06-08T10:23:51+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/singleplayersleep\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/singleplayersleep\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/singleplayersleep\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/singleplayersleep-icon-8f7053bfd49d281576e91b758cdb28de13ec3a00_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/singleplayersleep-icon-8f7053bfd49d281576e91b758cdb28de13ec3a00_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/singleplayersleep\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"SinglePlayerSleep &#8211; Sleep Plugin"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/141852","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/141853"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=141852"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=141852"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=141852"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=141852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}