c9d6fbfcd0
Most platforms won't ever throw an error and usually ViaVersion shouldn't even load when the server version can't be found. Therefore, I added this bouncer function, so I don't need to try catch my code in ViaLoader/VFP where an exception is never thrown |
||
---|---|---|
.github | ||
.idea | ||
api | ||
build-logic | ||
bukkit | ||
bukkit-legacy | ||
common | ||
compat | ||
fabric | ||
gradle | ||
licenses | ||
template | ||
universal | ||
velocity | ||
.editorconfig | ||
.gitignore | ||
build.gradle.kts | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
README.md | ||
settings.gradle.kts |
ViaVersion
Allows the connection of higher client versions to lower server versions - it works on any platform you can think of.
The base ViaVersion jar runs on Paper and Velocity. We also have projects integrating ViaVersion to run on Fabric, Forge, Bungee, Sponge, or as a standalone proxy to join from basically any client version on any server version from the past decade. See HERE for an overview of the different Via* projects.
Note that ViaVersion will be able to run best on either Paper servers or Fabric clients due to having direct access to client/server state and more extensive API.
Supported Versions:
User Docs: https://docs.viaversion.com/display/VIAVERSION/
Releases/Dev Builds
You can find official releases in the following places:
- Hangar (for our plugins): https://hangar.papermc.io/ViaVersion/ViaVersion
- Modrinth (for our mods): https://modrinth.com/mod/viaversion
- GitHub: https://github.com/ViaVersion/ViaVersion/releases
Dev builds for all of our projects are on our Jenkins server:
- Jenkins: https://ci.viaversion.com
ViaVersion as a Dependency
JavaDocs: https://jd.viaversion.com
Maven:
<repository>
<id>viaversion-repo</id>
<url>https://repo.viaversion.com</url>
</repository>
<dependency>
<groupId>com.viaversion</groupId>
<artifactId>viaversion-api</artifactId>
<version>[5.0.0,6.0.0)</version>
<scope>provided</scope>
</dependency>
Gradle:
repositories {
maven("https://repo.viaversion.com")
}
dependencies {
compileOnly("com.viaversion:viaversion-api:VERSION") // Replace the version
}
If you need access to the existing protocol or platform implementations, use the parent artifact viaversion
.
Please note the differences in licensing.
Note: If you want to make your own platform implementation of ViaVersion (and additional addons), you can use the ViaLoader project.
Building
After cloning this repository, build the project with Gradle by running ./gradlew build
and take the created jar out
of the build/libs
directory.
You need JDK 17 or newer to build ViaVersion.
Mapping Files
Mapping files are generated and managed in our Mappings repository.
Resources
- Via Mappings Generator
- Mojang mappings (Thank you, Mojang, very cool)
- wiki.vg (Used for historic information regarding packet structure, we also contribute back)
- Burger (See PAaaS)
License
The entirety of the API directory (including the legacy API directory) is licensed under the MIT License; see licenses/MIT.md for details.
Everything else, unless explicitly stated otherwise, is licensed under the GNU General Public License v3, including the end-product as a whole; see licenses/GPL.md for details.
Special thanks to all our Contributors.