Tags
Creators
Details
Licensed MIT
Published last year
Updated 5 months ago
All versions
2.2.0
Release
SinglePlayerSleep - Sleep Plugin 2.2.07 months ago 2,311
Compatibility
Minecraft: Java Edition
26.1.x
1.21.x
Platforms
Bukkit
Paper
Purpur
Spigot
Changes
Changelog
[Unreleased] - 2026-04-09
Fixed
π΄ Critical
SleepSession.getSleepingPlayers()now returns the actual sleeping players set instead of a new empty set/sleepvote command now correctly checks cooldown in percentage mode- Particles no longer spawn in wrong world when player changes worlds during countdown
π High
- Removed empty
PhantomListenerevent handler that registered but did nothing - Hardcoded night time values (
12541,23458) replaced with named constantsSUNSET_TICKSandSUNRISE_TICKS - Update checker default repository corrected from
SinglePlayerSleeptoSinglePlayerSleepV2 CooldownManagernow usesConcurrentHashMapto prevent race conditions with async PlaceholderAPI callsVoteModule.addVote()race condition fixed by chainingcomputeIfAbsent()andadd()into a single atomic call- Action bar messages migrated from deprecated Bungee Chat API to Adventure API
- AFK exclusion message no longer spams chat on every sleep attempt; now sent once per session
refreshRequirement()now usesgetEffectiveSleepingCount()instead of rawsleepingPlayers.size()- Players removed from sleep tracking correctly on quit/kick regardless of
isSleeping()state
π‘ Medium
- Leaderboard cache (
topSleepersCache,topContributorsCache,lastLeaderboardRefresh) now updated atomically via a singleLeaderboardSnapshotobject - Night time boundary checks documented with inline comments
- Redundant null check on
sleepManagerparameter removed fromAfkModule.scheduledCheck()
π΅ Low
sleepingPlayerschanged fromConcurrentHashMap.newKeySet()toHashSet(all access is on main thread)- Redundant
replaceAll("[^0-9]", "")regex removed fromSleepRule.parseInt()
βͺ Style
MessageUtilfield inSleepManagernow uses simple class name instead of fully qualified name
π And more error and feature fixed.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:piy7OZtR:TYejAziR"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:piy7OZtR:TYejAziR"
}