HuskHomes 4.0 is a new major release bringing with it a large-scale rewrite of HuskHomes' internal plugin logic to address the significant number of bugs and stability in HuskHomes v3.x, and make a selection of user experience improvements.
I would like to apologise for any inconvenience caused issues present in the last major version, which particularly affected users making use of HuskHomes' cross-server functionality. Although this release doesn't contain any significant new features, the nature of the rewrite means that it has introduced breaking API changes, necessitating a major version bump.
Updates are also releasing today for HuskHomesPlaceholders (the PlaceholderAPI expansion) and HuskHomesGUI (the GUI add-on).
New features & improvements
- Added an option to disable commodore brigadier-style TAB completion to better support command and command-namespace hiding plugins.
- The global player list used for TAB completing usernames has been made significantly more accurate
- It is now restricted to only servers with HuskHomes on and which are in the same cluster.
- The list is even more accurate when using Redis due to limitations of the plugin message broker
- The server auto-fetching system has been removed due to instability; you must now ensure the server name is set correctly on first-time setup.
- The Global Respawning feature will now teleport users to your global spawn rather than just the local spawn on that server, if you are using the Global Spawn feature.
- Renamed a few plugin permissions (consult the updated docs for more information):
huskhomes.bypass.teleport_warmup
->huskhomes.bypass_teleport_warmup
huskhomes.bypass.rtp_cooldown
->huskhomes.command.rtp.bypass_cooldown
huskhomes.bypass.economy_checks
->huskhomes.bypass_economy_checks
- /phome and /phomelist are now the primary aliases of the public home and public home list commands, instead of /publichome and /publichomelist
- Improved TAB auto-completion for homes, public homes & warps, including automatic filtering for public homes by dot-delimited user prefixes
- Removed the migrator from HuskHomes v2.x; please update to v3.x and then to this release to migrate your data. Sorry for the inconvenience caused.
- You can now customise the name of the public home and warp marker group names displayed on map hooks through the plugin locales
- You can now use the /spawn command to teleport a player to the spawn by name (
/spawn <player>
); requires thehuskhomes.command.spawn.other
permission and can be executed through console - Commands executed through console have been improved; they will now display the same as in-game, with full formatting support
- You can now edit and delete homes and warps (but not their location) through console
Bug fixes
- Fixed the "Message Dispatch after 5 Seconds" error on cross-server setups, caused by extreme thread pool exhaustion.
- Fixed a crash where viewing attempting to view the warp list would crash the server in certain environments
- Fixed a bug where the
overwrite_homes_warps
feature would fail to overwrite the player's homes if they had reached the maximum number of homes - Fixed a bug where sounds would fail to play in the previous version
- Fixed a bug where the /setspawn command would fail to write the cached spawn file to disk
- Fixed a bug where attempting to teleport similarly named players cross-server would fail occasionally
- Fixed a bug where players where it would sometimes not be possible to teleport users by name who had number-only usernames
- Fixed a bug where the update checker would incorrectly report that an update was available
- Fixed a bug where economy actions would not be correctly processed as hooks weren't properly being accessed
- Fixed a bug where map markers would not be updated properly when a change was made to a home/public warp on Dynmap/BlueMap
- Fixed issues where cancelling some API events would still display error messages to players
Localisation changes
- Added Turkish (tr-tr) locales, courtesy of @WinTone01 (#310)
- Updated the Traditional Chinese (zh-tw) locales, courtesy of @davgo0103 (#307)
- Updated the Simplified Chinese (zh-cn) locales, courtesy of Wtq_
- Updated the Italian (it-it) locales, courtesy of @iVillager in (#330)
API changes
The API has underwent an overhaul, introducing a wide range of breaking changes. The vast majority of plugins built to work with HuskHomes v3 will not work with v4. Sorry about that. I hope that you find the new API easier to work with.
- Objects are now encapsulated with getter and setter methods where appropriate. For example, you now access information from a
Home
object with#getX()
,#getWorld()
etc. - The selection of API events has changed; there's now a HomeCreateEvent and WarpCreateEvent and the old events fired on save have been replaced with new HomeEditEvent and WarpEditEvents
- API events now provide more methods for setting values to let you affect their outcome
- Creating objects is no longer done with constructors; making
Position
s is now done withPosition.at(x, y, z, world, server)
; creatingWorld
s is now done withWorld.from(name, uuid)
- Methods and objects that require a server ID argument now just take a string (the name of the server).
- The
Teleport
API has been rewritten again. - New methods for both creating and editing warps and homes, including some consumer methods for updating metadata tags
- For more information, please consult the updated API docs.
To update to this release from HuskHomes v3.x, you must regenerate your config, server (if you are using cross-server mode) and locale files. No data migration is necessary, as the database schema has not changed.
Update Italian (it-it) locales, courtesy of Villag3r_ (#330)
-
Update it-it.yml
-
Apply suggestions from code review
Co-authored-by: William will27528@gmail.com
HuskHomes v4.0 development builds are now being released through Modrinth. This is the first alpha release following an extensive refactor.
HuskHomes v4.0 fixes a wide range of extremely annoying bugs and issues that people found in v3.0. The nature of a number of the bugs in 3.0 required that I rewrite quite a large amount of plugin code for this. As a result, this release will contain breaking API changes, but doesn't contain a significant number of new features.
If you are using add-ons or plugins that depend on HuskHomes, this version will probably not work with them as a result! (including the GUI). These will be updated following the main line release.
There are, however, a number of new neat features and tricks
- Improved TAB completion for public/private homes
- Much more reliable and cluster-specific player list tracking (especially for Redis users)
- Updated map hook support to latest APIs
- Global respawn now respects global spawn
- You can now run a number of additional commands through console, like
/spawn <player>
- Console messages will now be formatted just like in-game, and the console experience has been improved (and a lot more)
I mentioned breaking API changes, which mainly relate to two areas
- There's a new Teleport API; teleports are no longer completely tracked from start to finish with futures and instead provide more robust error handling
- Creating position objects is now done differently (objects have been encapsulated)
- Server is now just a string (name) rather than an object, and can be retrieved on the fly instead of a future
There's also new API stuff
- You can now make homes and warps through the API, as well as edit them! There's even consumer methods for doing this.
- Some events now have setters and expose different objects to let you do more with them
Please test this release thoroughly! But DO NOT deploy to production just yet until the full release comes out.