EliteEssentials-1.1.17.jar
What's new
1.1.17 - 2026-03-01
Added
- Eco command:
/eco give <player> <amount>— alias for add (same behavior, permission, and messages as/eco add) - Fly command: cost-per-minute mode — pay for a fixed duration of flight, then flight auto-disables
- Config:
fly.costPerMinute(0 = free/unlimited; when > 0, player pays this amount and flight turns off after the duration),fly.costPerMinuteDurationSeconds(default 60) - When enabled, using
/flycharges the cost (respects economy andeliteessentials.bypass.cost.fly), enables flight, and after the configured duration flight is automatically turned off and the player is notified - Config:
fly.expiryWarningSeconds— list of seconds before expiry to notify the player (default[30, 10, 5]). Empty list = no warnings. - Messages:
flyEnabledTimed(placeholder{time}),flyExpired,flyExpiringIn(placeholder{seconds}) for warnings
- Config:
- Repair command: cost and cooldown for single repair and repair all
- Config:
repair.cost,repair.costAll(0 = free),repair.cooldownSeconds,repair.cooldownAllSeconds(0 = use single cooldown) - Permissions:
eliteessentials.command.misc.repair(single),eliteessentials.command.misc.repair.all(all); cooldown bypass and per-command cooldown.repair.cooldown.<s>/.repair.all.cooldown.<s>; cost bypasseliteessentials.bypass.cost.repair/.bypass.cost.repair.all - Permission-based costs (LuckPerms/HyperPerms):
eliteessentials.cost.repair.<amount>andeliteessentials.cost.repair.all.<amount>override config cost per player/group
- Config:
- Nick command: separate permissions for color vs formatting (like chat formatting)
eliteessentials.command.misc.nick.color- allows color codes in nicknames (whennick.requireColorPermissionis true)eliteessentials.command.misc.nick.formatting- allows formatting codes (bold, italic) in nicknames (whennick.requireFormattingPermissionis true)- Config under
nick:requireColorPermissionandrequireFormattingPermission(both defaultfalse) so basic-permission servers can allow color/format for everyone; set totrueto require the respective permission
- Offline player support for all moderation commands - you can now
/ban,/tempban,/mute,/freeze, and/ignoreplayers who are not currently online, as long as they have joined the server before- Uses the player name index to resolve offline player names to UUIDs
- If the target is online, they are still kicked/notified as before
- If the target is offline, the action is recorded and enforced when they next connect
/unmutenow also works on offline players (searches mutes by name)/unban,/unipban, and/unignorealready supported offline players- New config message
playerNeverJoineddistinguishes "not online" from "never joined this server"
- Added
unmuteByName()to MuteService,unfreezeByName()to FreezeService, andunbanByName()to TempBanService for offline player lookups
Fixed
- Cross-world TPA crash when warmup is 0 seconds -
IllegalStateException: Assert not in threadcaused by teleport callback executing on the wrong world thread (e.g. acceptor's thread instead of requester's thread). WarmupService now dispatches viaworld.execute()even for zero-warmup teleports. - Cross-world TPA crash after world unload: when a world (e.g. instance) unloads and the player is moved to another world (e.g. spawn), TPA warmup could still complete on the old world's thread, causing
Store.assertThreadwhen adding the Teleport component to the player's current (spawn) store.TeleportUtil.safeTeleport(PlayerRef overload) now always runs the teleport on the world thread that owns the player's current store, so "fall out of world" / thread assertion no longer occurs after unload/recovery. - Permission-based custom cooldown values not working for
/spawn,/home, and/warpcommands/spawnonly checked bypass permission (boolean), ignoring custom cooldown values likeeliteessentials.command.spawn.cooldown.30/homehad no cooldown support at all - now fully supports config cooldown + permission-based overrides/warphad no cooldown support at all - now fully supports config cooldown + permission-based overrides- Added missing cooldown prefix constants:
HOME_COOLDOWN_PREFIX,SPAWN_COOLDOWN_PREFIX,WARP_COOLDOWN_PREFIX getTpCommandCooldown()now correctly routes home/spawn/warp to their own category prefixes instead of falling through to the generictp.cooldown.<cmd>.pattern- Bypass checks in
getTpCommandCooldown()andgetTpCommandWarmup()now usebypassCooldown()/bypassWarmup()routing methods so spawn/home/warp resolve to their correct bypass permissions (e.g.eliteessentials.command.spawn.bypass.cooldowninstead ofeliteessentials.command.tp.bypass.cooldown.spawn) - Added
trashtogetCommandCooldown()switch (was falling through to default and returning config value without checking permissions) - Permission format:
eliteessentials.command.home.cooldown.<seconds>,eliteessentials.command.spawn.cooldown.<seconds>,eliteessentials.command.warp.cooldown.<seconds>
- Spawn protection: custom UseBlock interaction is now only registered when
spawnProtection.enabledis true. When disabled, we no longer replace the "UseBlock" handler in the codec registry, so other mods (e.g. SimpleClaims) that register their own UseBlock interaction for claim checks work correctly. Previously, registering our handler unconditionally overwrote theirs and their block-use/claim logic never ran.
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include
This mod has no related projects