1.21 client support!
### Java 17 requirement
- See https://docs.papermc.io/misc/java-install on how to update your Java version
- Even Minecraft 1.8 is *mostly* able to run on Java 17, although for a better experience you should use a fork that fixes smaller issues
- Some older versions require the `Paper.IgnoreJavaVersion` system property to be set (`-DPaper.IgnoreJavaVersion=true` as a startup flag), but run perfectly fine using Java 17
- If all else fails, use the [Java 8 compatibility builds we provide](https://ci.viaversion.com/job/ViaVersion-Java8/) at risk of not receiving support for issues it could cause - you should not make yourself depend on these *too* much, they will generally only be updated on releases
### Other important changes
The main ViaVersion jar no longer supports Bungee and Sponge, they have been moved to separate plugins. Sponge has seen almost no usage and the current Bungee platform is pretty broken due to missing injection points, + Bungee has generally been unusable for weeks after every recent Minecraft update.
- Bungee/Waterfall support has been moved to: https://hangar.papermc.io/ViaVersion/ViaBungee (currently still not working)
- ViaVersion (and other Via plugins if wanted) need to be put into `plugins/ViaVersion/` for ViaBungee to load them
- Sponge support has been moved to: https://modrinth.com/plugin/viasponge
- ViaVersion (and other Via plugins if wanted) need to be put into `config/viaversion/` for ViaSponge to load them
- ProtocolSupport compatibility has been moved to an [addon](https://github.com/ViaVersionAddons/ProtocolSupportCompat), since PS has been dead for a while and VR+VB are generally more usable across versions now
The config option `checkforupdates` has been changed to `check-for-updates`; you will need to toggle the new value manually if you had toggled the old one.
### API changes
- `Type` instances are now held in `Types` to prevent classloading issues
- Packet sending/receiving related methods are no longer spammed with `throws Exception`
- Packet type names, among others, have changed to reflect vanilla names
- For automated mass-replacement of such renames and package changes (mostly for platforms implementing ViaVersion), see https://gist.github.com/kennytv/5bc5bd6efb4c0a07e8a2020f2f2131b7
- Removed a number of deprecated methods
### Fixes and other changes
- Added `handle-invalid-item-count` config option to gracefully handle items with invalid stack sizes in 1.20.3->1.20.5 (by EnZaXD)
- Added `viaversion player <*/playername>` subcommand to view protocol info of a specific player (by EnZaXD)
- Ignore invalid chunk entities in 1.20.3->1.20.5
- Fixed issues with thrown projectiles for 1.20.5 clients on 1.19 servers and older
- Fixed various issues due to missing tags (by RK_01)
- Fixed various block entity tags in 1.20.3->1.20.5 (by EnZaXD)
- Fixed conversion of firework tags without explosions in 1.20.3->120.5 (by EnZaXD)
- Fixed positionless lodestone tracker conversion (by EnZaXD and Pantera07)
- Fixed painting items with specific variant tags in 1.20.3->1.20.5
- Fixed villager trade handling when they contain empty items in 1.20.3->1.20.5
- Fixed various issues in show_item conversion in 1.20.3->1.20.5 (by EnZaXD)
- Fixed items with custom names not being italic sometimes in 1.12.2->1.13 (by EnZaXD)
- Changed logs/warnings to include the relevant version (by EnZaXD)
- Fixed book signing in 1.8->1.9 (by EnZaXD)
- Fixed block place sounds playing twice in 1.8->1.9 (by EnZaXD)
- Small fixes to edge cases in data parsing in various versions (by EnZaXD)
- Backup negative item amounts in 1.10->1.11 for creative mode clients (by EnZaXD)
- Changed `viaversion displayleaks` subcommand to be able to set detection level (by EnZaXD)
... and more
If you want to get larger version updates early, consider supporting me via https://viaversion.com/donate. See the [previous update notes](https://github.com/ViaVersion/ViaVersion/releases/tag/4.9.3) for more info.
Optional dependencies
ViaFabric
Any compatible version
ViaFabricPlus
Any compatible version
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }