EssentialsX 2.19.0 - The Cacophony Update Part 1 #4506
mdcfe
announced in
Announcements
Replies: 0 comments
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
-
EssentialsX 2.19.0 - The Cacophony Update Part 1
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, @LAARRRY 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:
Table of contents
Click to open
/warpinfo
command (#3820)cancel-afk-on-chat
setting (#3863)kit-auto-equip
setting to auto equip armor from kits (#3704)jail-online-time
setting (#3705)/kitreset
command to reset kit cooldowns (#3909)/editsign copy
and/editsign paste
(#3989)/toggleshout
command (#3965)/info
text commands, custom books and custom join/quit messages (#4098, #4169)/createkit
now saves written book pages (#4048)/baltop
(#4226)/createkit
now supports optional NBT serialization (#3248)ItemResolver
s are no longer automatically lowercased (#3636)BalanceTop
API (#3702)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
and1.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
, and1.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:
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.EssentialsX does not support the following Minecraft versions or server software:
1.7.10
or below.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.
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 andplugins/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:New
cancel-afk-on-chat
setting (#3863)You can now control whether chat cancels AFK for players separate to other types of interaction:
New
kit-auto-equip
setting to auto equip armor from kits (#3704)You can now set
kit-auto-equip
totrue
inconfig.yml
to automatically equip armor when players redeem kits.New
jail-online-time
setting (#3705)You can now set
jail-online-time
totrue
inconfig.yml
to only count down time for jailed players while they're online.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
tofalse
inconfig.yml
:Option to disable message social spy (#3910)
You can now disable private messages showing in social spy by setting
socialspy-messages
tofalse
inconfig.yml
: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 theessentials.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:/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.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.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 thecustom-join-message
andcustom-quit-message
settings inconfig.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 theconfig.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.
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
tofalse
inconfig.yml
:Option to hide negative and zero balances from
/baltop
(#4226)You can now set the
show-zero-baltop
option tofalse
inconfig.yml
to hide players from/baltop
if they have a zero or negative balance: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 theuse-nbt-serialization-in-createkit
option inconfig.yml
.use-nbt-serialization-in-createkit: false
use-nbt-serialization-in-createkit: true
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
consoleName
key. (Allow console name to be translated #3700)trade.log
now includes the resulting balance after transactions take place. (Add ending user balance as a final field in trade.log #3721)/invsee
. (Allow users to middle click in armor invsee #3893)allow-direct-hat
unless they have theessentials.hat.ignore-binding
permission. (Block removing hats with curse of binding using direct-hat #3895)/pay
if they have theessentials.pay.offline
permission. (Allow paying offline users via /pay #3625)1.16.5
a supported version. (Update to 1.16.5 #3923)/alts <username>
to look up potential alts of a player. (Add /alts alias for /seen #3931)[enchant]
signs can now include material tags to allow enchanting multiple types of items. (Add support for material tags in enchant signs #3694)/jail
will now infer the jail name if only one jail has been set on the server. (Infer jail name when the server only has one jail configured #3911)/itemdb
now shows custom aliases added incustom_items.yml
. (Show custom item aliases in /itemdb #3907)command-cooldowns
can now be applied to aliases created using Bukkit'scommands.yml
. (Add support for commands.yml aliases in command cooldowns #3744)/seen
now displays UUIDs for players. (Show UUIDs in /seen #3906)/spawner
now requires theessentials.spawner.delay
permission to change a spawner's delay. (Add permission to adjust delay in /spawner command #3964)/spawnmob
. (Add netherite related items to spawnmob #4031)disabled-commands
are now unregistered from the Bukkit command map. (Unregister disabled commands #4026, Fix disabled commands not marking the command map as dirty #4108, Fix disabled-commands not removing aliases #4399)/pay
no longer works on vanished players. (Fix /pay working 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. (Add way for time and weather signs to display the time/weather #4131)/itemname
to specific items usingessentials.itemname.prevent-type.<item>
permissions. (Add prevent-type permissions for /itemname #4133)/give
,/item
and kits. (Allow enchants on fireworks/charges/potions/banners #3882)/ice
to temporarily apply the "freezing" effect to players. (Update to 1.17 #4211)custom-new-username-message
option inconfig.yml
. (Add config option for new username join messages #4290)change-tab-complete-name
option. (Add option for tab complete to use displaynames #4432)respawn-at-home-bed: false
in theconfig.yml
to prevent players respawning at their bed. (Add option to disable players respawning at beds #3802, Add missing respawn-at-home-bed config option #4071)Bug fixes
Bugs fixed from 2.18.2 and older versions
config.yml
have been updated to point to the new EssentialsX domain. (update website links in config.yml #3779)1.8.8-R0.2
versions. (Fix incompatibility on TacoSpigot and derivatives #3817)/me
now calculates the chat radius correctly. (Fix incorrect /me behaviour in local chat #3848)/t
command to Towny (previously Towny did not allow us to relay this command properly). (Fix AlternativeCommandsHandler not detecting some aliases #3856)/list
no longer shows the user's real name in brackets if they don't have a nickname. (Fix behaviour of /list when showing real names #3858)/depth
usage messages now include the correct command alias. (Update plugin.yml #3832)/tpoffline
now has a/etpoffline
alias. (Update plugin.yml #3832)/warp
no longer says the player is about to teleport when the teleport is cancelled by a cooldown. (Fix warp messages sending incorrectly with teleport delays #3696)/sell blocks
and/worth blocks
now filter items in the player's inventory correctly. (Fix AbstractItemDb#getMatching improper block filtering #3691)/ess commands
no longer displays the plugin namespace twice for relayed commands. (Prevent sending usage info when executing alternative commands #3904)/nick
now prevents duplicate nicknames when players' display names are modified (eg prefixes/suffixes). (Fix duplicate nickname check with custom display names #3922)/list
no longer exposes groups whose players are all hidden. (Fix list command exposing groups with vanished players #4032)/createkit
withpastebin-createkit: true
now uploads kits topaste.gg
instead ofhastebin.com
. (Change createkit to use paste.gg #4049)/createkit
now converts formatted item names and lore back to&
code formatting. (Unformat item lore and name when serializing items #4095)custom_items.yml
no longer suggests using a nonexistent command to manage it. (Remove the/itemdb alias
suggestion #4152)/ptime
,/pweather
,/time
and/unlimited
now include spacing in comma-separated lists. (Fix formatting issue in with comma-separated lists #4157)/book
now supports multi-word book titles and authors. (Fix /book command not supporting multi-word title & author #4180)/back
now tracks previous locations from teleports once more if players have theessentials.back.onteleport
permission. (Fix incorrect behaviours in /back #4264)/powertool a:<command>
and/powertool r:<command>
no longer throw errors if the powertool list doesn't exist. (Prevent NPEs in /powertool #4276)/itemlore
and/itemname
have been improved to reflect their actual behavior. (Improve itemlore and itemname tab completion #4280)/itemdb
on legacy versions #4320)essentials.tpoffline
permission in/tp
no longer has a vaugue error. (Prevent NPE in teleport command #4332)/spawn
. (Fix delay not working in /spawn #4335)essentials.build.*
permission can now pickup items. (Fix pickup delay with essentials.build.pickup permission #4273)protect.prevent.respawn-anchor-explosion
now prevents respawn anchor explosions in more cases. (Fix respawn anchor explosion protection #3778)protect.prevent.tnt-playerdamage
no longer prevents damage from bed explosions. (Fix damage from exploding beds being cancelled #3874)Regressions fixed from 2.19.0 dev builds
/delwarp
now shows the "warp deleted" message as it did before Add WarpModifyEvent #3875. (Fix warp deleting message not showing #3927)/seen
,/whois
and/togglejail
again. (Fix invalid formatted jail time strings in whois/seen #3917, Fix further incorrect messages for jail countdowns #3941)kit-auto-equip
now works on versions below Minecraft 1.14. (Fix kit-auto-equip not working on versions < 1.14 #4130)NPC:<accountname>
UUIDs, in case a plugin generated NPC accounts on an older version of EssentialsX. (Check legacy "NPC:" UUIDs in VaultEconomyProvider#hasAccount #4178, Fix various NPC account lookup issues #4188)sleep-ignores-vanished-player
no longer overrides theessentials.sleepingignored
permission. (Fix sleeping ignored vanish setting overriding permission #4201)show-zero-baltop: false
now hides zero and negative balances, not positive balances. (Fix mistake in PR #4226 #4228)/ess dump
now works on 1.8.8, which ships an ancient version of Gson. (Fix /ess dump on 1.8.8 #4489)kit-auto-equip
option. (Allow auto equip in nbt serialized kits #4491)/execute
command. (Discord Module Fixups #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 URLhttps://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
andnet.essentialsx.api.v2
packages where possible, as these are designated API and unlikely to break between versions (though parts of legacy APIs in thecom.earth2me.essentials
andnet.ess3
packages could still break in future 2.x versions).Item names passed to
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.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: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. (Add TransactionEvent for successful transactions #3649)UserKickEvent
is fired when players are kicked using EssentialsX's/kick
command. (Add UserKickEvent #3490)WarpModifyEvent
is fired when a warp is created, updated or deleted with/setwarp
or/delwarp
. (Add WarpModifyEvent #3875)UserTeleportSpawnEvent
is fired when a player is about to be teleported to a spawn due to/spawn
. (Add UserTeleportSpawnEvent #4328)Other changes
/enchant
command. (Add API to register enchantment names/aliases #3669)For a full commit log, click here.
This discussion was created from the release EssentialsX 2.19.0 - The Cacophony Update Part 1.
Beta Was this translation helpful? Give feedback.
All reactions