From 43379d2369cccad3ac2cfddb25c30669ad6a6be9 Mon Sep 17 00:00:00 2001 From: creeper123123321 <7974274+creeper123123321@users.noreply.github.com> Date: Sat, 18 Dec 2021 08:07:47 -0300 Subject: [PATCH] fixed injector, don't pretend to be a proxy on server-side --- .../fabric/common/provider/AbstractFabricPlatform.java | 7 ++++++- .../viaversion/fabric/mc114/platform/FabricPlatform.java | 6 ++++++ .../com/viaversion/fabric/mc114/platform/VFLoader.java | 1 - .../viaversion/fabric/mc115/platform/FabricPlatform.java | 6 ++++++ .../com/viaversion/fabric/mc115/platform/VFLoader.java | 1 - .../viaversion/fabric/mc116/platform/FabricPlatform.java | 6 ++++++ .../com/viaversion/fabric/mc116/platform/VFLoader.java | 1 - .../viaversion/fabric/mc117/platform/FabricPlatform.java | 6 ++++++ .../com/viaversion/fabric/mc117/platform/VFLoader.java | 1 - .../viaversion/fabric/mc118/platform/FabricPlatform.java | 6 ++++++ .../com/viaversion/fabric/mc118/platform/VFLoader.java | 1 - .../fabric/mc18/platform/FabricNativeVersionProvider.java | 6 +++++- .../viaversion/fabric/mc18/platform/FabricPlatform.java | 6 ++++++ .../java/com/viaversion/fabric/mc18/platform/VFLoader.java | 1 - 14 files changed, 47 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/viaversion/fabric/common/provider/AbstractFabricPlatform.java b/src/main/java/com/viaversion/fabric/common/provider/AbstractFabricPlatform.java index 6d5957d..3e602d3 100644 --- a/src/main/java/com/viaversion/fabric/common/provider/AbstractFabricPlatform.java +++ b/src/main/java/com/viaversion/fabric/common/provider/AbstractFabricPlatform.java @@ -15,6 +15,7 @@ import com.viaversion.viaversion.libs.gson.JsonObject; import io.netty.channel.EventLoop; import io.netty.util.concurrent.Future; import io.netty.util.concurrent.GenericFutureListener; +import net.fabricmc.api.EnvType; import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.ModContainer; import net.fabricmc.loader.api.Version; @@ -41,11 +42,15 @@ public abstract class AbstractFabricPlatform implements ViaPlatform { } public void init() { + // We'll use it early for ViaInjector + installNativeVersionProvider(); Path configDir = FabricLoader.getInstance().getConfigDir().resolve("ViaFabric"); dataFolder = configDir.toFile(); config = new FabricViaConfig(configDir.resolve("viaversion.yml").toFile()); } + protected abstract void installNativeVersionProvider(); + protected abstract ExecutorService asyncService(); protected abstract EventLoop eventLoop(); @@ -94,7 +99,7 @@ public abstract class AbstractFabricPlatform implements ViaPlatform { @Override public boolean isProxy() { // We kinda of have all server versions - return true; + return FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT; } @Override diff --git a/viafabric-mc114/src/main/java/com/viaversion/fabric/mc114/platform/FabricPlatform.java b/viafabric-mc114/src/main/java/com/viaversion/fabric/mc114/platform/FabricPlatform.java index 951438e..b8e1f9e 100644 --- a/viafabric-mc114/src/main/java/com/viaversion/fabric/mc114/platform/FabricPlatform.java +++ b/viafabric-mc114/src/main/java/com/viaversion/fabric/mc114/platform/FabricPlatform.java @@ -1,6 +1,7 @@ package com.viaversion.fabric.mc114.platform; import com.viaversion.fabric.common.commands.UserCommandSender; +import com.viaversion.fabric.common.platform.NativeVersionProvider; import com.viaversion.fabric.common.provider.AbstractFabricPlatform; import com.viaversion.fabric.common.util.FutureTaskId; import com.viaversion.fabric.common.util.RemappingUtil; @@ -108,6 +109,11 @@ public class FabricPlatform extends AbstractFabricPlatform { return false; // Can't know if it worked } + @Override + protected void installNativeVersionProvider() { + Via.getManager().getProviders().use(NativeVersionProvider.class, new FabricNativeVersionProvider()); + } + @Override protected ExecutorService asyncService() { return ViaFabric.ASYNC_EXECUTOR; diff --git a/viafabric-mc114/src/main/java/com/viaversion/fabric/mc114/platform/VFLoader.java b/viafabric-mc114/src/main/java/com/viaversion/fabric/mc114/platform/VFLoader.java index 4fc8f80..2aec1a6 100644 --- a/viafabric-mc114/src/main/java/com/viaversion/fabric/mc114/platform/VFLoader.java +++ b/viafabric-mc114/src/main/java/com/viaversion/fabric/mc114/platform/VFLoader.java @@ -15,7 +15,6 @@ import com.viaversion.viaversion.protocols.protocol1_9to1_8.providers.MovementTr public class VFLoader implements ViaPlatformLoader { @Override public void load() { - Via.getManager().getProviders().use(NativeVersionProvider.class, new FabricNativeVersionProvider()); Via.getManager().getProviders().use(MovementTransmitterProvider.class, new BungeeMovementTransmitter()); Via.getManager().getProviders().use(VersionProvider.class, new FabricVersionProvider()); diff --git a/viafabric-mc115/src/main/java/com/viaversion/fabric/mc115/platform/FabricPlatform.java b/viafabric-mc115/src/main/java/com/viaversion/fabric/mc115/platform/FabricPlatform.java index 0590e0e..df41d74 100644 --- a/viafabric-mc115/src/main/java/com/viaversion/fabric/mc115/platform/FabricPlatform.java +++ b/viafabric-mc115/src/main/java/com/viaversion/fabric/mc115/platform/FabricPlatform.java @@ -1,6 +1,7 @@ package com.viaversion.fabric.mc115.platform; import com.viaversion.fabric.common.commands.UserCommandSender; +import com.viaversion.fabric.common.platform.NativeVersionProvider; import com.viaversion.fabric.common.provider.AbstractFabricPlatform; import com.viaversion.fabric.common.util.FutureTaskId; import com.viaversion.fabric.common.util.RemappingUtil; @@ -38,6 +39,11 @@ public class FabricPlatform extends AbstractFabricPlatform { return MinecraftClient.getInstance().getServer(); } + @Override + protected void installNativeVersionProvider() { + Via.getManager().getProviders().use(NativeVersionProvider.class, new FabricNativeVersionProvider()); + } + @Override protected ExecutorService asyncService() { return ViaFabric.ASYNC_EXECUTOR; diff --git a/viafabric-mc115/src/main/java/com/viaversion/fabric/mc115/platform/VFLoader.java b/viafabric-mc115/src/main/java/com/viaversion/fabric/mc115/platform/VFLoader.java index 6da3987..602ec4a 100644 --- a/viafabric-mc115/src/main/java/com/viaversion/fabric/mc115/platform/VFLoader.java +++ b/viafabric-mc115/src/main/java/com/viaversion/fabric/mc115/platform/VFLoader.java @@ -15,7 +15,6 @@ import com.viaversion.viaversion.protocols.protocol1_9to1_8.providers.MovementTr public class VFLoader implements ViaPlatformLoader { @Override public void load() { - Via.getManager().getProviders().use(NativeVersionProvider.class, new FabricNativeVersionProvider()); Via.getManager().getProviders().use(MovementTransmitterProvider.class, new BungeeMovementTransmitter()); Via.getManager().getProviders().use(VersionProvider.class, new FabricVersionProvider()); diff --git a/viafabric-mc116/src/main/java/com/viaversion/fabric/mc116/platform/FabricPlatform.java b/viafabric-mc116/src/main/java/com/viaversion/fabric/mc116/platform/FabricPlatform.java index 6983d64..2158cac 100644 --- a/viafabric-mc116/src/main/java/com/viaversion/fabric/mc116/platform/FabricPlatform.java +++ b/viafabric-mc116/src/main/java/com/viaversion/fabric/mc116/platform/FabricPlatform.java @@ -1,6 +1,7 @@ package com.viaversion.fabric.mc116.platform; import com.viaversion.fabric.common.commands.UserCommandSender; +import com.viaversion.fabric.common.platform.NativeVersionProvider; import com.viaversion.fabric.common.provider.AbstractFabricPlatform; import com.viaversion.fabric.common.util.FutureTaskId; import com.viaversion.fabric.common.util.RemappingUtil; @@ -37,6 +38,11 @@ public class FabricPlatform extends AbstractFabricPlatform { return MinecraftClient.getInstance().getServer(); } + @Override + protected void installNativeVersionProvider() { + Via.getManager().getProviders().use(NativeVersionProvider.class, new FabricNativeVersionProvider()); + } + @Override protected ExecutorService asyncService() { return ViaFabric.ASYNC_EXECUTOR; diff --git a/viafabric-mc116/src/main/java/com/viaversion/fabric/mc116/platform/VFLoader.java b/viafabric-mc116/src/main/java/com/viaversion/fabric/mc116/platform/VFLoader.java index b596262..de4300d 100644 --- a/viafabric-mc116/src/main/java/com/viaversion/fabric/mc116/platform/VFLoader.java +++ b/viafabric-mc116/src/main/java/com/viaversion/fabric/mc116/platform/VFLoader.java @@ -15,7 +15,6 @@ import com.viaversion.viaversion.protocols.protocol1_9to1_8.providers.MovementTr public class VFLoader implements ViaPlatformLoader { @Override public void load() { - Via.getManager().getProviders().use(NativeVersionProvider.class, new FabricNativeVersionProvider()); Via.getManager().getProviders().use(MovementTransmitterProvider.class, new BungeeMovementTransmitter()); Via.getManager().getProviders().use(VersionProvider.class, new FabricVersionProvider()); diff --git a/viafabric-mc117/src/main/java/com/viaversion/fabric/mc117/platform/FabricPlatform.java b/viafabric-mc117/src/main/java/com/viaversion/fabric/mc117/platform/FabricPlatform.java index d024295..47c747a 100644 --- a/viafabric-mc117/src/main/java/com/viaversion/fabric/mc117/platform/FabricPlatform.java +++ b/viafabric-mc117/src/main/java/com/viaversion/fabric/mc117/platform/FabricPlatform.java @@ -1,6 +1,7 @@ package com.viaversion.fabric.mc117.platform; import com.viaversion.fabric.common.commands.UserCommandSender; +import com.viaversion.fabric.common.platform.NativeVersionProvider; import com.viaversion.fabric.common.provider.AbstractFabricPlatform; import com.viaversion.fabric.common.util.FutureTaskId; import com.viaversion.fabric.common.util.RemappingUtil; @@ -109,6 +110,11 @@ public class FabricPlatform extends AbstractFabricPlatform { return false; // Can't know if it worked } + @Override + protected void installNativeVersionProvider() { + Via.getManager().getProviders().use(NativeVersionProvider.class, new FabricNativeVersionProvider()); + } + @Override protected ExecutorService asyncService() { return ViaFabric.ASYNC_EXECUTOR; diff --git a/viafabric-mc117/src/main/java/com/viaversion/fabric/mc117/platform/VFLoader.java b/viafabric-mc117/src/main/java/com/viaversion/fabric/mc117/platform/VFLoader.java index 4cd3ffa..8d5570d 100644 --- a/viafabric-mc117/src/main/java/com/viaversion/fabric/mc117/platform/VFLoader.java +++ b/viafabric-mc117/src/main/java/com/viaversion/fabric/mc117/platform/VFLoader.java @@ -15,7 +15,6 @@ import com.viaversion.viaversion.protocols.protocol1_9to1_8.providers.MovementTr public class VFLoader implements ViaPlatformLoader { @Override public void load() { - Via.getManager().getProviders().use(NativeVersionProvider.class, new FabricNativeVersionProvider()); Via.getManager().getProviders().use(MovementTransmitterProvider.class, new BungeeMovementTransmitter()); Via.getManager().getProviders().use(VersionProvider.class, new FabricVersionProvider()); diff --git a/viafabric-mc118/src/main/java/com/viaversion/fabric/mc118/platform/FabricPlatform.java b/viafabric-mc118/src/main/java/com/viaversion/fabric/mc118/platform/FabricPlatform.java index 334dacb..27cd4d6 100644 --- a/viafabric-mc118/src/main/java/com/viaversion/fabric/mc118/platform/FabricPlatform.java +++ b/viafabric-mc118/src/main/java/com/viaversion/fabric/mc118/platform/FabricPlatform.java @@ -1,6 +1,7 @@ package com.viaversion.fabric.mc118.platform; import com.viaversion.fabric.common.commands.UserCommandSender; +import com.viaversion.fabric.common.platform.NativeVersionProvider; import com.viaversion.fabric.common.provider.AbstractFabricPlatform; import com.viaversion.fabric.common.util.FutureTaskId; import com.viaversion.fabric.common.util.RemappingUtil; @@ -109,6 +110,11 @@ public class FabricPlatform extends AbstractFabricPlatform { return false; // Can't know if it worked } + @Override + protected void installNativeVersionProvider() { + Via.getManager().getProviders().use(NativeVersionProvider.class, new FabricNativeVersionProvider()); + } + @Override protected ExecutorService asyncService() { return ViaFabric.ASYNC_EXECUTOR; diff --git a/viafabric-mc118/src/main/java/com/viaversion/fabric/mc118/platform/VFLoader.java b/viafabric-mc118/src/main/java/com/viaversion/fabric/mc118/platform/VFLoader.java index 59dbe02..82a42de 100644 --- a/viafabric-mc118/src/main/java/com/viaversion/fabric/mc118/platform/VFLoader.java +++ b/viafabric-mc118/src/main/java/com/viaversion/fabric/mc118/platform/VFLoader.java @@ -15,7 +15,6 @@ import com.viaversion.viaversion.protocols.protocol1_9to1_8.providers.MovementTr public class VFLoader implements ViaPlatformLoader { @Override public void load() { - Via.getManager().getProviders().use(NativeVersionProvider.class, new FabricNativeVersionProvider()); Via.getManager().getProviders().use(MovementTransmitterProvider.class, new BungeeMovementTransmitter()); Via.getManager().getProviders().use(VersionProvider.class, new FabricVersionProvider()); diff --git a/viafabric-mc18/src/main/java/com/viaversion/fabric/mc18/platform/FabricNativeVersionProvider.java b/viafabric-mc18/src/main/java/com/viaversion/fabric/mc18/platform/FabricNativeVersionProvider.java index cf267a9..513e308 100644 --- a/viafabric-mc18/src/main/java/com/viaversion/fabric/mc18/platform/FabricNativeVersionProvider.java +++ b/viafabric-mc18/src/main/java/com/viaversion/fabric/mc18/platform/FabricNativeVersionProvider.java @@ -7,6 +7,7 @@ import net.fabricmc.api.Environment; import net.fabricmc.loader.api.FabricLoader; import net.minecraft.realms.RealmsSharedConstants; import net.minecraft.server.MinecraftServer; +import net.minecraft.server.ServerMetadata; public class FabricNativeVersionProvider implements NativeVersionProvider { @Override @@ -14,7 +15,10 @@ public class FabricNativeVersionProvider implements NativeVersionProvider { if (FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT) { return getClientProtocol(); } - return MinecraftServer.getServer().getServerMetadata().getVersion().getProtocolVersion(); + + ServerMetadata.Version version = MinecraftServer.getServer().getServerMetadata().getVersion(); + if (version == null) return ProtocolVersion.v1_8.getVersion(); + return version.getProtocolVersion(); } @Environment(EnvType.CLIENT) diff --git a/viafabric-mc18/src/main/java/com/viaversion/fabric/mc18/platform/FabricPlatform.java b/viafabric-mc18/src/main/java/com/viaversion/fabric/mc18/platform/FabricPlatform.java index 0d8d67a..f0d8566 100644 --- a/viafabric-mc18/src/main/java/com/viaversion/fabric/mc18/platform/FabricPlatform.java +++ b/viafabric-mc18/src/main/java/com/viaversion/fabric/mc18/platform/FabricPlatform.java @@ -1,6 +1,7 @@ package com.viaversion.fabric.mc18.platform; import com.viaversion.fabric.common.commands.UserCommandSender; +import com.viaversion.fabric.common.platform.NativeVersionProvider; import com.viaversion.fabric.common.provider.AbstractFabricPlatform; import com.viaversion.fabric.common.util.FutureTaskId; import com.viaversion.fabric.common.util.RemappingUtil; @@ -32,6 +33,11 @@ public class FabricPlatform extends AbstractFabricPlatform { return MinecraftServer.getServer(); } + @Override + protected void installNativeVersionProvider() { + Via.getManager().getProviders().use(NativeVersionProvider.class, new FabricNativeVersionProvider()); + } + @Override protected ExecutorService asyncService() { return ViaFabric.ASYNC_EXECUTOR; diff --git a/viafabric-mc18/src/main/java/com/viaversion/fabric/mc18/platform/VFLoader.java b/viafabric-mc18/src/main/java/com/viaversion/fabric/mc18/platform/VFLoader.java index 73bd8c3..768a78e 100644 --- a/viafabric-mc18/src/main/java/com/viaversion/fabric/mc18/platform/VFLoader.java +++ b/viafabric-mc18/src/main/java/com/viaversion/fabric/mc18/platform/VFLoader.java @@ -15,7 +15,6 @@ import com.viaversion.viaversion.protocols.protocol1_9to1_8.providers.MovementTr public class VFLoader implements ViaPlatformLoader { @Override public void load() { - Via.getManager().getProviders().use(NativeVersionProvider.class, new FabricNativeVersionProvider()); Via.getManager().getProviders().use(MovementTransmitterProvider.class, new BungeeMovementTransmitter()); Via.getManager().getProviders().use(VersionProvider.class, new FabricVersionProvider());