This release adds support for Minecraft 1.21.3. You'll also need to update ProtocolLib to
at least version 5.4.0, which is currently only
available as a dev build here.
By taking advantage protocol changes introduced by Mojang in 1.21.3, tours will now look slightly smoother, especially when it comes to rotation (when running 1.21.3+ on both server and client).
Other notes:
- Fixed issue with TAB integration (again), which was caused by author making breaking API changes (again).
- Dropped support for Minecraft 1.17.1.
- Minecraft 1.21.2 is not supported.
This release adds support for Minecraft 1.21.1.
- Added a new
/tour stop <player/all> command (permission:
servertours.commands.stop) that allows you to stop tour playback for other players, or for all players.
- Implemented ability to change
title timings (fade-in, stay, fade-out time) for route points. You can now easily control how long the configurable title that players see upon entering a point is displayed.
For developers:
- These two additions have also gotten corresponding API:
RoutePlaybackEndEvent.EndReason.COMMAND and new methods on RoutePoint to allow
modifying the title timings.
- Added a new
RoutesLoadEvent that is called after route loading is complete (this happens shortly after startup). After this is called you know you can grab any routes you need from the API.
This release adds support for Minecraft 1.21. Make sure to use a suitable ProtocolLib version,
available here.
This updates adds support for Minecraft 1.20.6. Please note, the plugin now
requires Java 21,
even if running on older Minecraft versions.
Make sure to run the correct ProtocolLib version for your Minecraft version. For 1.20.6, it's available
here.
This release adds support for Minecraft 1.20.4. Internally, the chat menu system was also upgraded - but you shouldn't see any difference in game.
This release adds support for Minecraft 1.20.2. Please make sure to use the latest ProtocolLib
dev build, as the version available on Spigot doesn't support 1.20.2 yet.
The integration with TAB was updated.
TAB v3.x.x is no longer supported, only v4.x.x or later will work. This is due to (unnecessary) breaking API changes made by the author of TAB.
Additionally, a new integration with the Vulcan anticheat was added. While players are in the process of viewing a tour, their detections will be disabled.
This release adds support for Minecraft 1.20 & 1.20.1.
Please make sure to use ProtocolLib's
dev build.
Fixed another possible exception which could occur when the player's max health is something smaller than the default 20.
Fixed an error when a player's max health changed while they were in playback or edit mode.
- Fixed compatibility with
PerWorldInventory.
- Removed leftover debug output.
Made improvements related to the 'confirm to continue' setting.'
Improved how the setting behaves when used in combination with interpolate points. Previously, the player would only be paused upon 'exiting' a route point, so for interpolate points this would be when the next point is reached. Tour playback will now pause upon 'entry' of interpolate points which is more intuitive behaviour. The behaviour remains the same for stationary and orbit points.
Additionally, the interpolation playback speed is now eased out and back in when reaching a point that requires the player to confirm to continue. This means players will not stop abruptly at these points anymore.
Bugfixes:
- Fixed setting showing unexpected results when enabled.
- Fixed 'mouse' confirm mode not working.
This release adds support for Minecraft 1.19.4. While ProtocolLib does not officially support 1.19.4 yet, I have not found any issues when running the latest dev build.
- Fixed the chat continue button requiring the edit permission
- Fixed startup error related to config comments on 1.17.1. As a temporary solution, no config.yml or lang.yml comments will be inserted on 1.17.1.
- Fix players losing their invisbility after sneaking
- Fix possible NPE in TAB integration
- Added the option to use
/tour play all to play a tour route for all online players.
- Added
/tour playnear <route> <range> [include self?] - allows you to start playing a tour route for players within a certain range.
- Made
/tour play executable by console & commands blocks. This also applies to the new
/tour playnear command.
- Fixed compatibility with Paper versions after build #174 (their new chunk system).
API changes
- Fixed error when removing a tour which has never been saved to disk
- Added more methods to the RoutePoint interface, including the ability to move the point, modify how long it's visible, and modify title, description, and label
- Added documentation to more methods
Support for Bedrock edition
The plugin now has support for Bedrock players joining through Geyser. Many servers have now expanded their playerbase to include both Java and Bedrock players, and ServerTours can now also accomodate to this.
Lines between interpolate points are now cardinal splines
This means instead of straight lines between interpolate points, you will see lines that smoothly connect between multiple interpolate points. The best way to see this in action is to try it in-game!
Decimal places now supported in edit mode fields
Fields like seconds visible, orbit speed, orbit distance, etc. now all support decimal places. These can be entered by clicking on the number in the chat menu, then typing a decimal number in the prompted command in chat.
Much-improved API
This release comes with many internal changes, which have also resulted in a completely new and much-improved developer API. If you don't use the API, this won't affect you directly - if you do,
please keep in mind this new API is not compatible with 1.x.x. The API has now also been seperated from the implementation code, and an API jar has been made available through my Maven repo. Please check the main store page for more info.
Other changes:
- Most compatibility issues fixed (internal workings of tour viewing system revamped)
- Head rotation when viewing a tour is now less jumpy
- Java 17 is now required (affects ~4.2% of customers)
- Dropped support Minecraft for versions below 1.17.1 (also affects ~4.2% of customers)
- Tour file now saves plugin & schema version
- Camera and editor entities are now registered through NMS and actually exist server-side (although ticking is disabled)
- Different interpolate modes have been removed. The easing function used by an interpolate point is now chosen automatically, depending on it's position in an interpolate point 'chain'. (First point eases in, last point eases out, etc)
This release adds 1.19 support.
Note: the previous release already worked with 1.19, but displayed a console warning on startup as 1.19 was not officially supported yet. This new build simply removes this warning.
This build resolves an error with the current dev/experimental builds of ProtocolLib.
This release adds compatibility with Minecraft 1.18.
Make sure you're using the latest dev build of ProtocolLib, available here.
EDIT: The above no longer applies. Please use ProtocolLib v4.8.0 for Minecraft 1.18.
Fixes the same problem as the previous version, except it also works with the 'exit' trigger instead of just the 'quit' trigger.
- Commands with trigger 'quit' now run after the player has been teleported back to his original position, making it possible to use /tp commands with the quit trigger.
'usePlayerWorld' option
This update introduces a new option for advanced users. When set to true, 'usePlayerWorld' means a route will always be played in the world the player is currently in. This is useful for auto-generated worlds, which you would be able to create a route for normally. This setting can only be enabled in the route .yml file manually, not in-game.
If you make any changes to a route file, reload the plugin completely (server restart), /tour reload won't work. Also make sure to have exited edit mode first, as the file is saved again when this happens, removing any changes you may have made manually to the file while the plugin was running.
Full changelog
- Add 'usePlayerWorld' option (see above)
- Fix point head rotation updating incorrectly after using the 'Move' button
- Fix point head rotation not updating in the editor after using the 'Move' button
- Fix possible NullPointerException in the chat menu system
Summary
Along with a small fix, this updates brings a PlaceholderAPI hook. You can now use placeholders in the title and description of a route point, which will be filled when the player sees it. ServerTours now also adds a couple of placeholders:
- %servertours_route%
- %servertours_point%
- %servertours_numpoints%
- %servertours_percent%
Complete changelog
- Made placeholders resolve in title and description of route points
- Added ServerTours placeholders
- Fixed "java.lang.NoSuchMethodException: java.util.Arrays$ArrayList.<init>()" with ProtocolLib v4.7.0
- Reduced JAR size (193kB -> 129kB, was accidentally including the javadoc in the jar lol)
- Switched build system to Gradle
This update adds support for 1.17.1 and above. There was a protocol change between 1.17 and 1.17.1, which is why the plugin needed to be updated again.
This release implements support for Minecraft 1.17. The version of ProtocolLib available directly on Spigot hasn't been updated to 1.17 yet, so please make sure you're using the
latest dev build on Jenkins instead.
Added new 'keyboard' continue mode. If this mode is selected in the config.yml file, players can continue to the next point by pressing the F key (or whatever they have set as the offhand switch key).
Bugfixes
- Fixed two possible IllegalArgumentExceptions related to the XP progress bar
- Fixed the continue mode not reloading when using /tour reload
Command Triggers
This update introduces the ability to choose between three different triggers for your point commands:
- Enter, which will run the command when the player gets to the point;
- Exit, which will run the command when the player moves to the next point;
- Quit, which will run the command if the player exits the tour at this point.
Since this includes some new translations, you will need to reset your lang.yml file to make it show up properly.
This update adds a new option to the config.yml file, which allows you to put the player into spectator mode during the tour (instead of adventure mode, which remains the default).
While this does have the advantage of hiding your crosshair and XP bar, it may cause issues with chunk loading in some cases. If you are experiencing issues which could be related to this, disable the setting and try again.
- Fix "java.lang.UnsupportedOperationException: The method getUniqueId is not supported for temporary players." error message
- Fix players being able to change their gamemode during a tour
Note
This is a new version of the update I posted earlier (also 1.5.11), however that file had an issue, so I'm just replacing it.
Original update
This update fixes the player having a black screen when they start the tour while being stuck inside a block. It would also sometimes appear when passing through blocks during a tour.
This update fixes the player having a black screen when they start the tour while being stuck inside a block. It would also sometimes appear when passing through blocks during a tour.
- Fix 'Commands are disabled' message when using continue button with commands disabled
- Fix
/tour continue working even when not waiting for user confirmation
- Fixed ConcurrentModificationException occurring in some cases
- Made player watching tours not collide with entities
- Made mobs not target player watching tours
- Fixed the Interpolate mode particle preview overshooting the finish point
This update switches to a new system to make the player invisible, namely the use of entity metadata. Previously, a simple invisibility potion effect was used. This caused some compatibility issues with other plugins however, so starting from this release a different method is used that does not require the use of potion effects.
This update also adds a warning message on startup if your server is running CraftBukkit instead of Spigot or Paper. CraftBukkit is very outdated and not supported.
- Fixed the player not resetting from edit mode properly in some rare cases
- Fixed the legacy data system not converting to the new system (introduced in 1.3.0) if the 'routes' folder did not exist yet
This release fixes an error that would occur when the plugin got disabled. This made it so any players that were still viewing a tour would not get reset properly.
Previously, the point selection menu (paper item in the hotbar) could only hold up to 54 route points, because more than that does not fit in one inventory. This update makes the menu multi-page, allowing for an unlimited amount of route points to be selected with it.
This update fixes an issue where the player would not get teleported back to the correct location (their location before starting the tour) when disconnecting.
Tour progress bar
This release adds the ability to use the XP bar as a progress bar showing how far you are in the tour. This functionality can be enabled/disabled in config.yml. The XP bar will still show up regardless of this setting, due to Minecraft limitations, however it will now be empty to make it less noticeable.
Fix armor and offhand items showing up
Previously, only a player's hotbar was getting cleared while viewing a tour. This has now been expanded to their entire inventory including the offhand and armor. This prevents these items from accidentally showing up during the tour.
- Fixed issue where nearby chunks would not load correctly
- Fixed issue where the camera snapped when loading chunks
- Fixed issue where the player got stuck after finishing the tour
- Tweaked command system
Fixes "java.lang.NoClassDefFoundError: org/bukkit/craftbukkit/libs/jline/internal/Preconditions" when using tour commands on Paper.
Ease In and Ease Out interpolation
Previous versions already contained Ease In-Out interpolate modes. 1.5.0 adds the ability to also use Ease In and Ease Out separately. This can, for example, be used to daisy-chain multiple interpolate points.
Restructured lang.yml for better readability
This release almost completely changes the lang.yml to make it more readable. Because of these large layout changes, you will need to delete your existing lang.yml and reload the plugin to make the file regenerate.
Multi-line descriptions and titles
You can now use \n (the newline seperator) in both the description and title field. In the description field, this means the description message will be split into multiple lines. In the title field, you can use it to set both the title and subtitle (or only one of the two).
QoL improvements
- Added ability to set label in chat menu, to identify points
- Added ability to start preview from every point
- Added config option to enable/disable point warnings
- Improved the way orbit mode starting point is shown
Other changes
- Added config option to disable all commands during tour
- Added config option to disable chat messages during tour
- Improved the way errors are logged during loading
- Bugfix: Do not show particle previews of route points in different worlds
This update adds the 'forceLoad' config option, which makes the plugin attempt to load the area around the current location of the touring player even when this is within render distance.
This fixes some issues with NPCs. These weren't getting loaded in, and this option allows you to fix that. You need to regenerate the config (delete config.yml and reload plugin) for the new option to show up. It is disabled by default.
Note: This is a new version of the update I posted earlier, with some fixes implemented.