File Details
EliteEssentials-2.0.2.jar
- R
- Mar 29, 2026
- 8.33 MB
- 365
- Early Access
File Name
EliteEssentials-2.0.2.jar
Supported Versions
- Early Access
2.0.2 - 2026-03-28
Added
- Broadcast greeting rules — greeting rules in
greetings.jsonnow support a"broadcast": trueoption. When enabled, the greeting message is sent to all online players instead of only the triggering player. Useful for VIP/staff join announcements (e.g.&6[VIP] &e{player} has joined the server!). Defaults tofalseso existing configs are unaffected. Broadcast rules are automatically skipped for vanished players. A new default example rulevip-join-announceis included (disabled by default). Also added{displayname}placeholder support in greetings for nick compatibility
Fixed
- Migration NPE for all player data —
/eemigrationfrom EssentialsCore, EssentialsPlus, Hyssentials, and HomesPlus would fail with"this.playerFileStorage" is nullfor every player file. All four migration services were typed to the concretePlayerFileStorageclass, which is only set in JSON storage mode. Servers using H2 or MySQL storage would always get null passed in. Changed all migration services to accept thePlayerStorageProviderinterface so migrations work regardless of storage backend - Sleep percentage world crash —
SleepService.triggerSlumber()was callingtimeResource.setGameTime()directly and manually constructingPlayerSomnolencewithMorningWakeUp, bypassing the engine'sUpdateWorldSlumberSystem. This created conflicting state mutations that could crash the world. Fixed by delegating to the engine properly: setsWorldSomnolencestate toWorldSlumberand lets the engine handle time progression and player state transitions. Night skip now has a brief visual transition instead of being instant, matching intended engine behavior - Admin UI "player not found" for offline players — all
/eeadminactions (ban, temp ban, IP ban, mute, warn, clear warnings, lookup warnings) were usingPlayerSuggestionProvider.findPlayer()which only searches online players. Added offline fallback viaPlayerStorageProvider.getUuidByName()so these actions now work for any player who has joined the server before. IP ban uses the player's last known IP from their stored IP history when offline /ipbannot working for offline players — the/ipbancommand had the same online-only limitation. Now falls back to the player's stored IP history when the target is offline