base on Allows of newer clients to connect to older server versions for Minecraft servers. # ViaVersion [![Latest Release](https://img.shields.io/github/v/release/ViaVersion/ViaVersion)](https://viaversion.com) [![Build Status](https://github.com/ViaVersion/ViaVersion/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/ViaVersion/ViaVersion/actions) [![Discord](https://img.shields.io/badge/chat-on%20discord-blue.svg)](https://viaversion.com/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, Sponge, or as a standalone proxy to join from basically any client version on any server version from the past decade. **See [HERE](https://viaversion.com) for an overview of the different Via\* projects.** Note that ViaVersion will be able to **run best on either Paper servers or through [ViaFabricPlus](https://github.com/ViaVersion/ViaFabricPlus?tab=readme-ov-file#viafabricplus)** due to having direct access to client/server state and more extensive API. Supported Versions: ![Table (https://ci.viaversion.com/userContent/images/T.png)](https://ci.viaversion.com/userContent/images/T.png) **User Docs:** https://docs.viaversion.com Snapshot support -------- **ViaVersion will only be released a few days *after* a Minecraft update** unless the protocol changes of the update were trivial. If you want early-access, usually days or even weeks before the final release, you can subscribe to either: - [GitHub Sponsors](https://github.com/sponsors/kennytv/sponsorships?sponsor=kennytv&tier_id=385613&preview=false) (preferred option. Use the `/verify` command on this Discord after), or alternatively - [Patreon](https://www.patreon.com/kennytv/membership) (see the highest tier and make sure to link Patreon to your Discord account under Settings->Connections) This also includes access to a private repository with the code, which will be pushed to the public repository after the given delay on a Minecraft update. 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:** ```xml <repository> <id>viaversion-repo</id> <url>https://repo.viaversion.com</url> </repository> ``` ```xml <dependency> <groupId>com.viaversion</groupId> <artifactId>viaversion-api</artifactId> <version>[5.0.0,6.0.0)</version> <scope>provided</scope> </dependency> ``` **Gradle:** ```kotlin 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](#license). Note: If you want to make your own platform implementation of ViaVersion (and additional addons), you can use the [ViaLoader](https://github.com/ViaVersion/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](https://github.com/ViaVersion/Mappings). The generated mapping output is stored [here](./common/src/main/resources/assets/viaversion). Resources -------- - **[Via Mappings Generator](https://github.com/ViaVersion/Mappings)** - **[Mojang mappings](https://minecraft.wiki/w/Obfuscation_map)** (Thank you, Mojang, very cool) - Previously: **[Burger](https://github.com/Pokechu22/Burger)** (see [PAaaS](https://github.com/Matsv/Paaas)) and **wiki.vg** License -------- The entirety of the [API directory](api) is licensed under the MIT License; see [licenses/MIT.md](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](licenses/GPL.md) for details. Special thanks to all our [Contributors](https://github.com/ViaVersion/ViaVersion/graphs/contributors). ", Assign "at most 3 tags" to the expected json: {"id":"2379","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"