3
0
Mirror von https://github.com/ViaVersion/ViaVersion.git synchronisiert 2024-07-31 19:38:03 +02:00
Datei suchen
KennyTV 104fa4e29f
Optimize protocol path finding
Not perfect, but better. This prevents the path checks from exponentially increasing (if it weren't for the maxProtocolPathSize fail safe).

By default, a path will never go to a protocol version that puts it farther from the desired server protocol version, even if a path existed.
Otherwise as well as previously, *all* possible paths will be checked until a fitting one is found.

Negative examples if the new boolean is set to true:
    A possible path from 3 to 5 in order of 3->10->5 will be dismissed.
    A possible path from 5 to 3 in order of 5->0->3 will be dismissed.

Negative examples if set to false:
    While searching for a path from 3 to 5, 3->2->1 could be checked first before 3->4->5 is found.
    While searching for a path from 5 to 3, 5->6->7 could be checked first before 5->4->3 is found.

Assuming custom platforms like Bedrock protocol use the normal registering methods, they will have to change the boolean to false to revert to previous behavior (tho still somewhat better optimized).
2021-06-01 18:54:36 +02:00
.github Build script improvements 2021-05-25 09:07:06 +02:00
adventure Build script improvements 2021-05-25 09:07:06 +02:00
api Optimize protocol path finding 2021-06-01 18:54:36 +02:00
api-legacy Move bossbar to new legacy package, since it only works on <1.9 2021-04-28 11:10:16 +02:00
build-logic Silence doclint 2021-05-25 09:07:06 +02:00
bukkit Make packet send methods use the current thread by default 2021-06-01 10:13:49 +02:00
bukkit-legacy Make packet send methods use the current thread by default 2021-06-01 10:13:49 +02:00
bungee Make packet send methods use the current thread by default 2021-06-01 10:13:49 +02:00
common Optimize protocol path finding 2021-06-01 18:54:36 +02:00
fabric Run some optipng (#2482) 2021-05-18 20:46:35 +02:00
gradle Update adventure 2021-05-26 16:37:29 +02:00
java-compat Build script improvements 2021-05-25 09:07:06 +02:00
licenses Split parts of common into api; We are now GPL, api is MIT 2021-03-24 14:02:37 +01:00
sponge Make packet send methods use the current thread by default 2021-06-01 10:13:49 +02:00
sponge-legacy Make packet send methods use the current thread by default 2021-06-01 10:13:49 +02:00
universal Make proper sources jar (#2495) 2021-05-25 09:44:57 +02:00
velocity Make packet send methods use the current thread by default 2021-06-01 10:13:49 +02:00
.gitignore Prepare for 1.0.0 2016-11-13 14:04:56 +00:00
build.gradle.kts Add/change comments 2021-05-29 11:50:07 +02:00
gradle.properties 1.17-pre3 2021-06-01 18:10:53 +02:00
gradlew Switch to indra, attempt to fix shading and universal jar 2021-02-25 09:19:14 +01:00
gradlew.bat *cries in elephant* 2021-02-25 09:18:51 +01:00
LICENSE Split parts of common into api; We are now GPL, api is MIT 2021-03-24 14:02:37 +01:00
README.md Fix README build command (gradlew) (#2489) 2021-05-22 13:37:53 +02:00
settings.gradle.kts Build script improvements 2021-05-25 09:07:06 +02:00

ViaVersion - Spigot, Sponge, BungeeCord, Velocity

Latest Release Build Status Discord

Allows the connection of higher client versions to lower server versions

Supported Versions:

Table (https://i.imgur.com/uDM9HR8.png)

On Paper you may also use ProtocolSupport, but ensure you have the right build for your server version.

User Docs: https://docs.viaversion.com/display/VIAVERSION/

Sources:

wiki.vg (Used for information regarding packet structure, we also contribute back)

Burger (See PAaaS)

OpenNBT

Releases / Dev Builds:

You can find official releases here:

https://www.spigotmc.org/resources/viaversion.19254/history


You can find official dev builds here:

Jenkins: https://ci.viaversion.com

JavaDocs: https://jd.viaversion.com

Maven Repository:

<repository>
    <id>viaversion-repo</id>
    <url>https://repo.viaversion.com</url>
</repository>

API-artifact:

<dependency>
    <groupId>com.viaversion</groupId>
    <artifactId>viaversion-api</artifactId>
    <version>LATEST</version>
    <scope>provided</scope>
</dependency>

Replace the version depending on your needs.

If you need access to the existing protocol or platform implementations, use the parent artifact viaversion. Please note the differences in licensing.

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.

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, including the end product as a whole; see licenses/GPL.md for details.

Special thanks to all our Contributors.