HuskHomes v3.0 - Rewrite, new menus, global respawning, new hooks, API & more!
by WiIIiam278 on Sep 6, 2022⚠️ Upgrading from v2.11.2? Follow these steps!
HuskHomes v3.0—the third major version of HuskHomes—is now available. It's a complete rewrite of the plugin which brings about a brand new backend database schema and system, an all-new frontend menu design and chat interface, new features, upgrades to existing ones, a new developer API and many small tweaks and improvements!
New features & changes
- The plugin menus have been redesigned—from list menus, to edit menus, to teleport request prompts. The brand new menus follow the same new design scheme used in HuskSync v2.0.
- The navigation of home, warp, public home and command lists has been improved with new page jumper buttons on page footers
- Commands now have new permission nodes for better consistency.
- Permission nodes for bypassing checks have been changed for better consistency.
- Added a permission node to let you bypass economy checks (#173)
- Added a config option and permission node to let you limit how many homes a user can make public
- Added a config option to disable sound effects altogether
- Added a config option to enable/disable the "return-by-death" feature on the
/back
command that lets players return to where they died - Added a config option to determine whether players' last positions, used in the
/back
command, will be set when theTeleportEvent
is fired for players, except by NPCs, for example by other plugins. - Added a config option to enable/disable strict
/tpahere
functionality - Added a config option to let you allow the use of unicode characters in home names and descriptions in aid of international users (#156).
- Added the ability to enable global respawning on cross-server setups (#123). This is an experimental feature that tracks where players died globally and attempts to respawn them at their bed. You will need to set a local /spawn position on each server first, then enable this in the config file. It has some caveats/downsides/inconsistencies and will be improved in the future, but it should help server owners get a step closer to a seamless cross-server experience.
- The plugin now accurately keeps track of online players in cross-server setups, meaning it is no longer possible to send teleport requests to invalid players. TAB completion has been improved as a result.
- The random teleport command now uses a gaussian distribution algorithm to serve random locations with a better distribution. New config options have been added to let you fine-tune this to your liking.
- The teleport command now lets you teleport a player other than yourself (
/tp <player> [destination]
). A new permission node has been added to restrict this. - It is now possible to teleport to—but not send teleport requests to—yourself with teleport commands
- A permission node has been added for using the teleport command to teleport to a set of coordinates
- The teleport command now accepts the
@s
selector for teleporting yourself, reducing friction when using vanilla commands such as the/minecraft:locate
command. - The
/tpall
and/tpaall
commands now inform you of how many players you have teleported/requested to teleport to you. - Commands are now offered with modern Brigadier rich syntax highlighting for users on Paper servers
- Added a config section to let you disable commands. Commands added to the
disabled_commands
list will be unable to be used and show an error when you attempt to use them. This is useful for lightweight setups where you would rather not use a permissions plugin. - You can now view lists of a player's homes, server public homes, warps and commands through console
- You can now randomly teleport a player through console (
rtp <player>
) - You can now execute teleports through console (
tp <player> [target]
) - Warping a player through console now works for any player on the network in cross-server setups, not just online players on the server it was executed from.
- You can now teleport a player to a public home through console (
phome <player> <[owner_name].[home_name]>
) - Added a hook with Plan (Player Analytics) that allows you to view some statistics about users' HuskHomes homes on your Plan web panel.
- Dynmap: Updated the appearance of HuskHomes' Marker icons. Markers now also show the icon in the popup information box.
- BlueMap: Updated the appearance of HuskHomes' Marker icons and updated to depend on BlueMap's v2 API, which brings support for newer versions of BlueMap.
- Removed support for SquareMap/Pl3xMap due to poor stability and API inconsistencies following the original v1's discontinuation. Support for the new Pl3xMap v2 by the original author, will be re-added in the future when its' API is more stable.
- Removed the ability to force-teleport a player to the spawn point, for now, due to compatibility issues.
- Removed the config option to handle vanished players for implementation consistency; they are now always handled. Sending a teleport request to a vanished player will act as though they could not be found.
- Removed the config section for configuring how TAB completions on cross-server setups works; the plugin now has new and more accurate tracking and caching of global player lists.
- Removed the need to manually set the name of the server in the config file for users with cross-server setups. HuskHomes will automatically fetch and cache this to a
server.yml
file when the first user joins. - Removed the local spawn position section from the config file; this is now saved separately in a
spawn.yml
file. For global spawn positions on cross-server setups, a warp is still used as before. - Temporarily removed the collection of a few specific bStats metrics, to be re-added in a future update.
- Fixed an issue that meant the SQLite database could get locked in certain circumstances (#148). HuskHomes's new database system now uses a single connection to SQLite databases and pooling for MySQL connections.
- Fixed an oversight that meant home privacy toggle buttons would appear in the home menu even if a user did not have permission to do so. (#157)
- Updated the Italian (it-it) locales, courtesy of Villag3r1. Locale files need updating for all other languages, though, as over 2/3rds of the locales have changed with the new menu scheme. If you'd like to help translate HuskHomes, please submit a pull request!
Developers
- A new Developer API (v3) has been added. Note that plugins that target HuskHomes v2 API are not compatible with HuskHomes v3.x due to the plugin being a complete top-to-bottom rewrite. The API is available on Jitpack. Please check out the new API docs and Javadocs for more information!
- Added new API events for teleporting and viewing home lists, and renamed and updated old ones
- Added the ability for developers to provide custom Random Teleportation engines to customise the functionality of the
/rtp
command. - The plugin is now built with gradle and has a modular, cross-platform design. Contributions welcome!
Add-ons & Placeholders
The following add-ons have been updated to support HuskHomes v3.x. Please download the new versions:
- HuskHomesPlaceholders (the PlaceholderAPI expansion, available on the PlaceholderAPI eCloud) — v2.0+
- Please note some placeholders have changed and others added. Please check the new list.
- HuskHomesGUI (the GUI add-on plugin) — v2.0+
My other plugins, HuskBungeeRTP and HuskTowns will be updated in due course to make use of this new update. Please sit tight!
If you're updating from HuskHomes v2.x, please follow these steps to upgrade. HuskHomes v3.x has been designed to be as easy to upgrade as possible, so for most people this will amount to just dragging and dropping the plugin and deleting the old messages file.
The plugin documentation has been rewritten for v3.0—please have a read!
HuskHomes v3.0 supports Minecraft 1.16.5 - Minecraft 1.19.x
Thank you!
Update README.md