Skip to content
Compare
Choose a tag to compare

This release is a hotfix for an issue in the Discord module. All other changes can be found in the 2.19.1 changelog - please read the linked changelog for important changes since 2.19.0 or older versions.

Bug fixes

  • Discord: Command responses no longer fail when they are shorter than Discord's maximum message length. (#4690)
0b7e780
Compare
Choose a tag to compare

After months of hard work from our contributors, EssentialsX 2.19.1 is here! 🎉

This release adds 1.18.1 support, and contains countless new features and bug fixes. Keep reading to see all the new additions!

Thanks to all our contributors who contributed to this release (all of whom are listed at the bottom of this release), as well as to everyone who has contributed to translations on Crowdin!

Finally, a massive thanks to our community members who have assisted countless people on GitHub and MOSS, including @triagonal, @JasonHorkles, @Evidentsinger14, @Chew, @Laarryy and many others.

In addition, a shoutout to our dozens of supporters on Patreon, GitHub Sponsors and Ko-fi, including:

Your support helps us to continue spending hours of our free time working on and improving EssentialsX for everyone. If you've got any spare change, you can click one of the buttons below to support the EssentialsX project:

Patreon Ko-fi GitHub Sponsors

Supported server versions

EssentialsX officially supports the CraftBukkit, Spigot, and Paper server software. Specifically, EssentialsX is designed to work on the following Minecraft versions:

  • 1.17.1 and 1.18.1 - EssentialsX actively develops against and supports these versions.
  • ⚠️ 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2, 1.13.2, 1.14.4, 1.15.2, and 1.16.5 - these versions are still supported, but are not a priority for us, and may be dropped in a future release.

We recommend using the latest version of Paper. EssentialsX includes significant improvements that require Paper, including:

  • Paper's async chunk loading reduces lag spikes during player teleports.
    CraftBukkit and Spigot do not support async chunk loading from plugins.
  • /anvil, /grindstone, /cartographytable, /loom, /smithingtable, /stonecutter are only supported on Paper.
    CraftBukkit and Spigot do not support the API needed for these.
  • /recipe on 1.12+ requires Paper to avoid a dupe bug introduced by CraftBukkit and Spigot.
  • Paper contains countless overall performance optimisations over CraftBukkit and Spigot.
  • Paper supports all properly-written plugins for CraftBukkit and Spigot.

EssentialsX does not support the following Minecraft versions or server software:

Upgrading to 2.19.1

If you're upgrading from 2.19.0, you can keep your current EssentialsX config file. However, 2.19.1 adds several new options that you may want to configure, and to do so you'll need to either update your config or add the new settings to your existing config. Read on for a list of changes and new config options.

Upgrading from 2.18.2 or older versions of EssentialsX? See the previous update changelogs.

Known issues

Anchor charges deplete on Spigot even when EssentialsX Spawn overrides the spawn location

On CraftBukkit and Spigot, anchor charges will deplete regardless of the respawn-at-anchor due to an unfixed bug in CraftBukkit. This bug has been patched in Paper.

Important changes

