The modern Essentials suite for Spigot and Paper.
đ EssentialsX 2.20.1 is here, bringing with it 1.20.1 support and several bug fixes.
Thanks to everyone who has contributed code to this release (many of whom are listed at the bottom of this release), as well as to everyone who has contributed to translations on Crowdin!
In addition, a massive thanks to our community members who have assisted countless people with using EssentialsX across GitHub and MOSS, including @triagonal, @JasonHorkles, @Evidentsinger14, @ImDarkLaw, @Chew, @Laarryy and many others.
The EssentialsX project is powered by the community. If you want to help us out, you can contribute by;
Finally, a shoutout to our supporters on Patreon and GitHub Sponsors!
A special thanks goes to our Hero tier supporters:
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 with a one-off or monthly pledge:
EssentialsX officially supports the CraftBukkit, Spigot, and Paper server software. Specifically, EssentialsX is designed to work on the following Minecraft versions:
1.19.4
and 1.20.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
, 1.16.5
, 1.17.1
, and 1.18.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:
/anvil
, /grindstone
, /cartographytable
, /loom
, /smithingtable
, and /stonecutter
are only supported on Paper./recipe
on 1.12+ requires Paper to avoid a dupe bug introduced by CraftBukkit and Spigot.EssentialsX does not support the following Minecraft versions or server software:
1.7.10
or below.If you're upgrading from 2.20.0, you can keep your current EssentialsX config file. There are no new changes to configuration files in this release.
Upgrading from 2.19.7 or older versions of EssentialsX? See the previous update changelogs.
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.
On Minecraft 1.17.1 and greater, player's fly mode will be reset regardless of the world-change-fly-reset
setting due to behavior change in vanilla. This will be fixed in a future version of Essentials.
EssentialsX now officially supports Paper, Spigot, and CraftBukkit 1.20.1.
/recipe hand
. (#5346)/toggleshout
command. (#5367)currency-symbol-suffix
to true
in the config. (#5441)The following bugs from 2.20.1 development builds have been fixed:
EssentialsX 2.20.1 introduces a new event:
KitPreExpandItemsEvent
is fired before players are about to receive kit items. (#5407)For a full commit log, click here.
After months of hard work from our contributors, EssentialsX 2.20.0 is here! đ
This release contains a new Discord Link addon, 1.19.4 support, a few new features, bug fixes and internal improvements. 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!
In addition, a massive thanks to our community members who have assisted countless people with using EssentialsX across GitHub and MOSS, including @triagonal, @JasonHorkles, @Evidentsinger14, @ImDarkLaw, @Chew, @Laarryy and many others.
The EssentialsX project is powered by the community. If you want to help us out, you can contribute by;
Finally, a shoutout to our supporters on Patreon and GitHub Sponsors!
A special thanks goes to our Hero tier supporters:
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 with a one-off or monthly pledge:
EssentialsX officially supports the CraftBukkit, Spigot, and Paper server software. Specifically, EssentialsX is designed to work on the following Minecraft versions:
1.18.2
and 1.19.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
, 1.14.4
, 1.15.2
, 1.16.5
, and 1.17.1
- 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:
/anvil
, /grindstone
, /cartographytable
, /loom
, /smithingtable
, /stonecutter
are only supported on Paper./recipe
on 1.12+ requires Paper to avoid a dupe bug introduced by CraftBukkit and Spigot.EssentialsX does not support the following Minecraft versions or server software:
1.7.10
or below.If you're upgrading from 2.19.3 or above, you can keep your current EssentialsX config file. However, 2.20.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.19.2 or older versions of EssentialsX? See the previous update changelogs.
EssentialsX Discord now has the Discord Link addon, which lets your users easily link their Discord and Minecraft accounts! You can synchronize Discord roles with Vault groups, as well as optionally requiring players to link to Discord before playing, all with a bloat-free and easy-to-understand configuration!
You can read more about EssentialsX Discord Link and see how to get started here.
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.
EssentialsX 2.20.0 doesn't yet support blocks, items and mobs from Minecraft: Trails and Tales in 1.19.x or 1.20. As a result, some commands and features (including /give
, /spawnmob
and /editsign
) won't recognise the new content yet.
We plan to release a 2.20.1 update once Minecraft 1.20 has released, which will add support for the new content.
EssentialsX 2.20 overhauls the user caching system, fixing issues with third-party plugins such as Towny.
Due to a large overhaul in data format, once you upgrade to 2.20.0, you will not be able to downgrade your userdata to older versions. We strongly recommend taking a full backup of your plugins/Essentials/usermap.csv
file before you update from 2.19.7 to 2.20.0 if you ever wish to downgrade in the future.
EssentialsX now officially supports CraftBukkit, Spigot and Paper for 1.19.4.
/renamehome
command (#5121)You can now use /renamehome
to change the name of your existing home. If you have the essentials.renamehome.others
permission, you can rename the homes of other players.
/bottom
command (#5292)You can now use /bottom
to teleport to the lowest safe location in their current position.
first-join
message type (#5160)A new Minecraft -> Discord message type, sent when a player joins the server for the first time.
# 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:
...
# Join messages sent when a player joins the Minecraft server for the first time. This type is sent instead of the join type.
first-join: 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 joins the minecraft server for the first time.
# The following placeholders can be used here:
# - {username}: The name of the user joining
# - {displayname}: The display name of the user joining
# - {joinmessage}: The full default join message used in game
# - {online}: The amount of players online
# - {unique}: The amount of unique players to ever join the server
# ... PlaceholderAPI placeholders are also supported here too!
first-join: ":arrow_right: :first_place: {displayname} has joined the server for the first time!"
local
, question
, and shout
message types (#4684)A few new Minecraft -> Discord message types and configuration options have been added in order to support local, question and shout chat.
# Whether to use Essentials Chat events instead of normal chat event.
# This allows you to filter chat by its type (local, question, shout).
use-essentials-events: false
# 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:
...
# Message sent when a player talks in local chat.
# use-essentials-events must be set to "true" for this to work.
local: none
# Message sent when a player asks a question in global chat.
# use-essentials-events must be set to "true" for this to work.
question: primary
# Message sent when a player talks in global chat.
# use-essentials-events must be set to "true" for this to work.
shout: 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 that is used to relay minecraft local chat in Discord.
# The following placeholders can be used here:
# - {username}: The username of the player sending the message
# - {displayname}: The display name of the player sending the message (This would be their nickname)
# - {message}: The content of the message being sent
# - {world}: The name of the world the player sending the message is in
# - {prefix}: The prefix of the player sending the message
# - {suffix}: The suffix of the player sending the message
# ... PlaceholderAPI placeholders are also supported here too!
mc-to-discord-local: "**[Local]** {displayname}: {message}"
# This is the message that is used to relay questions from minecraft chat in Discord.
# The following placeholders can be used here:
# - {username}: The username of the player sending the message
# - {displayname}: The display name of the player sending the message (This would be their nickname)
# - {message}: The content of the message being sent
# - {world}: The name of the world the player sending the message is in
# - {prefix}: The prefix of the player sending the message
# - {suffix}: The suffix of the player sending the message
# ... PlaceholderAPI placeholders are also supported here too!
mc-to-discord-question: "**[Question]** {displayname}: {message}"
# This is the message that is used to relay minecraft global chat in Discord.
# The following placeholders can be used here:
# - {username}: The username of the player sending the message
# - {displayname}: The display name of the player sending the message (This would be their nickname)
# - {message}: The content of the message being sent
# - {world}: The name of the world the player sending the message is in
# - {prefix}: The prefix of the player sending the message
# - {suffix}: The suffix of the player sending the message
# ... PlaceholderAPI placeholders are also supported here too!
mc-to-discord-shout: "**[Shout]** {displayname}: {message}"
You can now change the webhook name format for messages sent to Discord.
# 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 bot's name which appears in Discord when sending player-specific messages.
# The following placeholders can be used here:
# - {username}: The username of the player sending the message
# - {displayname}: The display name of the player sending the message (This would be their nickname)
# - {world}: The name of the world the player sending the message is in
# - {prefix}: The prefix of the player sending the message
# - {suffix}: The suffix of the player sending the message
# - {botname}: Name of the Discord bot
# ... PlaceholderAPI placeholders are also supported here too!
mc-to-discord-name-format: "{botname}"
/mail clear
command. (#5132)essentials.nick.hideprefix
permission to hide the nickname prefix for those with it. (#4995)essentials.commandcooldowns.bypass.<command name>
. (#4759)/recipe
. (#5122)/whois
no longer overflow. (#5177)/tppos
command in the console. (#5231)/tpoffline
when the player's last location is not known. (#5290)/top
command now sends feedback once again. (#5302)/editsign
command now calls the SignChangeEvent
. (#5304)NullPoinerException
in some cases. (#5339)/ess reload
in some cases. (#5149)The following bugs from 2.20.0 development builds have been fixed:
/hat
. (#5205)/createkit
command works on 1.8.8 once again. (#5212)/link
Discord command no longer requires administrator privileges. (#5197)NullPointerException
(#5338)DiscordRelayEvent
(#5080)DiscordRelayEvent
now has a getViewers()
method which returns a mutable list of viewers for the relayed message.
With the addition of the Discord Link Module, there is now an API service to access information about a player's Discord account that they have linked. You can obtain an instance of this and use it in tandem with the Discord module API like so:
// Gets the API service for EssentialsX Discord Link
final DiscordLinkService linkApi = Bukkit.getServicesManager().load(DiscordLinkService.class);
final String discordId = linkApi.getDiscordId(player.getUniqueId());
if (discordId == null) {
// The player has no Discord account linked.
return;
}
// Gets the API service for EssentialsX Discord which we will use to get the actual user
final DiscordService discordApi = Bukkit.getServicesManager().load(DiscordService.class);
final InteractionMember member = discordApi.getMemberById(discordId).join();
final String userTag = member == null ? null : member.getTag();
EssentialsX 2.20.0 introduces several new events:
GlobalChatEvent
is fired when players send a message in global chat. (#4683)LocalChatEvent
is fired when players send a message in local chat. (#4683)HomeModifyEvent
is fired when a home is created, updated or deleted. (#5216)For a full commit log, click here.
EssentialsX 2.19.7 is here! đ This release has several bug fixes for chat and other issues. Keep reading to see all the changes!
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 supporters on Patreon, GitHub Sponsors and Ko-fi. A special thanks goes to our Hero tier supporters:
Want to be listed here? You can join our Hero tier on Patreon or GitHub at the links above!
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:
EssentialsX officially supports the CraftBukkit, Spigot, and Paper server software. Specifically, EssentialsX is designed to work on the following Minecraft versions:
1.18.2
and 1.19.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
, 1.14.4
, 1.15.2
, 1.16.5
, and 1.17.1
- 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:
/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.EssentialsX does not support the following Minecraft versions or server software:
1.7.10
or below.If you're upgrading from 2.19.3 or above, you can keep your current EssentialsX config file. There have been no changes to the configuration since that release.
Upgrading from 2.19.2 or older versions of EssentialsX? See the previous update changelogs.
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.
If you use any vanilla commands that send secure chat messages (including /minecraft:msg
or /minecraft:me
), you may see formatting from EssentialsX Chat in these messages. This is due to an implementation quirk in Spigot, which forces plugins to handle all secure previews for vanilla chat commands as if they were public chat messages. There is no known workaround for this at this time, but you can continue to use unsigned commands from EssentialsX and other plugins as normal.
/sudo
to send a chat message as another user will no longer send their previewed message. (#5062)/invsee
on themselves. (#5061)/ess dump
command no longer errors on 1.8.8. (#5067)/helpop
) now show colors properly in the console. (#5075)/baltop
command now works in command blocks. (#5078)There are no known regressions in 2.19.7 dev builds.
There are no API changes in this release!
For a full commit log, click here.
EssentialsX 2.19.6 is here! đ This release features slight additions, support for Minecraft 1.19.2, and several bug fixes. Keep reading to see all the changes!
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 supporters on Patreon, GitHub Sponsors and Ko-fi. A special thanks goes to our Hero tier supporters:
Want to be listed here? You can join our Hero tier on Patreon or GitHub at the links above!
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:
EssentialsX officially supports the CraftBukkit, Spigot, and Paper server software. Specifically, EssentialsX is designed to work on the following Minecraft versions:
1.18.2
and 1.19.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
, 1.14.4
, 1.15.2
, 1.16.5
, and 1.17.1
- 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:
/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.EssentialsX does not support the following Minecraft versions or server software:
1.7.10
or below.If you're upgrading from 2.19.3 or above, you can keep your current EssentialsX config file. There have been no changes to the configuration since that release.
Upgrading from 2.19.2 or older versions of EssentialsX? See the previous update changelogs.
Minecraft 1.19.1 introduced a new Player Reporting feature on the client, allowing players to report chat messages to Mojang in-game. The server now has a secure chat system which allows players to preview and "sign" their chat messages, which ensures players can't use client mods to fabricate reports with fake messages. If the game can't verify a message, it will show a yellow warning indicator.
As of 2.19.6, EssentialsX Chat supports chat previews. Once you enable chat previews in your server.properties
file, EssentialsX Chat will send back previews to players so they can send secure "signed" messages without the yellow warning indicator.
Players will need to accept previews when they join the server. They will also need to wait a second between finishing their message and pressing Enter to ensure their message gets previewed and signed.
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.
If you use any vanilla commands that send secure chat messages (including /minecraft:msg
or /minecraft:me
), you may see formatting from EssentialsX Chat in these messages. This is due to an implementation quirk in Spigot, which forces plugins to handle all secure previews for vanilla chat commands as if they were public chat messages. There is no known workaround for this at this time, but you can continue to use unsigned commands from EssentialsX and other plugins as normal.
EssentialsX now has full support for Minecraft 1.19.2, including support for the new Wild Update items in /give
, /item
and kits, new mobs, and new NMS/OBC mappings for accessing internal CraftBukkit code.
EssentialsX also no longer warns when installed on 1.19.2 servers.
/playtime
command will now no longer appear to progress for vanished users. (#4918)/tpa
command no longer double charges a user with /tpauto on
. (#4862)/nick off
command can now be used by users with only essentials.nick.changecolors
permissions. (#4876)TeleportWarmupEvent
event now has the correct teleporter. (#4913)freeze-afk-players
is set to true
will no longer be teleported to the ground. (#4944)minecraft:
namespace no longer gives an error in the /give
command. (#4960)/unlimited
command no longer floods user's inventory when changing stack sizes. (#4877)/nick
command now shows your nickname even with change-displayname
disabled in the config. (#4980)/ess dump
no longer reports offline mode for servers behind Velocity on Paper 1.19 and above. (#5052)allowed-roles
section of the config will no longer resolve to roles with the same name as another role's id. (#4983)There are no API changes in this release!
Note: 2.19.5 had an issue with proxy detection on Paper. 2.19.6 has been released to address this issue.
For a full commit log, click here.
â ī¸ EssentialsX 2.19.4 fixes a critical issue with [Trade]
signs from 2.19.3. You should upgrade to this release as soon as possible.
A massive thanks to our community members who have assisted countless people on GitHub and MOSS, including @triagonal, @JasonHorkles, @Evidentsinger14, @Chew, and many others.
Finally, a shoutout to all our 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. You can click one of the buttons below to support the EssentialsX project:
EssentialsX officially supports the CraftBukkit, Spigot, and Paper server software.
EssentialsX is designed to work on the following Minecraft versions:
1.17.1
and 1.18.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
, 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:
/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.EssentialsX does not support the following Minecraft versions or server software:
1.7.10
or below.2.19.4 is a drop-in replacement for 2.19.3.
If you're upgrading from 2.19.2, you can keep your current EssentialsX config file. However, 2.19.4 adds some 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. See the 2.19.3 changelog for more details.
Upgrading from 2.19.2 or older versions of EssentialsX? See the previous update changelogs.
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.
Due to a known bug in OpenJDK 17.0.1, EssentialsX Discord may hang during startup when running in a single-core environment. Due to the nature of the JDK bug, there is nothing EssentialsX can do directly to fix this.
You can fix this by updating your Java version to 17.0.2 or later. If you are unable to change your Java version, please contact your server host for help.
(You can alternatively add -Djava.util.concurrent.ForkJoinPool.common.parallelism=1
to your startup flags to attempt to mitigate the issue. However, this should be used as a last resort only. OpenJDK 17.0.2 fixes this issue and should be used instead of this workaround.)
These bugs existed in 2.19.3 and have been fixed in this release.
[Trade]
signs would change owner when used. This has been fixed. (#4835)There are no known regressions in 2.19.4 dev builds.
For a full commit log, click here.
EssentialsX 2.19.3 is here! đ This release features new chat features, support for Minecraft 1.18.2 and several 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!
In addition, a massive thanks to our community members who have assisted countless people on GitHub and MOSS, including @triagonal, @JasonHorkles, @Evidentsinger14, @Chew, and many others.
Finally, a shoutout to all our 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. You can click one of the buttons below to support the EssentialsX project:
EssentialsX officially supports the CraftBukkit, Spigot, and Paper server software. EssentialsX is designed to work on the following Minecraft versions:
1.17.1
and 1.18.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
, 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:
/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.EssentialsX does not support the following Minecraft versions or server software:
1.7.10
or below.If you're upgrading from 2.19.2, you can keep your current EssentialsX config file. However, 2.19.3 adds some 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.19.0 or older versions of EssentialsX? See the previous update changelogs.
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.
Due to a known bug in OpenJDK 17.0.1, EssentialsX Discord may hang during startup when running in a single-core environment. Due to the nature of the JDK bug, there is nothing EssentialsX can do directly to fix this.
You can fix this by updating your Java version to 17.0.2 or later. If you are unable to change your Java version, please contact your server host for help.
(You can alternatively add -Djava.util.concurrent.ForkJoinPool.common.parallelism=1
to your startup flags to attempt to mitigate the issue. However, this should be used as a last resort only. OpenJDK 17.0.2 fixes this issue and should be used instead of this workaround.)
EssentialsX now officially supports CraftBukkit, Spigot and Paper for 1.18.2.
/nick
can now be used even when change-displayname
is disabled (#4758)You can now allow /nick
without letting EssentialsX take over displayname formatting. This may be useful if you want to use a third-party chat formatting plugin while still letting EssentialsX handle nicknames.
This release builds on both Essentials' legacy chat features and the new /toggleshout
command introduced in 2.19.0, adding several new config.yml
options and more permissions to control local and global chat modes!
You can now toggle whether players default to local chat mode or shout mode when they log in using the chat.shout-default
option:
chat:
...
# Whether players should be placed into shout mode by default.
shout-default: false
/toggleshout
should persist across server restartsYou can now let players keep their /toggleshout
setting when the server restarts using the chat.persist-shout
option:
chat:
...
# Whether a player's shout mode should persist restarts.
persist-shout: false
You can now control whether questions (by default, messages starting with ?
and sent in a unique chat channel) are enabled or disabled on your server using the chat.question-enabled
option:
chat:
...
# Whether chat questions should be enabled or not.
question-enabled: true
Essentials previously had essentials.chat.shout
and essentials.chat.question
permissions, which let you control whether or not players can send shout or question messages respectively.
You can now enable or disable the following new permissions (all of which default to true):
essentials.chat.local
allows players to send messages in local chatessentials.chat.receive.shout
allows players to receive shout chat messagesessentials.chat.receive.question
allows players to receive question chat messagesessentials.chat.receive.local
allows players to receive local chat messagesIf a player enables shout mode with /toggleshout
, any messages they send with the shout prefix (!
by default) will now be sent to local chat.
/near
is now translatable. (#4740)/tppos
. (#4729)/ess dump
command can now include the settings files for random teleports (tpr.yml
), /sell
values (worth.yml
) and EssentialsX Spawn (spawn.yml
). (#4785)[trade]
(and deprecated [protection]
) signs now save their owners' UUIDs on Minecraft 1.14 and above, and should no longer break when the owner changes their username. (#4713)tree-command-range-limit
setting (defaults to 300
) in config.yml
to limit how far away /tree
and /bigtree
can place trees. (#4728)These bugs existed in 2.19.2 and have been fixed in this release.
/tpaccept
without any arguments now accepts the most recent teleport request when multiple are queued. (#4755)vanishing-items-policy
and binding-items-policy
config options now apply to the offhand. (#4725)There are no known regressions in 2.19.3 dev builds.
The build script has been updated to Gradle 7.4. Various build plugins have also been updated, including an update to run-paper
to fix the runServer
tasks which broke following an update to Paper's download API in late 2021. (The runServer
tasks will be updated to use Paper 1.18.2 during the 2.20.x development cycle.)
For a full commit log, click here.
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.
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:
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:
/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.EssentialsX does not support the following Minecraft versions or server software:
1.7.10
or below.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.
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.
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.
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.
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
action
message typeA 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}*"
/discordbroadcast
commandAllows you to send one off messages from Minecraft to Discord. Supports markdown and tab completes server emotes.
/discord
commandSends 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"
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: ""
/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.
/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.
Players with the essentials.jail.notify
permission will now be notified if someone is jailed.
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.
/ess dump all
for /ess dump *
. (#4517)/seen
for players with the essentials.seen.uuid
permission. (#4531)verbose-command-usages
config option now actually reverts usage messages to previous behavior. (#4530)/ess dump
. (#4563)'force-disable-teleport-safety
is enabled. (#4650)/seen
. (#4615)/playtime
no longer throws an error on offline players. (#4649)essentials.fly.safelogin
now properly considers 1.18 world height. (#4667)ess_ignore_teleport
Bukkit metadata. This will be superseded with a proper API. (#4682)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.
IUser#getNextTpaRequest
has been added to get the most recent teleport request.
IUser#hasPendingTpaRequests
has been added to replace IUser#hasOutstandingTeleportRequest
with additional functionality.
IUser#hasOutstandingTeleportRequest
has been deprecated in favour of IUser#hasPendingTpaRequests
.
IUser#getTeleportRequestTime
has been deprecated in favour of IUser#getNextTpaRequest
.
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.
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)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.
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:
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:
/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.EssentialsX does not support the following Minecraft versions or server software:
1.7.10
or below.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.
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.
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.
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.
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.
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.
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.
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.
/warpinfo
command (#3820)You can now use /warpinfo
to view information about a warp:
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
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
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
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
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.
/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.
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"
/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.
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.
/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.
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
.
/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.
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
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
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
/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
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.
consoleName
key. (#3700)trade.log
now includes the resulting balance after transactions take place. (#3721)/invsee
. (#3893)allow-direct-hat
unless they have the essentials.hat.ignore-binding
permission. (#3895)/pay
if they have the essentials.pay.offline
permission. (#3625)1.16.5
a supported version. (#3923)/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)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)/spawnmob
. (#4031)disabled-commands
are now unregistered from the Bukkit command map. (#4026, #4108, #4399)/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)/itemname
to specific items using essentials.itemname.prevent-type.<item>
permissions. (#4133)/give
, /item
and kits. (#3882)/ice
to temporarily apply the "freezing" effect to players. (#4211)custom-new-username-message
option in config.yml
. (#4290)change-tab-complete-name
option. (#4432)respawn-at-home-bed: false
in the config.yml
to prevent players respawning at their bed. (#3802, #4071)config.yml
have been updated to point to the new EssentialsX domain. (#3779)1.8.8-R0.2
versions. (#3817)/me
now calculates the chat radius correctly. (#3848)/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)/ess commands
no longer displays the plugin namespace twice for relayed commands. (#3904)/nick
now prevents duplicate nicknames when players' display names are modified (eg prefixes/suffixes). (#3922)/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)/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)/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)/itemlore
and /itemname
have been improved to reflect their actual behavior. (#4280)essentials.tpoffline
permission in /tp
no longer has a vaugue error. (#4332)/spawn
. (#4335)essentials.build.*
permission can now pickup items. (#4273)protect.prevent.respawn-anchor-explosion
now prevents respawn anchor explosions in more cases. (#3778)protect.prevent.tnt-playerdamage
no longer prevents damage from bed explosions. (#3874)/delwarp
now shows the "warp deleted" message as it did before #3875. (#3927)/seen
, /whois
and /togglejail
again. (#3917, #3941)kit-auto-equip
now works on versions below Minecraft 1.14. (#4130)NPC:<accountname>
UUIDs, in case a plugin generated NPC accounts on an older version of EssentialsX. (#4178, #4188)sleep-ignores-vanished-player
no longer overrides the essentials.sleepingignored
permission. (#4201)show-zero-baltop: false
now hides zero and negative balances, not positive balances. (#4228)/ess dump
now works on 1.8.8, which ships an ancient version of Gson. (#4489)kit-auto-equip
option. (#4491)/execute
command. (#4293)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
.
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.
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).
ItemResolver
s are no longer automatically lowercased (#3636)You can now resolve case-sensitive item names in your plugins' ItemResolver
s. If your plugin does not already lowercase entries, you may need to update your plugin to handle mixed-case item names.
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());
});
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'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.
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)/enchant
command. (#3669)For a full commit log, click here.
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:
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.
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.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.
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.
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.
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
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.
/help
. (#3713, #3675)/sell
logging messages to use usernames instead of nicknames (#3693)/editsign
not always targeting the correct block when looking below your head-level (#3763)/paytoggle
displaying the opposite message than the action being taken./time
throwing an exception when used in console. (#3622)trade.log
file. (#3699)/clear <player> <item>
not clearing matched items from offhand. (#3715)/sell
and /worth
messages displaying {1}
instead of the item's actual value. (#3656)/sethome
preventing modifying homes when surpassed set-home limit. (#3776)IEssentials#getOnlineUsers
./clearinventory
that caused unexpected behavior than previously expected./lightning
where attempting to smite another player wouldn't run the essentials.lightning.others
permission check (#3671)/delhome
where tab completing would not show user homes properly and/or throw a NPE. (#3775)For a full commit log, click here.