3
0
Mirror von https://github.com/ViaVersion/ViaVersion.git synchronisiert 2024-11-16 04:50:08 +01:00
Datei suchen
Gegy 17358120cd
Fix: delay chat acknowledgements instead of spoofing (#3997)
An easy reproduction case is to mute a player using the Social Interactions screen, let them chat, and then send a message. As ViaVersion produces its own acknowledgements, this now does not match with what the client produced and signed its messages with - so the signature will fail verification.

As an alternative, we *always* pass through the same acknowledgement bit set - and for 'spoofed' messages, we reuse the last one that we received. In the case of the chat ack packet with just an offset, we need to hold back the window by at least 20 messages to ensure we don't start making claims about whether the client saw a message that ViaVersion cannot yet make a judgement on.
2024-07-03 10:52:01 +02:00
.github Replace other Bungee references 2024-05-30 21:55:10 +02:00
.idea Update API license headers and scope 2024-01-12 10:21:45 +01:00
api Only print broken json in component type when debug mode is enabled (#3990) 2024-06-28 13:44:31 +02:00
build-logic Don't publish extra modules (#3901) 2024-06-03 15:22:59 +02:00
bukkit Move bukkit-only settings into BukkitViaConfig (#3985) 2024-06-27 09:56:50 +02:00
bukkit-legacy Rename Position to BlockPosition 2024-05-21 13:05:15 +02:00
common Fix: delay chat acknowledgements instead of spoofing (#3997) 2024-07-03 10:52:01 +02:00
compat Move PS compatibility to an addon 2024-05-14 18:54:24 +02:00
fabric Update authors 2024-04-07 20:41:44 +02:00
gradle 5.0.0 Release 2024-06-16 15:46:27 +02:00
licenses Update license headers 2024-01-01 12:39:45 +01:00
template 1.21-pre4 2024-06-12 18:03:51 +02:00
universal Don't publish extra modules (#3901) 2024-06-03 15:22:59 +02:00
velocity Move bukkit-only settings into BukkitViaConfig (#3985) 2024-06-27 09:56:50 +02:00
.editorconfig Apply IJ code reformat, rename rewriter methods, change metadata references to entity data 2024-05-14 20:55:33 +02:00
.gitignore 4.2.0 Release 2022-02-24 09:22:47 +01:00
build.gradle.kts Don't publish extra modules (#3901) 2024-06-03 15:22:59 +02:00
gradle.properties Bump version to 5.0.2-SNAPSHOT 2024-06-25 15:16:36 +02:00
gradlew Update Gradle wrapper 2024-06-01 16:59:26 +02:00
gradlew.bat Update Gradle wrapper 2024-06-01 16:59:26 +02: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 [ci skip] Advertise ViaLoader in README file (#3966) 2024-06-22 11:01:55 +02:00
settings.gradle.kts Move Bungee and Sponge platforms to separate plugins 2024-05-30 21:52:34 +02:00

ViaVersion

Latest Release Build Status Discord

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:

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

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

Releases/Dev Builds

You can find official releases in the following places:

Dev builds for all of our projects are on our Jenkins server:

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

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.