Teleport safety world height changes (#4641, #4667)

The world height is now properly taken into account when determining if a location is safe. EssentialsX should now take into account y-levels of 0 to 255, -64 to 319, and any custom y-level defined by a datapack.

New features

EssentialsX now supports 1.18.1 (#4640, #4667)

EssentialsX now has full support for Minecraft 1.18.1, including support for the new items in /give, /item and kits, new 1.18 world height changes, and new NMS/OBC mappings for accessing internal CraftBukkit code.

EssentialsX also no longer warns when installed on 1.18.1 servers.

New support for multiple TPA requests (#3801)

You can now receive and accept/deny TPA requests from multiple players at a time.

You can edit the maximum amount of TPA requests a player can have at once by changing tpa-max-amount in the config:

# The maximum amount of simultaneous TPA requests that can be pending for any given user.
# Once at this threshold, any new TPA requests will bump the oldest TPA requests out of queue.
# Defaults to 5.
tpa-max-amount: 5

New Discord module features (#4520, #4541, #4620, #4534)

New action message type

A Minecraft -> Discord message type, sent when a player uses the /me or /action commands.

# Configure which Discord channels different messages will be sent to.
# You can either use the names of the channels listed above or just the id of a channel.
# If an invalid channel is used, the primary channel will be used instead.
#
# To disable a message from showing, use 'none' as the channel name.
message-types:
  ...
  # Action messages sent when a player runs the /me or /action commands.
  action: primary
# The following entries allow you to customize the formatting of messages sent by the plugin.
# Each message has a description of how it is used along with placeholders that can be used.
messages:
  ...
  # This is the message sent to Discord when a player runs the /me or /action command.
  # The following placeholders can be used here:
  # - {username}: The name of the user who ran the command
  # - {displayname}: The display name of the user who ran the command
  # - {action}: The action (message) the user used in the command.
  # ... PlaceholderAPI placeholders are also supported here too!
  action: ":person_biking: {displayname} *{action}*"

New /discordbroadcast command

Allows you to send one off messages from Minecraft to Discord. Supports markdown and tab completes server emotes.

gCn04at9cG.mp4.mp4

image

New /discord command

Sends a configured Discord invite link.

# The Discord invite URL that will be shown when a player when using the /discord command or in other areas.
discord-url: "https://discord.gg/invite-code"

New console regex filters

Allows you to filter certain console lines if they match a regex pattern.

# Console relay settings
# The console relay sends every message shown in the console to a Discord channel.
console:
  ...
  # A regex pattern which will not sending matching console messages to Discord.
  console-filter: ""

New /mail sendtempall command (#4561)

Allows you to send a temporary mail to all users on the server with /mail sendtempall <expire time> <message>. Requires the essentials.mail.sendtempall permission.

New /playtime command (#4562, #4619)

You can now run /playtime to view your time in game. If you have the essentials.playtime.others permission, you can also view the playtime of other players.

Jail notifications (#4576)

Players with the essentials.jail.notify permission will now be notified if someone is jailed.

Kits subfolder and multiple kit files (#4407)

You can now optionally create a plugins/Essentials/kits/ folder (in addition to the default kits.yml file) and organise your kits into multiple files within that folder. Kit files in this folder use the same structure as the normal kits.yml file.

For example, you could have a structure like this:

plugins/Essentials/
|--- kits/ (optional)
    |--- cosmetics.yml
    |--- rewards.yml
    |--- staff.yml
|--- kits.yml (required)

All kits will have the same name in-game as they do in the file where they are defined. Kits with the same name in different files will be ignored.

If you set pastebin-createkit: false in your config.yml and use /createkit, it will always place new kits in the default plugins/Essentials/kits.yml. If you want to place your /createkit kits into separate files, we recommend setting pastebin-createkit: true and manually adding the kit to the correct file as desired.

Other additions

  • Translations have been updated with the latest community contributions on Crowdin.
  • Command filtering is now asynchronous on Paper. (#4460)
  • Added the alias /ess dump all for /ess dump *. (#4517)
  • Added UUIDs to /seen for players with the essentials.seen.uuid permission. (#4531)
  • Added a translation for player's real name in the player list. (#4614)
  • Improved the error message for updater checker rate limit. (#4560)
  • Improved performance during world reloads. (#4573)
  • Discord: Updated EssentialsXDiscord dependencies (JDA + discord-webhooks). (#4655)

Bug fixes

Bugs fixed from 2.19.0 and older versions

  • Commands ending in single colon no longer raise an exception. (#4508)
  • Waking up a villager no longer sets your bed home. (#4524)
  • The verbose-command-usages config option now actually reverts usage messages to previous behavior. (#4530)
  • Discord bot tokens are now properly censored in /ess dump. (#4563)'
  • Warps from deleted worlds can once again be deleted. (#4590)
  • Various issues with potions in kits have been fixed. (#4591)
  • Light blocks are no longer considered solid blocks. (#4601)
  • Unsafe homes can now be teleported to when force-disable-teleport-safety is enabled. (#4650)
  • Disabling commands from Essentials addons no longer crash the server. (#4680)
  • Discord: Vanilla commands now work properly with the Discord command relay. (#4552)
  • Discord: Various null issues have been fixed in the Discord module. (#4651)
  • Discord: Discord interaction messages no longer error when sent with messages above 2000 characters. (#4686)

Regressions fixed from 2.19.1 dev builds

  • Player UUID now appears below the alts section of /seen. (#4615)
  • /playtime no longer throws an error on offline players. (#4649)
  • essentials.fly.safelogin now properly considers 1.18 world height. (#4667)
  • Removed ess_ignore_teleport Bukkit metadata. This will be superseded with a proper API. (#4682)

Changes for developers

TPA request API: additions, deprecations and replacements (#3801)

If your plugin hooks into Essentials' TPA system, various APIs have been changed and deprecated to accommodate the TPA system rewrite which now support multiple simultaneous TPA requests.

New methods

IUser#getNextTpaRequest has been added to get the most recent teleport request.
IUser#hasPendingTpaRequests has been added to replace IUser#hasOutstandingTeleportRequest with additional functionality.

Deprecated methods

IUser#hasOutstandingTeleportRequest has been deprecated in favour of IUser#hasPendingTpaRequests.
IUser#getTeleportRequestTime has been deprecated in favour of IUser#getNextTpaRequest.

Vanish metadata value (#4646)

EssentialsX now sets the vanished value on players' Bukkit metadata when they are vanished or hidden. If you use this value already to detect when plugins like VanishNoPacket and SuperVanish hide players, you will now also be able to detect EssentialsX's /vanish with no extra effort.

New events

EssentialsX 2.19.1 introduces several new events:

  • TeleportRequestResponseEvent is fired when a player accepts or denies a TPA request. (#3801)
  • UserActionEvent is fired when a player runs /me or /action. (#4520)
  • Discord: DiscordRelayEvent is fired when a message is relayed from Discord to Minecraft, and can be edited or cancelled. (#4656)

For a full commit log, click here.

Compare
Choose a tag to compare

After months of hard work from our contributors, EssentialsX 2.19.0 is here! 🎉

This release contains a new Discord addon, countless new features, bug fixes and internal improvements. Keep reading to see all the new additions!

Thanks to @JRoy, @triagonal, @pop4959, @jpenilla and all our other contributors who contributed to this release, as well as to everyone who has contributed to translations on Crowdin!

Finally, a massive thanks to our community members who have assisted countless people on GitHub and MOSS, including @triagonal, @JasonHorkles, @Evidentsinger14, @Chew, @Laarryy and many others.

In addition, a shoutout to our dozens of supporters on Patreon, GitHub Sponsors and Ko-fi!
A particular shoutout goes to our Hero tier supporters, including:

Your support helps us to continue spending hours of our free time working on and improving EssentialsX for everyone. If you've got any spare change, you can click one of the buttons below to support the EssentialsX project:

Patreon Ko-fi GitHub Sponsors

Supported server versions

EssentialsX officially supports the CraftBukkit, Spigot, and Paper server software. Specifically, EssentialsX is designed to work on the following Minecraft versions:

  • 1.16.5 and 1.17.1 - EssentialsX actively develops against and supports these versions.
  • ⚠️ 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2, 1.13.2, 1.14.4, and 1.15.2 - these versions are still supported, but are not a priority for us, and may be dropped in a future release.

We recommend using the latest version of Paper. EssentialsX includes significant improvements that require Paper, including:

  • Paper's async chunk loading reduces lag spikes during player teleports.
    CraftBukkit and Spigot do not support async chunk loading from plugins.
  • /anvil, /grindstone, /cartographytable, /loom, /smithingtable, /stonecutter are only supported on Paper.
    CraftBukkit and Spigot do not support the API needed for these.
  • /recipe on 1.12+ requires Paper to avoid a dupe bug introduced by CraftBukkit and Spigot.
  • Paper contains countless overall performance optimisations over CraftBukkit and Spigot.

EssentialsX does not support the following Minecraft versions or server software:

Upgrading to 2.19.0

If you're upgrading from 2.18.2, you can keep your current EssentialsX config file. However, 2.19.0 adds several new options that you may want to configure, and to do so you'll need to either update your config or add the new settings to your existing config. Read on for a list of changes and new config options.

Upgrading from 2.18.1 or older versions of EssentialsX? See the previous update changelogs.

New module: EssentialsX Discord! (#3844) 🎉

EssentialsX now has a Discord addon, which lets you easily bridge your Minecraft server with Discord with a bloat free and easy to understand configuration! You can read more about EssentialsX Discord and see how to get started here.

execute command

msg command

bridge

Known issues

Anchor charges deplete on Spigot even when EssentialsX Spawn overrides the spawn location

On CraftBukkit and Spigot, anchor charges will deplete regardless of the respawn-at-anchor due to an unfixed bug in CraftBukkit. This bug has been patched in Paper.

Teleport requests can be dropped in rare cases

Due to a long-standing bug with teleport requests, in very rare cases teleport requests (/tpa, /tpahere, /tpaall) may expire instantly. We're working on an overhaul of the teleport request system with new features. If you encounter this bug on your server, it should be fixed in a future release.

Important changes

Userdata format changes (#4072)

Due to a few changes in data format, once you upgrade to 2.19.0, you will not be able to downgrade your userdata to older versions. We strongly recommend taking a full backup of your plugins/Essentials/userdata/ folder and plugins/Essentials/usermap.csv file before you update from 2.18.2 to 2.19.0 if you ever wish to downgrade in the future.

Currency symbol handling improvements (#3628, #3946, #3987)

Some handling of currency symbols has been improved to be more consistent. If you encounter issues with kits.yml or currency on signs after updating to 2.19.0, you may need to update them to match the format set in your config (or simply change them to $123.45, which should always work).

You can also now set the currency symbol to empty and use translation keys to handle currency formatting, if you prefer.

New features

EssentialsX now supports 1.17.1 (#4211, #4324)

EssentialsX now has full support for Minecraft 1.17.1, including support for the new items in /give, /item and kits, new 1.17 mobs in /spawnmob and new NMS/OBC mappings for accessing internal CraftBukkit code.

EssentialsX also no longer warns when installed on 1.16.5 servers.

New mail features (#3710)

The entire mail system has been rewritten to add support for temporary mails, read status, and the abiltiy to clear individual mails.

You can use /mail sendtemp <player> <expire time> <message> to send message which will expire at the given time or /mail clear <number> to clear the mail at the given position.

New /warpinfo command (#3820)

You can now use /warpinfo to view information about a warp:

warpinfo

New cancel-afk-on-chat setting (#3863)

You can now control whether chat cancels AFK for players separate to other types of interaction:

# Should we automatically remove afk status when a player sends a chat message?
cancel-afk-on-chat: true

New kit-auto-equip setting to auto equip armor from kits (#3704)

You can now set kit-auto-equip to true in config.yml to automatically equip armor when players redeem kits.

# When enabled, armor from kits will automatically be equipped as long as the player's armor slots are empty.
kit-auto-equip: false

New jail-online-time setting (#3705)

You can now set jail-online-time to true in config.yml to only count down time for jailed players while they're online.

# Whether or not jail time should only be counted while the user is online.
# If true, a jailed player's time will only decrement when they are online.
jail-online-time: false

Option to disable EssentialsX's custom full server message (#3899)

You can now disable EssentialsX's custom "This server is full!" message and restore the vanilla message by setting use-custom-server-full-message to false in config.yml:

# Should Essentials override the vanilla "Server Full" message with its own from the language file?
# Set to false to keep the vanilla message.
use-custom-server-full-message: true

Option to disable message social spy (#3910)

You can now disable private messages showing in social spy by setting socialspy-messages to false in config.yml:

# Whether social spy should spy on private messages or just the commands from the list above.
# If false, social spy will only monitor commands from the list above.
socialspy-messages: true

This is useful if you only want to monitor specific commands in social spy.

New /kitreset command to reset kit cooldowns (#3909)

You can now run /kitreset <kit> to reset the cooldown for a kit. If you have the essentials.kitreset.others permission, you can also reset kits for other players with /kitreset <kit> [player].

You can combine this command with single-use kits to more precisely control when players are allowed to claim kits.

EssentialsX Chat: world aliases (#3912)

You can now configure aliases for worlds in config.yml. If an alias is configured, EssentialsX will use it in place of the world's name when formatting chat. For example:

chat:
  ...
  # World aliases allow you to replace the world name with something different in the chat format.
  world-aliases:
    world: "&dmain&r"

DK3vptD

/editsign copy and /editsign paste (#3989)

You can now copy and paste signs using /editsign copy and /editsign paste. This also checks formatting permissions to ensure players can't bypass their formatting permissions.

New command signs for virtual crafting commands (#3961)

You can now create [workbench] signs, and if you're running Paper 1.15.2 or newer, you can also now create [anvil], [cartography], [grindstone], [loom] and [smithing] signs. These can be enabled from the config and use the same permissions as other command signs.

sign

EssentialsX Chat: new /toggleshout command (#3965)

If you use EssentialsX Chat's local chat system, you can now enable /toggleshout on your server to let players toggle between global and local chat.

shout

EssentialsX update checker (#3855)

EssentialsX now automatically checks for updates, and can notify you if a new release is available. If you're running dev builds, it will also notify you about new dev builds.

Privacy note: the update checker uses the public APIs for Jenkins and GitHub, and does not send any identifying data about your server or players to any services. Nevertheless, if you want to disable update checking entirely, you can do so in config.yml.

More keywords in EssentialsX Chat, /info text commands, custom books and custom join/quit messages (#4098, #4169)

EssentialsX Chat now supports the {NICKNAME} placeholder in chat formatting, in case you want to exclude the player's prefix/suffix.

You can also now use {NICKNAME}, {PREFIX}, {SUFFIX}, {GROUP} and {PLAYTIME} in EssentialsX's text commands and books. Click here for a full list of keywords supported by EssentialsX.

Finally, you can now use {PREFIX} and {SUFFIX} in the custom-join-message and custom-quit-message settings in config.yml. See the config comments for other placeholders you can use.

Enhanced command usage messages (#4057, #4396)

EssentialsX now has enhanced command usage messages, showing the various different syntaxes that different commands support. These new usage messages are also fully translatable!

These can be disabled with the verbose-command-usages in the config.yml

help

If you spot any issues with the command usage messages in English, please open an issue on EssentialsX. For translated messages, please report incorrect translations and suggest improves ones on Crowdin.

/createkit now saves written book pages (#4048)

Previously, /createkit would only saved the title and author for written books, but it now saves the pages inside books as well. This means you can now create kits with written books fully in-game!

This also works for book and quills.

kits:
  mykit:
    delay: 0
    items:
    - written_book 1 title:My_Epic_Book author:JRoyLULW page1:My_epic_page page2:It's_been_like_a_year_since_the_last_release_lol
      page3:page3.ogg

Option to ignore vanished players from the vanilla sleep requirement (#4200)

By default, vanished players no longer have to sleep to skip the night. You can disable this behaviour by changing sleep-ignores-vanished-player to false in config.yml:

# Should vanished players be ignored when other players are trying to sleep?
# When this setting is false, player's won't be able to skip the night if vanished players are not sleeping.
# Users with the permission node essentials.sleepingignored will always be ignored.
sleep-ignores-vanished-player: true

Option to hide negative and zero balances from /baltop (#4226)

You can now set the show-zero-baltop option to false in config.yml to hide players from /baltop if they have a zero or negative balance:

# Whether or not users with a balance less than or equal to $0 should be shown in balance-top.
# Setting to false will not show people with balances <= 0 in balance-top.
# NOTE: After reloading the config, you must also run '/baltop force' for this to appear
show-zero-baltop: true

Home cleanup utility (#4244)

You can now use the /ess homes command to fix and/or purge all homes:

  • /ess homes fix deletes all homes that are in worlds that don't exist or are unloaded.
  • /ess homes delete deletes all existing homes on your server.
  • /ess homes delete <worldname> deletes all homes set inside a specific world.

/createkit now supports optional NBT serialization (#3248)

You can now create exact NBT clones of items in /createkit! Rather than using EssentialsX's item meta system, these kits are stored as NBT in base64 format and can be identified with the @ at the start. You can turn this on using the use-nbt-serialization-in-createkit option in config.yml.

use-nbt-serialization-in-createkit: false

kits:
  mykit:
    delay: 0
    items:
    - written_book 1 title:My_Epic_Book author:JRoyLULW page1:My_epic_page page2:It's_been_like_a_year_since_the_last_release_lol
      page3:page3.ogg

use-nbt-serialization-in-createkit: true

kits:
  mykit:
    delay: 0
    items:
    - "@H4sIAAAAAAAA/22OvU4DMRCEJ0SHzIGoELQrN3Q0dKHjpwCFBilQRpvL5rKKsSN7IzihvBBPyV2T\r\
      \ninI0881MDYxx+sjG75KLpgjUvw5HusTlp0ZpMq9s8pXVTOJ8kdKmxti4PUG15VaKw1Bw9eNNvs1P\r\
      \n/GtHstWGBtPvcXcwnu260EIkUtCNEFMnnKlobIRsLRS4GGUJwqUXKfTwxQEe2m5vUtv6vcP5SoNJ\r\
      \nluXc1ILgrN98Gjbv+3cOx7yzdcpwL2+pm86mHw7VP0GMUD2kXbQR/gCsjqo1BAEAAA==\r\n"

Note that these kits cannot be edited by hand. If you need to edit kits by hand, you can turn this option off. In addition, this only works on Paper 1.15.2+, as Spigot does not expose item NBT methods.

Other additions

  • Translations have been updated with the latest community contributions on Crowdin.
  • The name used for messages from the console can now be translated using the consoleName key. (#3700)
  • trade.log now includes the resulting balance after transactions take place. (#3721)
  • Players can now middle-click while in viewing another player's armor with /invsee. (#3893)
  • Players can no longer take off hats that have the Curse of Binding using allow-direct-hat unless they have the essentials.hat.ignore-binding permission. (#3895)
  • Players can now pay offline players with /pay if they have the essentials.pay.offline permission. (#3625)
  • EssentialsX now considers 1.16.5 a supported version. (#3923)
  • EssentialsX now warns you about more potential server software incompatibilities. (#3812)
  • You can now use /alts <username> to look up potential alts of a player. (#3931)
  • [enchant] signs can now include material tags to allow enchanting multiple types of items. (#3694)
  • /jail will now infer the jail name if only one jail has been set on the server. (#3911)
  • /itemdb now shows custom aliases added in custom_items.yml. (#3907)
  • EssentialsX now includes new warnings if issues with userdata or usermap are detected. (#3969)
  • command-cooldowns can now be applied to aliases created using Bukkit's commands.yml. (#3744)
  • /seen now displays UUIDs for players. (#3906)
  • /spawner now requires the essentials.spawner.delay permission to change a spawner's delay. (#3964)
  • You can now spawn mobs carrying netherite swords and armor using /spawnmob. (#4031)
  • Commands in disabled-commands are now unregistered from the Bukkit command map. (#4026, #4108, #4399)
  • Trade signs now validate sign line length more consistently. (#4056)
  • /pay no longer works on vanished players. (#4114)
  • [time] and [weather] signs can now display the current time and weather respectively if the rest of the sign is blank. (#4131)
  • You can now limit /itemname to specific items using essentials.itemname.prevent-type.<item> permissions. (#4133)
  • Fireworks, firework charges, potions and banners can now be enchanted in /give, /item and kits. (#3882)
  • You can now use /ice to temporarily apply the "freezing" effect to players. (#4211)
  • Custom item aliases are no longer case sensitive. (#4295)
  • You can now set a seperate join message for when a player changes their name using the custom-new-username-message option in config.yml. (#4290)
  • You can now show nicknames in tab completion instead of usernames by changing the change-tab-complete-name option. (#4432)
  • Spawn: You can now set respawn-at-home-bed: false in the config.yml to prevent players respawning at their bed. (#3802, #4071)
  • XMPP: TLS is now enabled by default. (#4002)
  • XMPP: The configuration is now fully documented. (#4002)

Bug fixes

Bugs fixed from 2.18.2 and older versions

  • Links in config.yml have been updated to point to the new EssentialsX domain. (#3779)
  • EssentialsX now starts up properly on unexpected 1.8.8-R0.2 versions. (#3817)
  • EssentialsX now hands over to commands dynamically registered by other plugins at runtime. (#3816)
  • /me now calculates the chat radius correctly. (#3848)
  • API events no longer share a common handler list. (#3853)
  • EssentialsX now includes a special workaround to relay the /t command to Towny (previously Towny did not allow us to relay this command properly). (#3856)
  • /list no longer shows the user's real name in brackets if they don't have a nickname. (#3858)
  • /depth usage messages now include the correct command alias. (#3832)
  • /tpoffline now has a /etpoffline alias. (#3832)
  • /warp no longer says the player is about to teleport when the teleport is cancelled by a cooldown. (#3696)
  • /sell blocks and /worth blocks now filter items in the player's inventory correctly. (#3691)
  • EssentialsX no longer displays usage messages for its own commands when it relays commands to other plugins. (#3904)
  • /ess commands no longer displays the plugin namespace twice for relayed commands. (#3904)
  • EssentialsX can now detect enchantments registered with Bukkit with improper names. (#3900)
  • bPermissions is now properly flagged as unsupported. (#3928)
  • Firework item meta is now serialised and deserialised properly, including fixing meta for firework charges. (#3905)
  • /nick now prevents duplicate nicknames when players' display names are modified (eg prefixes/suffixes). (#3922)
  • AFK toggle messages are no longer sent if the AFK event is cancelled by another plugin. (#3915)
  • Some previously-unresolved teleports are now completed properly. (#4016, #4066)
  • /list no longer exposes groups whose players are all hidden. (#4032)
  • /createkit with pastebin-createkit: true now uploads kits to paste.gg instead of hastebin.com. (#4049)
  • Permission-based item spawning now works correctly again (the first time since EssentialsX 2.15). (#4100)
  • /createkit now converts formatted item names and lore back to & code formatting. (#4095)
  • custom_items.yml no longer suggests using a nonexistent command to manage it. (#4152)
  • /ptime, /pweather, /time and /unlimited now include spacing in comma-separated lists. (#4157)
  • EssentialsX now adds a custom NBT tag to avoid converting spawners created by other plugins. (#3963)
  • /book now supports multi-word book titles and authors. (#4180)
  • /back now tracks previous locations from teleports once more if players have the essentials.back.onteleport permission. (#4264)
  • /powertool a:<command> and /powertool r:<command> no longer throw errors if the powertool list doesn't exist. (#4276)
  • The tab completion for /itemlore and /itemname have been improved to reflect their actual behavior. (#4280)
  • Invalid enchant names now have a nicer error message. (#4297)
  • Players' logout locations is now properly set on server shutdown. (#4318)
  • Spawn eggs which were missing on legacy versions have now been re-added. (#4320)
  • Teleporting to offline players without the essentials.tpoffline permission in /tp no longer has a vaugue error. (#4332)
  • Teleport cooldowns are now respected again for /spawn. (#4335)
  • EssentialsX now sanitizes usernames when generating NPC UUIDs. (#4484)
  • EssentialsX now cleans up broken NPC accounts from the older Vault integration. (#4490)
  • AntiBuild: Block replacements (ie using Eyes of Ender on an End Portal Frame) are no longer considered block placements. (#3914)
  • AntiBuild: Players with the essentials.build.* permission can now pickup items. (#4273)
  • Geo: Dependencies are now correctly relocated. (#3976)
  • Geo: Messages displayed on join now include the player's displayname rather than just their unformatted username. (#3968)
  • Protect: protect.prevent.respawn-anchor-explosion now prevents respawn anchor explosions in more cases. (#3778)
  • Protect: protect.prevent.tnt-playerdamage no longer prevents damage from bed explosions. (#3874)
  • XMPP: Commands executed from XMPP are now dispatched on the main thread. (#3803)

Regressions fixed from 2.19.0 dev builds

  • Spam has been removed from Spanish translations. (2342d53)
  • /delwarp now shows the "warp deleted" message as it did before #3875. (#3927)
  • Jail time is now formatted correctly in /seen, /whois and /togglejail again. (#3917, #3941)
  • bStats now initialises after the update checker to fix an issue with branch reporting. (#4037)
  • Update checks no longer fail if the commit count is greater than 2 digits. (#4069)
  • kit-auto-equip now works on versions below Minecraft 1.14. (#4130)
  • EssentialsX no longer recursively resolves its own commands as alternatives to themselves. (#4128)
  • The Vault integration now also looks up accounts using legacy NPC:<accountname> UUIDs, in case a plugin generated NPC accounts on an older version of EssentialsX. (#4178, #4188)
  • GitHub Actions builds of EssentialsX now embed the correct branch name. (#4193)
  • EssentialsX now creates economy accounts as needed for players who last joined before EssentialsX was installed. (#4199)
  • sleep-ignores-vanished-player no longer overrides the essentials.sleepingignored permission. (#4201)
  • Various issues from the Configurate refactor have been fixed. (#4203, #4206, #4208, #4209, #4210, #4213, #4214, #4216, #4217, #4218, #4219, #4230, #4234, #4237, #4240, #4249, #4251, #4264, #4294, #4305, #4341, #4345, #4428, #4475)
  • show-zero-baltop: false now hides zero and negative balances, not positive balances. (#4228)
  • The Vault economy provider now properly loads 3rd party economies. (#4303)
  • Headless JREs no longer throw an error when using hex color codes.(#4312)
  • Force disabling teleport safety also disables the world border check. (#4371)
  • The update check is no longer dependent on the MOTD being enabled. (#4410, #4411, #4454)
  • /ess dump now works on 1.8.8, which ships an ancient version of Gson. (#4489)
  • NBT serialized items in kits now also respect the kit-auto-equip option. (#4491)
  • Chat: World aliases now actually check the world aliases config option, and not the entire config file. (#4000)
  • Discord: Vanilla commands now work as expected in the Discord /execute command. (#4293)

Changes for developers

EssentialsX is now built with Gradle (#3720, #4148, #4202, #4496)

Thanks to @JRoy and @jpenilla, we've converted the EssentialsX build setup to use Gradle. This has sped up build times considerably. In addition, thanks to the awesome jpenilla/run-paper Gradle plugin, developers working on EssentialsX can now spin up a Paper test server by running ./gradlew runServer.

EssentialsX now has a dedicated Maven repo (#3720)

Starting with 2.19.0, EssentialsX now has a dedicated Maven repository. To depend on snapshots, you'll need to update your build scripts to use the URL https://repo.essentialsx.net/snapshots/, or for releases you'll need to use the URL https://repo.essentialsx.net/releases/. New builds and releases will no longer be available from the old repository, so you'll need to update to use new APIs.

EssentialsX now publishes Javadocs (#4083, #4140, #4141)

Starting with 2.19.0, EssentialsX now publishes browseable Javadocs at https://jd-v2.essentialsx.net/. You can also see Javadocs for other modules by adding the name of the module (for example, https://jd-v2.essentialsx.net/essentialsdiscord to view docs for EssentialsX Discord).

Please bear in mind that although these Javadocs cover the entire plugin, many classes are internal and subject to change. We recommend only using classes inside the com.earth2me.essentials.api, net.ess3.api and net.essentialsx.api.v2 packages where possible, as these are designated API and unlikely to break between versions (though parts of legacy APIs in the com.earth2me.essentials and net.ess3 packages could still break in future 2.x versions).

Item names passed to ItemResolvers are no longer automatically lowercased (#3636)

You can now resolve case-sensitive item names in your plugins' ItemResolvers. If your plugin does not already lowercase entries, you may need to update your plugin to handle mixed-case item names.

New BalanceTop API (#3702)

EssentialsX now exposes the /baltop system as an API service. You can obtain an instance of this and use it like so:

final BalanceTop baltop = Bukkit.getServicesManager().load(BalanceTop.class);
baltop.calculateBalanceTopMapAsync().thenAccept(finish -> {
        processCache(baltop.getBalanceTopCache());
});

Economy integration rewrite (#3975, #4147, #4149, #4151, #4484, #4490)

EssentialsX's economy integrations have been rewritten from scratch. This aims to improve compatibility with problematic plugins such as Towny. If your plugin integrates with EssentialsX's economy directly or via Vault, please test your plugin with EssentialsX 2.19.0 to ensure that users do not lose any data when they update.

EssentialsX now uses the Configurate library (#4072)

EssentialsX's config and data storage now use the Configurate library! This replaces the legacy Bukkit and Essentials 3 code.

If you maintain a plugin that hooks into EssentialsX's configuration or data code, beware that many legacy config methods and classes may have been deprecated and/or removed. You should use proper EssentialsX APIs instead of hooking directly into the configuration where possible.

New events

EssentialsX 2.19.0 introduces several new events:

  • TransactionEvent is fired when players pay money to other players with EssentialsX's /pay command. (#3649)
  • UserKickEvent is fired when players are kicked using EssentialsX's /kick command. (#3490)
  • WarpModifyEvent is fired when a warp is created, updated or deleted with /setwarp or /delwarp. (#3875)
  • UserTeleportSpawnEvent is fired when a player is about to be teleported to a spawn due to /spawn. (#4328)

Other changes

  • Plugins can now register their custom Bukkit enchantments with EssentialsX's /enchant command. (#3669)

For a full commit log, click here.

Compare
Choose a tag to compare

EssentialsX 2.18.2 is here! 🎉 This release features full 1.16.4 support, as well as a few bug fixes and quality-of-life improvements.

Thanks to @JRoy, @pop4959, @Chew, and all our other contributors who contributed to this release!

In addition, thanks to our donors, in particular our Hero tier supporters on Patreon:

  • AKP
  • Wasted Ticks

If you'd like to support the hard work that goes into EssentialsX, you can join our Patreon to support on a monthly basis, or make a one-off donation on Ko-fi. We'd appreciate any donations, especially if your server makes money - all donations enable us to continue spending hours of our free time working on and improving EssentialsX for everyone.

Patreon

Supported server versions

EssentialsX officially supports the CraftBukkit, Spigot, and Paper server software. Specifically, EssentialsX is designed to work on the following Minecraft versions:

  • 1.15.2 and 1.16.4 - EssentialsX actively develops against and supports these versions.
  • ⚠️ 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2, 1.13.2, and 1.14.4 - these versions are still supported, but are not a priority for us, and may be dropped in a future release.

EssentialsX does not support the following Minecraft versions or server software:

  • 🛑 1.7.x or below - we do not provide support for these versions.
  • 🛑 Cauldron, Thermos, Magma, CatServer, or any other Forge/Bukkit hybrid server software - EssentialsX is built for the Bukkit API, which does not properly support mods. For modded servers, use SpongeForge and Nucleus, or an alternative mod for Forge or Fabric.

We recommend using the latest version of Paper, as it includes several performance enhancements over Spigot. EssentialsX 2.18+ includes significant improvements that are only effective on Paper, most notably asynchronous chunk loading which reduces lag spikes during player teleports.

Upgrading to 2.18.2

If you're upgrading from 2.18.1, you don't need to update your EssentialsX config. However, 2.18.2 adds a couple of new options that you may want to configure, and to do so you'll need to either update your config or add the new settings to your existing config. Read on for a list of changes and new config options.

Upgrading from older versions of EssentialsX? See the previous update changelogs.

Known issues

Anchor charges deplete on Spigot even when EssentialsX Spawn overrides the spawn location

On CraftBukkit and Spigot, anchor charges will deplete regardless of the respawn-at-anchor due to an unfixed bug in CraftBukkit. This bug has been patched in Paper.

Important changes

New option to prevent players from responding to vanished players (#3703)

In previous versions, the /reply command would allow you to reply to a player even after they vanished, exposing that the player was still on the server. A new option to the config has been added to configure this behavior, last-message-reply-vanished. This will default to allowing users to reply to vanished players (true) for old configs, but will be set to block replying to vanished players for new configs (false). So make sure to add last-message-reply-vanished to your config if you're updating from 2.18.1 and you'd like to configure this.

# Changes the default /reply functionality.
# If true, /reply will not check if the person you're replying to has vanished.
# If false, players will not be able to /reply to players who they can no longer see due to vanish.
last-message-reply-vanished: false

New features

New virtual inventory commands (#3704)

There are new commands to let you open virtual anvils (/anvil), cartography tables (/cartographytable), grindstones (/grindstone), looms (/loom), smithing tables (/smithingtable), and stone cutters (/stonecutter).

Note: due to technical limitations, this is only available on Paper and on 1.15.2 or higher.

Other additions

  • Internal codestyle has been standardized and is now enforced. (#3701)
  • Internal tab-completion code for various commands has been minimized.
  • Added ability to customize balancetop lines via translation files. (#3626)
  • Added plugin names in tab-completion and improve command discovery /help. (#3713, #3675)
  • Improved the unsupported platform messages to make them more specific.
  • Changed console /sell logging messages to use usernames instead of nicknames (#3693)

Bug fixes

Bugs fixed from 2.18.1 and older versions

  • Fixed commands like /editsign not always targeting the correct block when looking below your head-level (#3763)
  • Fixed users tablist name getting reset after their AFK status changed. (#3624)
  • Fixed /paytoggle displaying the opposite message than the action being taken.
  • Fixed /time throwing an exception when used in console. (#3622)
  • Fixed debug messages showing sometimes when a user tab completed in certain commands. (#3739)
  • Fixed spaces in backup commands not being properly handled. (#3762)
  • Fixed color codes appearing in the trade.log file. (#3699)
  • Fixed /clear <player> <item> not clearing matched items from offhand. (#3715)
  • Fixed some /sell and /worth messages displaying {1} instead of the item's actual value. (#3656)
  • Fixed /sethome preventing modifying homes when surpassed set-home limit. (#3776)

Regressions fixed from 2.18.1.x dev builds

  • Fixed an ABI breakage in IEssentials#getOnlineUsers.
  • Fixed multiple regressions in /clearinventory that caused unexpected behavior than previously expected.
  • Fixed a regression in /lightning where attempting to smite another player wouldn't run the essentials.lightning.others permission check (#3671)
  • Fixed a regression in /delhome where tab completing would not show user homes properly and/or throw a NPE. (#3775)

For a full commit log, click here.

Compare
Choose a tag to compare

EssentialsX 2.18.1 is here! 🎉 This release features full 1.16.2 support, as well as a few bug fixes and quality-of-life improvements.

Thanks to @JRoy, @pop4959, @triagonal and all our other contributors who contributed to this release!

In addition, thanks to our donors, in particular our Hero tier supporters on Patreon:

  • AKP
  • Wasted Ticks
  • and 1 anonymous Hero

If you'd like to support the hard work that goes into EssentialsX, you can join our Patreon to support on a monthly basis, or make a one-off donation on Ko-fi. We'd appreciate any donations, especially if your server makes money - all donations enable us to continue spending hours of our free time working on and improving EssentialsX for everyone.

Patreon

Supported server versions

EssentialsX officially supports the CraftBukkit, Spigot and Paper server software. Specifically, EssentialsX is designed to work on the following Minecraft versions:

  • 1.15.2 and 1.16.2 - EssentialsX actively develops against and supports these versions.
  • ⚠️ 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2, 1.13.2 and 1.14.4 - these versions are still supported, but are not a priority for us, and may be dropped in a future release.

EssentialsX does not support the following Minecraft versions or server software:

  • 🛑 1.7.x or below - we do not provide support for these versions.
  • 🛑 Cauldron, Thermos, Magma, CatServer, or any other Forge/Bukkit hybrid server software - EssentialsX is built for the Bukkit API, which does not properly support mods, and so we do not provide support for these hybrid servers. For modded servers, use SpongeForge and Nucleus, or an alternative mod for Forge or Fabric.

We recommend using the latest version of Paper, as it includes several performance enhancements over Spigot. EssentialsX 2.18+ includes significant improvements which are only effective on Paper, most notably asynchronous chunk loading which reduces lag spikes during player teleports.

Upgrading to 2.18.1

If you're upgrading from 2.18.0, you don't need to update your EssentialsX config. However, 2.18.1 adds a couple of new options which you may want to configure, and to do so you'll need to either update your config or add the new settings to your existing config. Read on for a list of changes and new config options.

Upgrading from older versions of EssentialsX? See the previous update changelogs.

Known issues

Anchor charges deplete on Spigot even when EssentialsX Spawn overrides the spawn location

On CraftBukkit and Spigot, anchor charges will deplete regardless of the respawn-at-anchor due to an unfixed bug in CraftBukkit. This bug has been patched in Paper.

Other known issues

These bugs will be fixed in 2.18.2. They may already be fixed in dev builds - if these affect you, you should download a dev build.

  • /time set and /time add do not work from the console. (#3621)
  • When players exit AFK mode, their prefix/suffix might be missing from the tab list. (#3606)

Important changes

/tpr no longer caches locations on startup by default (#3496)

In 2.18.0, EssentialsX would generate and cache locations for the /tpr command when the server started up. However, on CraftBukkit and Spigot this resulted in several sync chunk loads during startup, which significantly slowed down startup on these server implementations. As a countermeasure, /tpr no longer caches locations on startup by default, though it will still cache locations after the /tpr command has been used once after startup.

If you're using Paper, or if you're using Spigot and are willing to tolerate the slow startup, you can re-enable this by adding pre-cache: true on a new line inside tpr.yml.

EssentialsX Protect: protect.prevent.creeper-explosion no longer cancels player damage (#3604)

Previously, disabling creeper explosion block damage with the protect.prevent.creeper-explosion setting would also prevent players taking damage from the explosion. This has now been changed to match the other protect.prevent.<type>-explosion settings, and this allows you to prevent block damage while allowing players to take damage from creeper explosions. As before, you should use protect.prevent.creeper-playerdamage to prevent players taking damage from creeper explosions.

Teleportation safety now respects the world border (#3499, #3536)

EssentialsX's teleport safety mechanism will now prevent you teleporting outside the vanilla world border, instead placing you safely inside the world border. This prevents players taking damage when using /tpr if you didn't manually set a maximum range for /tpr locations.

Note that this won't apply if you are in creative mode or god mode, as teleport safety is disabled if you're invulnerable. If you'd like to disable teleport safety entirely, you can do so using the teleport-safety and/or force-disable-teleport-safety options in config.yml.

New features

EssentialsX Spawn now supports respawn anchors (#3498)

You can now use the respawn-at-anchor config option (disabled by default) to configure EssentialsX Spawn to respect respawn anchors set by players, instead of teleporting players to their home/bed:

# When users die, should EssentialsSpawn respect users' respawn anchors?
respawn-at-anchor: false

/editsign now tab-completes existing sign contents (#3497)

If you attempt to edit a line that already has text on it, /editsign will now suggest the existing text in tab completion, including any formatting codes. This makes it even easier to update existing signs!

/editsign tab completion in action

New amplifier:<value> attribute for potion item meta (#3614)

When defining custom potion effects in kits, /potion, /give and /item, you can now use amplifier:<value> in place of power:<value> to specify a potion strength value as a "raw" Mojang strength value. The difference between amplifier:<value> and the existing power:<value> is that amplifier always uses the value that Mojang stores in NBT rather than the strength displayed in tooltips, whereas power adjusts inputs of 1-3 to match tooltips, which prevents spawning level IV (strength 3) potions.

TL;DR: you can now use amplifier:3 to spawn in level IV custom potions.

/spawner delays now work correctly (#3239)

You can now use /spawner <mob> [delay] to set a custom delay for a mob spawner. While this feature may have worked in the past, it has been reimplemented to use Bukkit API where possible and NMS as a fallback, which enables it to work on newer versions of Minecraft.

Other additions

  • EssentialsX now supports sign functionality on crimson and warped signs. (#3487)
  • Internal command code has now been refactored for improved readability. (#3336, #3337)
  • The /skull command now pulls player skin data asynchronously. (#3579, #3337)
  • /paytoggle is now a toggle command, allowing admins to toggle payment status for other players and use wildcards. (#3087, #3337)

Bug fixes

Bugs fixed from 2.18.0 and older versions

  • The minimum range setting for /tpr now correctly excludes a square shape in the centre of the world. (#3480)
  • /togglejail no longer teleports jailed players back to their previous location when they are unjailed if teleport-back-when-freed-from-jail is set to false. (#3522)
  • Fixed a rare stacktrace when players disconnect that was caused by an internal CraftBukkit change. (ab545dc)
  • Fixed a regression in /tpaccept where accepting a teleport request wouldn't always clear pending teleport requests if a teleport failed. (#3567)
  • Fixed a regression in teleport commands where players would be charged twice for teleports with a command cost. (#3601)
  • /tree and /bigtree now work on 1.12.2 and prior versions. (#3569)
  • Teleport safety no longer allows teleporting into lava on older versions of Minecraft. (#3537)
  • /list's tab completion no longer reveals the online presence of groups where all the online members are vanished. (#3616)
  • /eco take ** <percentage> now works properly. (#3547, #3337)
  • AntiBuild: Blocks in the piston blacklist can no longer be pulled by a sticky piston. (#3610)
  • GeoIP: Now shows a better message when GeoIP hasn't been configured. (#3568)
  • Protect: protect.prevent.creeper-explosion no longer cancels player damage (#3623)
  • Spawn: /setspawn and /spawn now correctly check permissions for tab completion. (#3339, #3337)

Regressions fixed from 2.18.0.x dev builds

  • Fixed a regression in /gamemode which prevented the console changing players' gamemodes. (#3590)
  • Fixed a regression in /time where /time set did not correctly check the essentials.time.set permission. (#3616)

For a full commit log, click here.

Compare
Choose a tag to compare

After many months of hard work, EssentialsX 2.18.0 is here! 🎉
This is the biggest EssentialsX release yet, and comes with tons of new features, brand new API and full support for 1.16.1, including RGB colours!

Thanks to @JRoy, @pop4959, @triagonal, @darbyjack, @latiku, @zml2008, @JasonHorkles and many other people who have contributed to this release!

In addition, thanks to our donors, in particular our Hero tier supporters on Patreon:

  • AKP
  • Wasted Ticks
  • and 1 anonymous Hero

If your server makes money and you'd like to support the hard work that goes into EssentialsX, you can join our Patreon to support on a monthly basis, or make a one-off donation on Ko-fi.

Supported server versions

EssentialsX officially supports the CraftBukkit, Spigot and Paper server software. Specifically, EssentialsX is designed to work on the following Minecraft versions:

  • 1.15.2 and 1.16.1 - EssentialsX targets these versions as a priority.
  • ⚠️ 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2, 1.13.2 and 1.14.4 - these versions are still supported, but are not a priority for us.

We recommend using the latest version of Paper, as it includes several performance enhancements over Spigot. EssentialsX 2.18.0 includes significant improvements which are only effective on Paper, in particular async chunk loading and the return of /recipe.

Upgrading to 2.18.0

If you're upgrading from 2.17.2 or a recent dev build, you don't need to update your EssentialsX config. However, 2.18.0 adds several new features which you may want to configure, and to do so you'll need to update your config. Read on for a list of changes and new config options.

Upgrading from older versions of EssentialsX? See the previous update changelogs.

New features

EssentialsX now supports 1.16.1! (#3408, #3394, #3422)

EssentialsX has been updated to support the new items and mobs in 1.16.1! You can now spawn in new items using the new aliases in 2.18.0, and the new Nether mobs can be spawned in using /spawnmob.

In addition, you can now use RGB colours throughout EssentialsX using the &#RRGGBB format, including in chat, on signs, in /itemname and /itemlore, and in nicknames, prefixes and suffixes:

javaw_2020-07-09_17-14-03

EssentialsX now supports async chunk loading for teleports on Paper! (#3102)

EssentialsX now performs teleport safety checks by loading chunks asynchronously where possible. This significantly reduces TPS drops from teleportation when EssentialsX is installed on Paper 1.9+. CraftBukkit and Spigot don't support these async chunk loading APIs, so if you're using CraftBukkit or Spigot, you should consider switching to Paper to take advantage of these improvements.

New /editsign command (#3415)

You can now update the content of signs you've already placed using the /editsign command. For example:

  • Running /editsign set 1 &#b8ffbaMint green! while looking at a sign will set the first line of the sign to Mint green!
  • Running /editsign clear 1 will clear the first line of the sign
  • Running /editsign clear will clear the entire sign.

Note: to use formatting in /editsign, you need the essentials.editsign.<format> permissions - see the Color Permissions wiki page for more information.

New /itemlore command (#3331)

You can now create and modify lore on items using the /itemlore command! For example:

  • Running /itemlore add [text] will add text to a new line at the end of the current lore on your currently-held item
  • Running /itemlore set 1 [text] will replace the first line of the lore with new text
  • Running /itemlore clear will clear the lore from the item

New /rest command to reset phantoms (#3205)

You can now use the /rest command to reset your last sleep time and stop phantoms from spawning.

messages.properties now supports UTF-8 properly (#3358)

At last, you can now type section signs (§) and non-Latin characters straight into your messages files, without needing to use \uXXXX escape codes!

Before:

deleteHome=\u00a76Home\u00a7c {0} \u00a76has been removed.
deleteJail=\u00a76Jail\u00a7c {0} \u00a76has been removed.
deleteKit=\u00a76Kit\u00a7c {0} \u00a76has been removed.
deleteWarp=\u00a76Warp\u00a7c {0} \u00a76has been removed.

After:

deleteHome=§6Home§c {0} §6has been removed.
deleteJail=§6Jail§c {0} §6has been removed.
deleteKit=§6Kit§c {0} §6has been removed.
deleteWarp=§6Warp§c {0} §6has been removed.

messages.properties now includes command usage and descriptions (#3284)

You can now customise and translate command usage and description messages in your messages.properties file by using the <command>CommandUsage and <command>CommandDescription keys. For example:

balancetopCommandDescription=Gets the top balance values.
balancetopCommandUsage=/<command> <page>
banCommandDescription=Bans a player.
banCommandUsage=/<command> <player> [reason]

These strings are also on Crowdin, and translators have started to translate the commands already. If you'd like to contribute to translations, you can contribute on Crowdin.

Note: don't remove or translate /<command> in usage strings, as this will break the usage message. If you notice this in any Crowdin translations, it would help if you could change these to include /<command> and report the string so we can fix it.

EssentialsX now supports LuckPerms contexts! (#3320, #3476)

EssentialsX now includes several LuckPerms permission contexts, allowing you to do complex conditional permission setups! You can now set certain permissions to only apply when a user is/isn't AFK, muted, vanished or jailed, as well as setting specific permissions for players in specific jails.

The full list of contexts is as follows:

  • essentials:afk=<true/false>
  • essentials:muted=<true/false>
  • essentials:vanished=<true/false>
  • essentials:jailed=<true/false>
  • essentials:jail=<jail name>

Note: you need to install LuckPerms 5.0 or newer and Vault to use this feature.

Option to always run backups even if users haven't logged in (#3258)

In the past, EssentialsX's server backup system only ran if players had been online since the last backup. However, you can now configure it to always run a backup even if no players have logged in:

backup:
  #...
  # If true, the backup task will run even if there are no players online.
  always-run: false

/heal removing potion effects is now optional (#2754)

Previously, running /heal would always clear potion effects for players. This can now be disabled by setting the remove-effects-on-heal to false in config.yml.

Temporary mutes can now have a length limit (#2807)

Similar to temporary bans, you can now set a maximum length for tempmutes using the max-mute-time config option:

# Set the maximum time /mute can be used for in seconds.
# Set to -1 to disable, and essentials.mute.unlimited can be used to override.
max-mute-time: -1

Jailed players can now build if given specific permissions (#2503)

You can now use the following permissions to allow players to build while jailed:

  • essentials.jail.allow-break to allow breaking blocks
  • essentials.jail.allow-place to allow placing blocks
  • essentials.jail.allow-block-damage to allow hitting blocks
  • essentials.jail.allow-interact to allow interacting with blocks (usually right-clicking)

Teleporting to offline players (#2505)

You can now teleport to where a user last logged out using the /tpoffline <player> command (or /otp).

New EssentialsX Protect settings (#3111, #3210, #2504)

EssentialsX Protect now has several new config options to limit item damage, ender crystal explosions and various mob behaviours:

protect:
  prevent:
    # ...
    # Prevents the following events destroying dropped items
    lava-itemdamage: false
    tnt-itemdamage: false
    tnt-minecart-itemdamage: false
    fireball-itemdamage: false
    witherskull-itemdamage: false
    creeper-itemdamage: false
    # Prevents ender crystals from exploding
    ender-crystal-explosion: false
    # Prevents beds and respawn anchors from exploding
    bed-explosion: false
    respawn-anchor-explosion: false
    # Prevents zombies from breaking down doors
    zombie-door-break: false
    # Prevents Ravagers from stealing blocks
    ravager-thief: false
    # Prevents sheep from turning grass to dirt
    sheep-eat-grass: false

Option to dismount passengers before teleporting (#3069)

Players cannot teleport while they have passengers. Previously, teleports would silently fail, but you can now configure this behaviour:

# If a player has any passengers, the teleport will fail. Should their passengers be dismounted before they are teleported?
# If this is set to true, Essentials will dismount the player's passengers before teleporting.
# If this is set to false, attempted teleports will be canceled with a warning.
teleport-passenger-dismount: true

You can add the hidden force-passenger-teleport: true option to your config to revert this behaviour.

Option to show real names on /list (#3117)

You can now optionally configure /list to show players' real names in brackets in /list:

# Displays real names in /list next to players who are using a nickname.
real-names-on-list: false

javaw_2SuUuwjaKG

Option to control whether AFK messages are broadcast (#2780)

You can now control whether AFK messages are broadcast to the whole server or only shown to the player they affect:

# When a player enters or exits AFK mode, should the AFK notification be broadcast
# to the entire server, or just to the player?
# When this setting is false, only the player will be notified upon changing their AFK state.
broadcast-afk-message: true

Option to control whether EssentialsX changes flight status and speed when changing worlds (#2546)

You can now toggle whether or not EssentialsX should handle disabling player flight/speed when they switch to a new world:

# The following settings listen for when a player changes worlds.
# If you use another plugin to control speed and flight, you should change these to false.

# When a player changes world, should EssentialsX reset their flight?
# This will disable flight if the player does not have essentials.fly.
world-change-fly-reset: true

# When a player changes world, should we reset their speed according to their permissions?
# This resets the player's speed to the default if they don't have essentials.speed.
# If the player doesn't have essentials.speed.bypass, this resets their speed to the maximum specified above.
world-change-speed-reset: true

This is useful if you use another plugin to manage these, such as Multiverse-Inventories.

Option to show currency symbol as suffix (#3066)

You can now configure EssentialsX to display the currency symbol as a suffix rather than a prefix:

# Enable this to make the currency symbol appear at the end of the amount rather than at the start.
# For example, the euro symbol typically appears after the current amount.
currency-symbol-suffix: false

Clearing specific item types using /clearinventory (#3263)

Before 2.16.0, you could clear specific item types using the /clearinventory command. This has now been re-added, so you can clear specific items once more! For example, /clear <player> stone,cobblestone will remove all stone and cobblestone from a player's inventory.

Option to display coordinates when a player dies (#3207)

You can now set the send-info-after-death option to true to display a player's coordinates when they die:

# When players die, should they receive the coordinates they died at?
send-info-after-death: false

javaw_2020-07-09_16-51-18

Option to block /pay from players ignored using /ignore (#3273)

You can now configure EssentialsX to prevent ignored players from sending money through /pay:

# Enable this to block users who try to /pay another user which ignore them.
pay-excludes-ignore-list: false

New /tempbanip command (#3291)

You can now temporarily ban IP addresses from your server using /tempbanip:

javaw_2020-07-09_16-53-37

Ability to change inventory title on [disposal] signs (#3269)

You can now set a custom name for [disposal] sign inventories:

javaw_2020-07-09_16-57-09
javaw_2020-07-09_16-58-21

Hats now respect the Curse of Binding (#3299)

You can no longer remove items with the Curse of Binding using /hat by default. To override this, give players the essentials.hat.ignore-binding.

Option to allow selling named items in /sell (#3314)

You can now set the allow-selling-named-items to true to allow players to sell custom named items:

# Allow selling of items with custom names with the /sell command.
# This may be useful to prevent players accidentally selling named items.
allow-selling-named-items: false

Options to customise how essentials.keepinv handles the Curse of Binding and Curse of Vanishing (#3328)

You can now configure how the essentials.keepinv permission behaves when players die while holding items with the Curse of Binding or Curse of Vanishing:

# How should essentials handle players with the essentials.keepinv permission who have items with
# curse of vanishing when they die?
# You can set this to "keep" (to keep the item), "drop" (to drop the item), or "delete" (to delete the item).
# Defaults to "keep"
vanishing-items-policy: keep

# How should essentials handle players with the essentials.keepinv permission who have items with
# curse of binding when they die?
# You can set this to "keep" (to keep the item), "drop" (to drop the item), or "delete" (to delete the item).
# Defaults to "keep"
binding-items-policy: keep

/sethome can now be configured to prompt before overwriting an existing home

You can now configure /sethome to prompt players to repeat the command before overwriting an existing home:

# Should players be asked to provide confirmation for homes which they attempt to overwrite?
confirm-home-overwrite: false

/recipe now works on Paper 1.15.2+ (#3404)

You can now use /recipe once again on Paper 1.15.2+. This feature was previously disabled on 1.12+ due to a missing Spigot API causing item dupes, but this has been addressed in Paper 1.15.2 and 1.16.1, meaning you can use /recipe once more.

New random teleport (RTP) feature (#3418)

EssentialsX now includes an RTP command called /tpr. EssentialsX will find and cache random locations, avoiding long delays while finding a safe spot to teleport to. This also supports finding safe spots to teleport to in the Nether and The End.

You can configure settings for /tpr using the /settpr command, including the teleport range, centre point, biome blacklist and cache settings. Third-party plugins can also hook into this using UserRandomTeleportEvent - see below for details.

/more now supports specifying an amount (#3302)

You can now specify what amount /more should increase stacks to by running /more [amount], or you can continue to use /more to set the stack to the maximum stack size as before.

Option to hide join/quit messages when the player count exceeds a limit (#3464)

You can now configure EssentialsX to hide join and quit messages when the player count exceeds a configurable limit:

# You can disable join and quit messages when the player count reaches a certain limit.
# When the player count is below this number, join/quit messages will always be shown.
# Set this to -1 to always show join and quit messages regardless of player count.
hide-join-quit-messages-above: -1

Other additions

  • You can now hide yourself from /near by granting yourself the essentials.near.exclude permission. (#3049)
  • /whois now includes the player's speed. (#2952)
  • Attempting to run commands disabled in the disabled-commands section of the config will display an error message. (#2721)
  • There are now separate meSender/meRecipient translation keys for "me" depending on the case for languages that vary "me" depending on sentence position. (#2805)
  • You can now use the {UPTIME} placeholder in text commands. (#3120)
  • You can now use /ecreative as an alias of /gmc to set your gamemode to creative mode. (#3101)
  • [enchant] signs now default the enchantment level to 1 if no level is provided. (#3070)
  • You can now control whether or not players can extinguish other players in /ext using essentials.ext.others. (#2826)
  • You can now view the offhand slot in /invsee equip. (#3265)
  • You can now use percentages in /eco. (#3080)
  • Revoking the essentials.back.onteleport permission will prevent EssentialsX from storing the player's last location for /back. (#3272)
  • /exp now has take and reset subcommands, similar to /eco. (#3335)
  • You can no longer send /tpa and /tpahere requests to players if they don't have permission to /tpaccept them. (#3361, #3478)
  • Commands and money in kits are now processed after items, preventing scenarios where players can claim parts of kits while lacking the inventory space. (#3434)
  • Temporary mutes now show how long the player is muted for when they try to talk. (#3329)
  • AntiBuild: Now supports permission checks and warnings for item frames, armour stands and ender crystals (#3270)
  • XMPP: Now includes a more informative error message for the 8000 people who installed XMPP by accident and don't need it. (#3247)

API additions

EssentialsX 2.18.0 comes with various API additions for plugins that integrate with EssentialsX.

New AsyncTeleport API, and Teleport deprecation notice

As part of our effort to switch to async chunk loading, the Teleport and TimedTeleport classes has been deprecated. These APIs rely on synchronous chunk loads and can pause the main thread. If you'd like to continue using EssentialsX's teleport handling in your plugin, you should switch to AsyncTeleport and AsyncTimedTeleport, which use async chunk loading when run on Paper 1.13+.

New and improved events

AfkStatusChangeEvent now has a Cause enum (#3063)

You can now determine the cause of a AFK status change using AfkStatusChangeEvent#getCause, allowing you to identify why players enter/exit AFK mode.

MuteStatusChangeEvent now exposes the mute reason and timestamp (#3068)

You can now access the reason for a player's mute using MuteStatusChangeEvent#getReason. You can also access the timestamp at which their mute will be lifted using MuteStatusChangeEvent#getTimestamp (if the mute is permanent, this will return an empty Optional).

New teleport warmup and pre-teleport events (#3192)

You can now intercept EssentialsX teleports using the TeleportWarmupEvent to listen before the teleport warmup starts, and PreTeleportEvent to listen after the warmup and immediately before the teleport commences. You can also alter the warmup delay or even cancel the teleport using these events.

New event for teleporting to homes (#3403)

You can also now use the UserTeleportHomeEvent to intercept a player attempting to teleport to their home. This event is useful as it allows you to filter and cancel attempts to teleport to homes based on the home name, unlike PreTeleportEvent.

New KitClaimEvent (#3197)

You can block a player from redeeming a kit using the new KitClaimEvent, which is fired when a kit is being expanded for a player. You can also view the contents of the kit in the EssentialsX item meta format.

New pre-send and delivered private message events (#3260, #3432)

You can now intercept private messages before they're delivered or block certain private messages using the PrivateMessagePreSendEvent. This allows you to add custom filters in your plugin.

You can also listen for successfully-delivered private messages using the PrivateMessageSentEvent, which allows you to add custom notification effects like sounds or particles.

Event for filtering random teleport destinations (#3418)

You can listen to UserRandomTeleportEvent to intercept random teleports. This is useful if you maintain a land claiming plugin, and don't want players to be able to random teleport into towns or private builds.

UUID- and User-based economy methods (#3085)

The com.earth2me.essentials.api.Economy API now has methods to access the economy using player UUIDs and User instances, and the previous String-based methods have been deprecated. This does not currently affect Vault, however a new Vault provider is planned in the future.

ItemResolvers can now support /createkit (#3307)

If you use the ItemResolver API to add custom items to the items database, you can now implement the ItemResolver#serialize method to store these items when users run /createkit to create a kit.

Bug fixes

  • /kit now respects the drop-items-if-full config option. (#2820)
  • /fireball now works properly on all versions of Minecraft. (#3040)
  • /exp, /spawnmob, /home and /suicide now have proper tab completion. (#3051, #2661, #3206, #3388)
  • User#payUser now forwards the provided cause to the subsequent UserBalanceUpdateEvent event. (#3064)
  • Local chat messages are now only logged once in the server console, not twice. (#2755)
  • You can now set bed homes on older versions of Minecraft. (#3048)
  • Several permissions are now defaulted to false for supported permissions plugins. (#3141, #3029)
  • The register-back-in-listener config option and the vanish/godmode PvP checks now ignore Citizens NPCs. (#2833, #3389)
  • Arrows and tridents fired by /fireball can no longer be picked up. (#3149)
  • The default book.txt no longer has broken text formatting. (#3173)
  • /balance no longer reveals vanished users. (#3218)
  • Ignored players are now stored as UUIDs, preventing /ignore evasion through username changes. (#3209)
  • Player logout times are now saved when the server shuts down. (#3157)
  • The server now waits for ongoing backup tasks to finish before shutting down. (#3258)
  • /depth is now based on the current world's sea level, rather than a fixed sea level of 63. (#3268)
  • You can now /msg users who have 1-character-long names. (#3264)
  • /tree and /bigtree now target blocks better. (#3271)
  • ServerListPingEvents fired by CloudNet v3 are now silently ignored by EssentialsX. (#3288)
  • /eco reset no longer requires an additional argument. (#3340)
  • Players can no longer send empty shout/question messages. (#3341)
  • Date diffs are now shown correctly throughout the plugin, including teleport warmups, tempmutes and tempbans. (#3292)
  • worth.yml now encourages you to use the in-game /setworth command. (#3364)
  • The /heal cooldown and teleport cooldown messages now have a red . instead of an erroneous gold . at the end. (#3366)
  • /suicide and /kill now trigger PlayerDeathEvents with the correct DamageCauses. (#3388)
  • /delkit is now case-insensitive, in line with /kit. (#3396)
  • EssentialsX now warns in the console if other plugins include modified bStats Metrics classes which do not respect the bStats enabled: false config option. (#3451)
  • /remove now removes skeleton horses that were spawned by a trap and tamed to skeletons. (#3477)
  • GeoIP: The plugin now respects locale: zh and displays names in the zh-CN locale. (#3052)
  • Spawn/XMPP: Commands are now hidden in 1.13+ autocomplete. (#3473)

Click here for the full commit log.

Compare
Choose a tag to compare

EssentialsX 2.17.2 is here! This release comes with full 1.15.x support, as well as a couple new features and various bug fixes.

Thanks to @pop4959, @triagonal, @darbyjack, @Ichbinjoe, @AgentTroll, @JRoy, @CmdrKittens, @JasonHorkles and many other people who have contributed to this release!

In addition, thanks to our supporters on Patreon, in particular our Hero tier supporters:

  • AKP
  • Wasted Ticks
  • ...and 2 other patrons

EssentialsX supports SpigotMC's "CraftBukkit" and Spigot server software, as well as Paper. We recommend using the latest version of Paper, as it includes several performance enhancements over Spigot and is fully compatible with Spigot plugins. Specifically, EssentialsX is designed to work on the following Minecraft versions:

  • ⚠️ 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2 and 1.13.2 - these versions are still supported, but are not a priority for us.
  • 1.14.4 and 1.15.2 - these versions are regularly tested against.

NOTE: GeoIP changes

As you may have noticed, older versions of EssentialsX GeoIP will cause errors and no longer keep their databases up-to-date. You'll need to follow the new setup guide to get GeoIP up and running again.

Upgrading to 2.17.2

Except for GeoIP, EssentialsX 2.17.2 does not require any config changes from 2.17.1. However, 2.17.2 adds some new settings to config.yml - to use these, you can either generate a new config.yml or add them to your existing config.

Upgrading from older versions of EssentialsX? See the previous update changelogs.

New features

  • You can now run /delkit <kit> to delete a kit. (b97eb12, #2908)
  • You can now specify more different types of projectile in /fireball, and control whether players have access to each type using permissions. (60c4e75, ff9f712)
  • You can now disable logging command blocks commands to the console by setting log-command-block-commands: false in config.yml. (#2599)
  • You can now prevent players putting certain materials on as hats by giving them the permission essentials.hat.prevent-type.<material>. (#2574)
  • The spawn-if-no-home config option from the original Essentials has been re-added. (#2757)
  • You can now spawn in bees with /spawnmob (or kill them with /killall, if you're a monster). (#2873)
  • You can now use UUIDs in more commands. (#2606)
  • You can now include | characters in item lore by prepending it with a \\. (#2831)
  • You can now add custom aliases on all versions using the custom_items.yml file. (#2895)
  • Beezooka! (#3003)
  • AntiBuild: You can now use the build: true meta with LuckPerms. (4ce7dfa)
  • AntiBuild: "You are not permitted to..." messages now have a nicer-looking item name. (a2e0912)
  • Chat: You can now use the {USERNAME} placeholder in chat formats if you want to include the unformatted username. (#2781)
  • Protect: You can now control entity transformations on 1.13.2 and above. (#2836, #2942)

Bug fixes

  • Trade signs created on 1.12.x or below now work properly on 1.13+. (2c33fb6)
  • The player:<player> metadata for spawning in player heads now works on all versions. (5f9eb22, 219012b)
  • The plugins now build on Java 9+. (#2871)
  • You can now set one-word AFK messages. (#2876)
  • Players in jail can no longer change their gamemode. (#2875)
  • Command cooldowns now persist properly across server reboots. (#2888)
  • /unlimited no longer corrupts user data. (#2811)
  • /unbanip now broadcasts unbans to players with the essentials.banip.notify permission, not the essentials.ban.notify permission. (#2774)
  • If an error occurs while copying items.json for the first time, the error message will now state items.json instead of items.csv. (6a7cf39)
  • EssentialsX will no longer assume that the player has a primary group, fixing issues with PEX 2.0 and potentially other permissions plugins. (1c4ce7b)
  • Item resolvers providing item names to tab complete now works properly. (#2910)
  • Builds of EssentialsX compiled against JDK9 will now run on Java 8. (fa06cd8)
  • EssentialsX no longer displays its own bed spawn message on 1.15+. (#2926)
  • Items which were renamed or replaced in 1.14 can now be spawned in on 1.13.x. (d92f5ce)
  • Filtering commands for the autocompletion in 1.13+ is now more efficient, particularly on outdated unsupported permissions plugins. (#3026)
  • /fireball now works on 1.8.8 again. (#3027)
  • GeoIP: The new MaxMind GeoLite2 API and license key system is now supported. (#2926)
  • Nyan.

API changes

  • UserBalanceUpdateEvent now includes a Cause. (#2824)

Click here for a full commit log.

Compare
Choose a tag to compare

EssentialsX 2.17.1 is now out, fixing several bugs including a dupe exploit on 1.14.4 - you should update as soon as possible.

This version of EssentialsX supports the following server software:

  • Spigot "CraftBukkit", Spigot and Paper (recommended) for 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2, 1.13.2, and 1.14.4
  • Glowstone 2018.10 onwards for Minecraft 1.12.2

Upgrading to 2.17.1

EssentialsX 2.17.1 does not require any config changes from 2.17.0.

Upgrading from older versions of EssentialsX? See the previous update changelogs.

Bug fixes

  • essentials.keepinv no longer duplicates items on Spigot "CraftBukkit", Spigot and Paper for 1.14.4. If you are using essentials.keepinv, you need to update EssentialsX as soon as possible.
  • The locale messages for /tpauto are now included in the EssentialsX jar, fixing missing message errors.
  • Signs placed on walls are now correctly protected on Minecraft versions below 1.12.2.
  • /ess version no longer complains when running on 1.14.4.
  • /r and /reply now show up correctly in the command autocomplete on 1.13 and above.

Special thanks

As usual, a massive thanks to all of the volunteers who have spent their time providing support on Discord and GitHub, especially over the past few weeks while I've been away. In addition, thanks to @darbyjack and @pop4959 for fixing bugs that have appeared in the mean time. Finally, thanks to everyone who has donated to the project, in particular our Hero donors on Patreon:

  • AKP
  • Wasted Ticks
  • YouthInRevolt
  • ...and 1 other patron
Compare
Choose a tag to compare

EssentialsX for 1.14.x is here! This release includes 1.14.3 support, plus some new features and several bug fixes.

This version officially supports the following server software:

  • Spigot "CraftBukkit", Spigot and Paper (recommended) for 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2, 1.13.2 and 1.14.3
  • Glowstone 2018.10 onwards (for Minecraft 1.12.2)

Upgrading from 2.16.1

You should be able to just replace the EssentialsX jars from 2.16.1 with new jars for 2.17.0 without any issues. However, there are some things to note:

  • If you have players who use NetEase Minecraft (Minecraft China), you need to set safe-usermap-names: false! If you don't, your players may lose their homes and balance.

New features

  • /mute now lets you specify a reason. For example: /mute MD678685 10m Swearing in public chat. (#1557)
  • /near is now sorted by distance from nearest to furthest. (#2158)
  • The teleport-back-when-freed-from-jail option in config.yml lets you disable teleporting players back to their prevoius location prior to being jailed. (#1949)
  • The new /tpauto command allows players to automatically accept /tpa requests. (#2310)
  • The bypass-sleep-when-afk option in config.yml lets you control whether night will pass if AFK players aren't sleeping. (#2329)
  • Attempting to use a warp sign without permission for that warp will now give you an error message. (#2450)
  • /back now lets you teleport other players to their last locations by including their usernames if you have essentials.back.other. (#2451)
  • You can now use /rtoggle to control your own personal last-message-reply-recipient setting. (#2455)
  • /exp now works more like /eco. (#1953)
  • Teleporting to a home now shows a message. (#2489)
  • EssentialsX now supports 1.14.x mobs, enchantments and items. (#2510)
  • The essentials.keepinv permission will prevent players dropping their items on death. (#2531)
  • LLAMA COLOURS (60ebe9e)
  • You can now change the [Disposal] and /disposal inventory title. (#2461)
  • /fireball now lets you fire splash and lingering potions. (#2461)
  • /itemname lets you rename the item you're currently holding. (#672, #2573)
  • Players with essentials.balancetop.exclude will be hidden from the /baltop. (#2499)
  • safe-usermap-names: false will disable usermap sanitisation (intended for Minecraft China servers). (c97918d)
  • You can now set formatting code permissions for each code separately. (#1441)
  • You can now choose whether water is considered a "safe" teleport destination with the is-water-safe config option. (#2520)

API additions

  • You can now add custom items to the item database by registering your own ItemResolver. (#2472)
  • You can now listen for /tpa requests with TPARequestEvent. (#1727)

Bug fixes

  • Offline players with exact name matches are now preferred to online players with partial name matches in some commands. (#2455)
  • Commands are hidden from the 1.13+ autocomplete if the player doesn't have permission to use them. (#2469)
  • The AFK timer is now reset correctly when you log out, preventing random kicks when logging back in. (#2458)
  • Running /mail clear with an empty mailbox will now tell you your mailbox is already empty and will no longer charge command costs. (#2063)
  • GeoIP will now report localhost connections as from "an unknown country". (#2494)
  • /tpa(here) will no longer show users the /tpacancel message if they don't have permission to use that command. (#2498)
  • The usage message for /bigtree now includes darkoak as an option. (#2461)
  • NYAN (2ea3d89)
  • EssentialsX will no longer warn about CloudNet v2's fake server list pinging. (cd7fa79)
  • /condense will now only use square recipes. Be gone, leather boots! (dbd8615)
  • Standing on redstone ore will no longer bypass auto-AFK. (8b7bcbb)
  • Item ID lookups now work on 1.12.2 and below again. (9089fe8)
  • The kit delay strikethrough now works properly when the kit name includes capital letters. (2938330)

Translation updates

There have been several updates to translations in this release. If you have custom locale files, you may want to update them to the latest version from the EssentialsX jar.

You can help translate EssentialsX on Crowdin.

Website changes

The EssentialsX website has seen a couple of minor changes. The most notable is that the Downloads section now works properly, and gives you quick links to download all the latest builds of the EssentialsX plugins.

A new website is also in the works along with improved documentation - click here for a sneak peek of the new site!

Special thanks

Once again, this release wouldn't be here without all of our community supporters. Thanks to all of our contributors for providing support, translating strings, developing new features, and investigating and fixing bugs! In addition, thanks to everyone who has supported EssentialsX over the past few months.

Compare
Choose a tag to compare

EssentialsX for 1.13.2 and all older supported versions is finally here! This release contains mainly bug fixes for 2.16.0; in particular, you can now use EssentialsX in 1.12.2 and below once more!

This release supports Bukkit servers running the following versions: 1.13.2, 1.12.2, 1.11.2, 1.10.2, 1.9.4, and 1.8.8. We do not support 1.7.10, nor do we support old outdated versions like 1.8.3 or 1.13.1 - you should update your server to a supported version.

Important changes since 2.16.0

  • The plugin now works on 1.12.2 and below, in case you missed it.
    • You can now spawn in items, use /enchant and create and use kits, just like you always used to!
  • Due to an oversight in 2.16.0, items.json did not update when you updated EssentialsX. This has now been fixed for new installs of EssentialsX.
    • You will need to delete plugins/Essentials/items.json when you update EssentialsX to let it create a new items.json.
    • This is recommended: lots of items were missing when 2.16.0 was released and have been added back more recently, but these won't work until you let EssentialsX create the new file.
  • Teleportation now loads chunks asynchronously where possible.
    • This fixes teleportation commands slowing down the server.
    • You need to be running Paper for this to have any effect.

Bug fixes

  • da89efb: Fix version checks breaking on Minecraft versions without a patch number (like 1.8 or 1.12)
  • 694cf7a: Remove 1.13-only code when spawning in items from items.csv
  • 97cc3d0: Fix damage potions spawning the wrong type of potion and incorrect wood aliases
  • fd01b75: Fix spawning items in by ID and meta on versions below 1.13
  • bd8ef2a: Hide warps in tabcomplete when players don't have permission to use them
  • 417fe29: Don't send item IDs twice in /itemdb on versions below 1.13
  • 4adb669: Add names for spawners for each entity
  • 82ede45: Download GeoIP database over HTTPS
  • 7948e76: Don't set beds in the Nether or End where they explode
  • dd41b10: Don't override the ability to put on skulls
  • 727d473: Fix enchantments breaking on versions below 1.13
  • d24b061: Don't show SLPE errors when receiving legacy pings
  • 7da90b3: Fix item-spawn-blacklist being loaded before the item database and constantly erroring
  • b831713: Send proper error when user tries to spawn unspawnable materials as items
  • 8272178: Allow [gamemode] signs to switch into spectator mode
  • 7325113: Remove outdated permissions handlers
  • fb77953: Replace NBSPs with normal spaces in translation files
  • aca83bd: Depend on VaultAPI instead of Vault
  • 9e73c29: Fix /createkit on 1.12.2 and below
  • f214696: Use the Material enum for the Protect and AntiBuild configs
  • 3856a69: Use PaperLib to fix teleportation lag
  • e72644a: Add mooshroom spawners; add new stone-like aliases
  • eafd110: Add aliases for spawner that actually, you know, include the word "spawner"
  • 289d34d: Relocate PaperLib in EssentialsXSpawn (but don't include it in the jar)
  • 31b98fb: Allow the console to send mail using colour codes
  • dde4a36: Attempt searching for users by UUID before giving up
  • dda5e4e: Remove locked chest aliases

Translation updates

There are no translation updates in this release. If you want to contribute to translations, we're working on moving translation updates to Crowdin - click the link to visit our translation page.

Special thanks

Once again, big thanks to all our contributors. A special mention also goes to @triagonal and @DoNotSpamPls as well as countless others who have helped fix bugs and provide support. Finally, a big thanks to everyone who has been patient and supported us since the release of 2.16.0 in January.