Dear SpigotMC Community, It is my pleasure to announce that development builds for the Minecraft 1.14.4 are now available. Hopefully most of you are now familiar with how these releases work, so I will try to be brief with the details, but please still make sure you read this post in its entirety. This is a Development Build The software released today is the product of several months work. Although the API changes are small compared to 1.13, this is not a small release. In fact it is almost as large as 1.13. Accordingly the software has no doubt inherited many bugs from Vanilla and a few of its own, meaning it is not ready for use on a production server. If using this software you must keep backups, and you must be prepared to use them. As always, downgrading is not possible, and successful upgrades from development versions are not assured either. Upgrading Although upgrades from between any two version pairs are technically possible, it is recommended that all upgrades are conducted from 1.13.2. This means that you should first upgrade your world completely on 1.13.2 using the --forceUpgrade server argument, and then do the same on 1.14. A Note on CraftBukkit It has come to my attention that many users are running the craftbukkit.jar produced by BuildTools rather than the spigot.jar. The two different jars exist for a variety of (primarily development-related) reasons, however it must be made clear that Spigot is the supported product on SpigotMC.org. Starting from 1.14 BuildTools will no longer be copying CraftBukkit jars to the output directory, however you may still find them in CraftBukkit/target for the time being. If you feel there is some sort of incompatibility preventing you from using Spigot, then you should treat this is a bug and open a report accordingly. Bug Reports Every release I make a statement about bug reports, and every release people ignore it. This causes a lot of angst, and a lot of wasted time. The hardest part about bug reports is often understanding the nature of the bug, rather than fixing it. If it takes 15 minutes to understand when/where a bug occurs and 5 minutes to fix it, it is only logical and fair that the reporter of a single bug spends those 15 minutes, rather than the developer dealing with potentially hundreds of bugs. Every bug report pertaining to 1.14.4 must follow the instructions below. Failing to do so may result in a ban. If you are unsure about whether you can follow the requirements below, then paste them into the ticket. All bugs which occur on Vanilla must FIRST be reported to https://bugs.mojang.com/. If the issue is serious (eg a crash) then you may also report it to us. All bugs must be tested on the latest version of Vanilla, CraftBukkit, and Spigot. 'latest' is not a version. You must include the output of /version. You must first make sure the bug has not already been reported by checking the list of open 1.14.x bugs: https://hub.spigotmc.org/jira/issues/?filter=12200 Please make one bug report per bug. Do not report multiple bugs in the same report. All bugs must identify the version(s) they occur on. This means that at minimum you must tell us whether the bug affects: Vanilla 1.13.2 Spigot 1.13.2 Vanilla 1.14.4 Spigot 1.14.4 It is also desirable to tell us whether the bug affects: CraftBukkit 1.13.2 CraftBukkit 1.14.4 All bugs must include complete written reproduction steps that may be followed by someone that does not necessarily understand the aspect of Minecraft you are talking about. eg do not assume that the reader understands how to tame and saddle a horse, or build a specific redstone device. Videos may be included, but should only supplement the written information. If your world is causing a crash, then you need to actually upload a copy of your world or at least the relevant parts. All behavioural bugs must be reproducible without any plugins installed on the server. All API bugs must include a reproducer plugin jar and source code that does nothing except the bare minimum to show the bug you are reporting. All feature requests must include an example of how you plan to use that feature. Please strongly consider contributing the feature yourself All bugs should include the amount of time you spent on steps 1-8. Please do follow the above, it saves a lot of time and stress for everyone. Bug Tracker: https://hub.spigotmc.org/jira/ Contributing Developers are encouraged to contribute to the development of our software, particularly if they themselves have encountered a bug or wish to make use of a new feature. Community members are encouraged to donate using the box in the sidebar. Each release is the product of hundreds of hours of work and your continued support helps continue this. API Changes The API changes for this release are small and still subject to change, but the key points are as follows: Entity typing has been brought closer to Vanilla. In particular this means that the class of ARROW is now TippedArrow, whilst the class of SPLASH_POTION is now ThrownPotion. Dummy entities such as WEATHER, COMPLEX_PART and TIPPED_ARROW have been removed, meaning EntityType now implements Keyed. The new Registry class supports unified access to many Keyed types. Villagers and associated events have had minor breaking changes to fit with Vanilla changes. The TravelAgent has been removed as it was too difficult to maintain due to internal changes. It may be added back in the future, but only if it can be implemented in a sustainable manner. Events are now strictly sync or async. A sync event may only be fired from the main server thread, whilst an async event may only be fired from another server thread. Previously only the latter was true. A Note on NMS NMS is not supported API. It has never been and never will be. Whilst we recognise that some things possible with NMS are unlikely to be possible with the API, many things that NMS is used for are possible with the API, or would be possible with very trivial feature requests. Before using NMS for any reason you should carefully consider whether you really need to use it or not. This release was made significantly more difficult due to limited freedom in changing NMS during the previous release cycle. Updates to NMS are a crucial aspect of being able to sustainably and reliably deliver new versions of Spigot. As a developer using NMS you must ensure that your plugin gracefully handles unexpected situations. The only guarantee given about NMS is that CraftMagicNumbers.getMappingsVersion() will be changed if any mappings changes are made (which could be frequently). A Note on Libraries The following libraries are API libraries and available to all plugins. It is intended that they are stable for each major version, and if for some reason they are updated, then it will be to a version where all public, non-beta APIs are compatible with the previous version. Google guava: Same version as used by Vanilla (currently 21.0). Google gson: Same version as used by Vanilla (currently 2.8.0). SnakeYAML: Version 1.23 or compatible Apache Commons Lang: Version 2.6 or compatible Whilst not officially deprecated, users are advised to use Guava or shade in their own updated library such as Apache Commons Lang3. The following libraries are deprecated libraries. They were available as an API library in a previous version, but are now only available at runtime. They will be removed in a future version. json-simple 1.1.1 All users should migrate to Google gson. The following libraries are runtime libraries. They are generally database drivers and are available to all plugins at runtime. mysql-connector-java 5.1.47 MySQL database driver. May be updated to a compatible 5.x series version. sqlite-jdbc 18.104.22.168 SQLite database driver. May be updated to any subsequent version. Accordingly everything else that may or may not be included in spigot.jar is not a supported library. No guarantees are made as to what versions or classes are available, or where they might be located. If you require any other libraries you should shade and relocate them into your plugin jar. If you use Maven Shade's minimizeJar option, only the classes you require will be included, and a tool such as ProGuard may be used to shrink it down even further. Closing Notes As stated above, this release has been in development since last year. It represents the culmination of hundreds of hours of mostly individual effort. There is still a long way to go yet, but if SpigotMC has helped you in any way, shape, or form I encourage you to leave a donation, contribution, or nice message. If nothing else, at least please make sure that any bug reports you may open are polite, clear, specific, and have been tested thoroughly both without plugins and on Vanilla. ~md_5 PS: No, I didn't forget installation instructions, if you don't know how to get it at this point it is not ready for you.