diff --git a/README.md b/README.md index ca56abc..d1fd361 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ # ViaFabric -[![Travis Build Status](https://travis-ci.com/ViaVersion/ViaFabric.svg?branch=master)](https://travis-ci.com/ViaVersion/ViaFabric) [![ViaVersion Discord](https://img.shields.io/badge/chat-on%20discord-blue.svg)](https://viaversion.com/discord) [![CurseForge Downloads](http://cf.way2muchnoise.eu/full_391298_downloads.svg)](https://viaversion.com/fabric) [![CurseForge Versions](http://cf.way2muchnoise.eu/versions/391298.svg)](https://viaversion.com/fabric) @@ -17,75 +16,50 @@ Note: ViaVersion is designed for Vanilla Minecraft servers. It probably will not or registry synchronization (fabric-registry-sync mod). -**1.14+ Dependencies:** - -| Dependency | Download | -| ----------------------------------------- | ------------------------------------------------------------------------------------------ | -| (Bundled 3.2.1 release) ViaVersion 3.2.1+ | https://ci.viaversion.com/job/ViaVersion/ or https://ci.viaversion.com/job/ViaVersion-DEV/ | -| (Bundled) Cotton Client Commands | https://www.curseforge.com/minecraft/mc-mods/cotton-client-commands | -| (Optional) Fabric Command API v1/v0 | https://www.curseforge.com/minecraft/mc-mods/fabric-api | -| (Optional) Fabric Lifecycle Events v1/v0 | https://www.curseforge.com/minecraft/mc-mods/fabric-api | -| Fabric Resource Loader v0 | https://www.curseforge.com/minecraft/mc-mods/fabric-api | - -**1.8.9 Dependencies:** - -| Dependency | Download | -| ----------------------------------------- | ------------------------------------------------------------------------------------------ | -| (Bundled 3.2.1 release) ViaVersion 3.2.1+ | https://ci.viaversion.com/job/ViaVersion/ or https://ci.viaversion.com/job/ViaVersion-DEV/ | -| (Optional) Fabric Commands v0 | https://www.curseforge.com/minecraft/mc-mods/legacy-fabric-api | -| (Optional) Fabric Lifecycle Events v1 | https://www.curseforge.com/minecraft/mc-mods/legacy-fabric-api | -| Fabric Resource Loader v0 | https://www.curseforge.com/minecraft/mc-mods/legacy-fabric-api | - - -With [ViaVersion](https://viaversion.com): -- your server can accept newer versions -- your client can connect to older versions - - -Adding [ViaBackwards](https://viaversion.com/backwards) (and optionally [ViaRewind](https://viaversion.com/rewind)): -- your server can accept older versions -- your client can connect to newer versions +| Dependency | Download | +| --------------------------------------------- | ------------------------------------------------------------------- | +| (Bundled) ViaVersion | https://viaversion.com/ | +| (Bundled) Cotton Client Commands (MC 1.14-15) | https://www.curseforge.com/minecraft/mc-mods/cotton-client-commands | +| Fabric API (MC 1.14+) | https://www.curseforge.com/minecraft/mc-mods/fabric-api | +| Legacy Fabric API (MC 1.8.9) | https://www.curseforge.com/minecraft/mc-mods/legacy-fabric-api | +## ViaVersion **How can I install ViaBackwards/ViaRewind?:** - Just drop them into mods folder. Make sure you are using versions compatible with the ViaVersion version you are using. -- There are reposts on CurseForge: -- https://www.curseforge.com/minecraft/mc-mods/viabackwards -- https://www.curseforge.com/minecraft/mc-mods/viarewind +- CurseForge links: + [ViaBackwards](https://www.curseforge.com/minecraft/mc-mods/viabackwards) + [ViaRewind](https://www.curseforge.com/minecraft/mc-mods/viarewind) **What versions can ViaVersion, ViaBackwards and ViaRewind translate?:** -- Server-side: -[![Graph with ViaVersion supported versions](https://i.imgur.com/0u20Y2u.png)](https://viaversion.com) +- **With [ViaVersion](https://viaversion.com)**: + Your server can accept newer versions. + Your client can connect to older versions. + +- **Adding [ViaBackwards](https://viaversion.com/backwards) (and optionally [ViaRewind](https://viaversion.com/rewind))**: + Your server can accept older versions. + Your client can connect to newer versions. + +- Server-side: See https://viaversion.com/ - Client-side: -| Your Client | 1.8.x | 1.9.x | 1.10-1.14.4 | 1.15.x | 1.16.x | -| ----------- | ----- | ----- | ----------- | ------ | ------ | -| 1.8.9 | ✓ | ⏪ | ⟲ | ⟲ | ⟲ | -| 1.14.x | ✓ | ✓ | ✓ | ⟲ | ⟲ | -| 1.15.x | ✓ | ✓ | ✓ | ✓ | ⟲ | -| 1.16.x | ✓ | ✓ | ✓ | ✓ | ✓ | +| | 1.8.x | 1.9.x | 1.10-1.14.4 | 1.15.x | 1.16.x | 1.17.x | +| ------ | ----- | ----- | ----------- | ------ | ------ | ------ | +| 1.8.9 client | ✓ | ⏪ | ⟲ | ⟲ | ⟲ | ⟲ | +| 1.14.x client | ✓ | ✓ | ✓ | ⟲ | ⟲ | ⟲ | +| 1.15.x client | ✓ | ✓ | ✓ | ✓ | ⟲ | ⟲ | +| 1.16.x client | ✓ | ✓ | ✓ | ✓ | ✓ | ⟲ | +| 1.17.x client | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ = [ViaVersion](https://viaversion.com) ⟲ = [ViaBackwards](https://viaversion.com/backwards) ⏪ = [ViaRewind](https://viaversion.com/rewind) **Can ViaVersion, ViaBackwards and ViaRewind support snapshots?:** -- Check https://ci.viaversion.com/job/ViaVersion-DEV/, https://ci.viaversion.com/job/ViaBackwards-DEV/ and - https://ci.viaversion.com/job/ViaRewind-DEV/ for development builds with snapshot support - - -**Commands**: -- There're 3 server-side alias ``/viaversion``, ``/vvfabric`` and ``/viaver``, and a client-side command - ``/viafabricclient`` for Minecraft 1.14+ (OP permission level 3 is required for these commands, received - by [Entity Status Packet](https://wiki.vg/Entity_statuses#Player)) - - -**Configuration**: -- ViaVersion configuration is available at ``.minecraft/config/viafabric/viaversion.yml`` -- ViaFabric configuration is at ``.minecraft/config/viafabric/viafabric.yml`` - +- Check https://ci.viaversion.com/ for development builds with snapshot support +## Alternatives **Alternatives/similar mods/proxies/plugins:** - [ClientViaVersion](https://github.com/Gerrygames/ClientViaVersion): This discontinued client-side plugin for The 5zig Mod implemented ViaVersion, ViaBackwards and ViaRewind for 1.7.10, 1.8.9, 1.12 and 1.12.2 clients, allowing them to @@ -105,28 +79,43 @@ Adding [ViaBackwards](https://viaversion.com/backwards) (and optionally [ViaRewi **Cool things to try:** -- [Geyser](https://geysermc.org/): Plugins, Fabric mod and a standalone proxy for Bedrock edition translation. +- [Geyser](https://geysermc.org/): Plugins, Fabric mod and a standalone proxy for allowing Bedrock Edition on Java Edition servers. - [PolyMc](https://github.com/TheEpicBlock/PolyMc): Fabric mods which translates modded items and blocks, allowing vanilla to connect using resource packs. +## Commands +**Commands**: +- There're 3 server-side alias ``/viaversion``, ``/vvfabric`` and ``/viaver``, and a client-side command + ``/viafabricclient`` for Minecraft 1.14+ (OP permission level 3 is required for these commands, received + by [Entity Status Packet](https://wiki.vg/Entity_statuses#Player)) + + +## Configs +**Configuration**: +- ViaVersion configuration is available at ``.minecraft/config/viafabric/viaversion.yml`` +- ViaFabric configuration is at ``.minecraft/config/viafabric/viafabric.yml`` + + **How can I disable client-side ViaFabric?:** - You can disable it in the menu or by setting global protocol version to -1 (this will keep per-server translations still enabled) **How to use protocol auto detector?:** -- For using globally, set the protocol to AUTO or -2. For using in a specific server: ddns.example.com._v-2.viafabric -- The protocol auto detector will try to ping with the client native protocol version so if you have ViaVersion or - similar in the server it will use the translator, differently than multiconnect which uses -1 version, +- For using globally, set the protocol to AUTO or -2. For using in a specific server: ``ddns.example.com._v-2.viafabric`` +- The protocol auto detector will try to ping with the client native protocol version. If you have ViaVersion or + similar in the server it may use the translated version, differently than multiconnect which uses -1 version, which may get the native server version. - It may hold your handshake for up to 10 seconds. -- The results are cached for 100 seconds. +- The auto-detected version is cached for 100 seconds. **How can I set the version for specific servers?:** -- Append ._v(VERSION).viafabric. Example: ``minigame.example.com._v1_8.viafabric``, ``native.example.com._v-1.viafabric``, ``auto.example.com._v-2.viafabric`` +- Append ._v(VERSION).viafabric. +- Examples: ``minigame.example.com._v1_8.viafabric``, ``native.example.com._v-1.viafabric``, ``auto.example.com._v-2.viafabric`` +## multiconnect **Does it work with multiconnect at same time on client?:** - Yes, ViaFabric can be used with multiconnect. ViaFabric will send to their version auto detector their closest supported version. (multiconnect beta-supported versions (currently < 1.11) aren't used) @@ -143,8 +132,10 @@ Adding [ViaBackwards](https://viaversion.com/backwards) (and optionally [ViaRewi **Differences with multiconnect:** - ViaFabric main objective is to simply implement a ViaVersion platform +- ViaFabric can be installed on more versions - ViaVersion works kinda of in a "MITM proxy" way - ViaVersion is designed for servers +- multiconnect only supports the latest Minecraft version - multiconnect modifies client code more deeply, reverting movement changes - multiconnect is designed for clients and only works on latest client version - multiconnect is less likely to trigger anticheats diff --git a/build.gradle.kts b/build.gradle.kts index 8f35443..eceed0f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -34,6 +34,7 @@ repositories { maven(url = "https://maven.fabricmc.net/") maven(url = "https://server.bbkr.space/artifactory/libs-snapshot") maven(url = "https://server.bbkr.space/artifactory/libs-release") + maven("https://maven.terraformersmc.com/releases/") } @@ -59,7 +60,7 @@ dependencies { modImplementation("net.fabricmc:fabric-loader:0.11.3") modImplementation("net.fabricmc.fabric-api:fabric-api:0.33.0+1.17") - modImplementation("io.github.prospector:modmenu:1.14.5+build.30") + modImplementation("com.terraformersmc:modmenu:1.16.9") //modImplementation("io.github.cottonmc:cotton-client-commands:1.0.1+1.16-rc1") //include("io.github.cottonmc:cotton-client-commands:1.0.1+1.16-rc1")