]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/commitdiff
Setup for 1.15.2-Fabric
authorIrtimaled <irtimaled@gmail.com>
Tue, 6 Aug 2019 05:16:12 +0000 (22:16 -0700)
committerIrtimaled <irtimaled@gmail.com>
Tue, 13 Oct 2020 07:04:06 +0000 (00:04 -0700)
25 files changed:
build.gradle
gradle.properties
src/main/java/com/irtimaled/bbor/client/ClientProxy.java
src/main/java/com/irtimaled/bbor/client/ClientRenderer.java
src/main/java/com/irtimaled/bbor/client/Player.java
src/main/java/com/irtimaled/bbor/client/interop/ClientInterop.java
src/main/java/com/irtimaled/bbor/client/interop/FlowerForestHelper.java
src/main/java/com/irtimaled/bbor/client/interop/NBTStructureLoader.java
src/main/java/com/irtimaled/bbor/client/keyboard/KeyListener.java
src/main/java/com/irtimaled/bbor/client/providers/BedrockCeilingProvider.java
src/main/java/com/irtimaled/bbor/client/renderers/AbstractRenderer.java
src/main/java/com/irtimaled/bbor/client/renderers/LineRenderer.java
src/main/java/com/irtimaled/bbor/client/renderers/RenderQueue.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/client/renderers/Renderer.java
src/main/java/com/irtimaled/bbor/common/ReflectionHelper.java
src/main/java/com/irtimaled/bbor/common/interop/CommonInterop.java
src/main/java/com/irtimaled/bbor/common/messages/PayloadBuilder.java
src/main/java/com/irtimaled/bbor/mixin/client/MixinMinecraft.java
src/main/java/com/irtimaled/bbor/mixin/client/renderer/MixinGameRenderer.java
src/main/java/com/irtimaled/bbor/mixin/network/play/client/MixinCCustomPayloadPacket.java
src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSChatPacket.java
src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSChunkDataPacket.java
src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSCommandListPacket.java
src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSCustomPayloadPlayPacket.java
src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSSpawnPositionPacket.java

index 0b9a65110a8cdaf1fddf8ec2c71d0f0b349dd5e5..e8e912f083cc7125018cdacf2b6da7665ff180a5 100644 (file)
@@ -24,7 +24,7 @@ targetCompatibility = 1.8
 
 dependencies {
     minecraft 'com.mojang:minecraft:' + project.mcVersion
-    mappings 'net.fabricmc:yarn:' + project.mcVersion + '+build.16'
+    mappings 'net.fabricmc:yarn:' + project.mcVersion + '+build.9'
     modCompile 'net.fabricmc:fabric-loader:0.8.3+build.196'
 }
 
index a753f0c23fb1ddebdf6f6759c23ae5a488105759..a6f2081d4e7a96773f4f404a781d7e78c687e3ef 100644 (file)
@@ -1,4 +1,4 @@
 name=bbor
 buildVersion=2.4
 # leave a space to reduce merge conflicts on version change
-mcVersion=1.14.4
+mcVersion=1.15.2
index 72a0a819f18cbbe55cfcf497bea1467e2e2fcebe..2716d124c1bbb6715c351c242d62634f34335120 100644 (file)
@@ -7,7 +7,9 @@ import com.irtimaled.bbor.client.gui.SettingsScreen;
 import com.irtimaled.bbor.client.interop.FlowerForestHelper;
 import com.irtimaled.bbor.client.keyboard.Key;
 import com.irtimaled.bbor.client.keyboard.KeyListener;
-import com.irtimaled.bbor.client.providers.*;
+import com.irtimaled.bbor.client.providers.CacheProvider;
+import com.irtimaled.bbor.client.providers.SlimeChunkProvider;
+import com.irtimaled.bbor.client.providers.WorldSpawnProvider;
 import com.irtimaled.bbor.common.BoundingBoxCache;
 import com.irtimaled.bbor.common.CommonProxy;
 import com.irtimaled.bbor.common.EventBus;
index 68788d131418b2d782001d6e94fc1ee18b45b8e9..7cf1418775fcfe294712da71612306eb5d87ab06 100644 (file)
@@ -97,6 +97,17 @@ public class ClientRenderer {
         RenderHelper.afterRender();
     }
 
+    public static void renderDeferred() {
+        RenderHelper.beforeRender();
+        RenderHelper.polygonModeFill();
+        RenderHelper.enableBlend();
+        RenderQueue.renderDeferred();
+        RenderHelper.disableBlend();
+        RenderHelper.enablePolygonOffsetLine();
+        RenderHelper.polygonOffsetMinusOne();
+        RenderHelper.afterRender();
+    }
+
     public static Stream<AbstractBoundingBox> getBoundingBoxes(DimensionId dimensionId) {
         Stream.Builder<AbstractBoundingBox> boundingBoxes = Stream.builder();
         for (IBoundingBoxProvider<?> provider : providers) {
index f6db9a23d4db78c10396627273bd313c82599ed7..f468be0c4d4a4a8359783b24e779805b9e682d91 100644 (file)
@@ -13,9 +13,9 @@ public class Player {
     private static DimensionId dimensionId;
 
     public static void setPosition(double partialTicks, ClientPlayerEntity player) {
-        x = player.prevX + (player.x - player.prevX) * partialTicks;
-        y = player.prevY + (player.y - player.prevY) * partialTicks;
-        z = player.prevZ + (player.z - player.prevZ) * partialTicks;
+        x = player.prevX + (player.getX() - player.prevX) * partialTicks;
+        y = player.prevY + (player.getY() - player.prevY) * partialTicks;
+        z = player.prevZ + (player.getZ() - player.prevZ) * partialTicks;
         dimensionId = DimensionId.from(player.dimension);
     }
 
index 9f3709cb9c57988f53b6425415180069c9c27572..ddd0956675cce8b2c9f8f609d71ccaf9cb974d33 100644 (file)
@@ -33,6 +33,10 @@ public class ClientInterop {
         ClientRenderer.render(DimensionId.from(player.dimension));
     }
 
+    public static void renderDeferred() {
+        ClientRenderer.renderDeferred();
+    }
+
     public static boolean interceptChatMessage(String message) {
         if (message.startsWith("/bbor:")) {
             ClientPlayNetworkHandler connection = MinecraftClient.getInstance().getNetworkHandler();
index 270a29c147ddd4410fc7a1865361c350911a5220..be5189b99f6fcfb75f481583673b1e1b26c0a4e7 100644 (file)
@@ -10,6 +10,7 @@ import net.minecraft.client.MinecraftClient;
 import net.minecraft.util.math.BlockPos;
 import net.minecraft.world.biome.Biomes;
 import net.minecraft.world.gen.feature.DecoratedFeatureConfig;
+import net.minecraft.world.gen.feature.FeatureConfig;
 import net.minecraft.world.gen.feature.FlowerFeature;
 
 import java.util.HashMap;
@@ -21,6 +22,7 @@ public class FlowerForestHelper {
 
     private static final Map<BlockState, Setting<HexColor>> flowerColorMap = new HashMap<>();
     private static final FlowerFeature flowersFeature;
+    private static final FeatureConfig flowersConfig;
 
     static {
         flowerColorMap.put(Blocks.DANDELION.getDefaultState(), ConfigManager.colorFlowerForestDandelion);
@@ -37,12 +39,13 @@ public class FlowerForestHelper {
 
         DecoratedFeatureConfig config = (DecoratedFeatureConfig) Biomes.FLOWER_FOREST.getFlowerFeatures().get(0).config;
         flowersFeature = (FlowerFeature) config.feature.feature;
+        flowersConfig = config.feature.config;
     }
 
     public static Setting<HexColor> getFlowerColorAtPos(Coords coords) {
         int x = coords.getX();
         int z = coords.getZ();
-        BlockState blockState = flowersFeature.getFlowerToPlace(random, new BlockPos(x, coords.getY(), z));
+        BlockState blockState = flowersFeature.getFlowerToPlace(random, new BlockPos(x, coords.getY(), z), flowersConfig);
         return flowerColorMap.get(blockState);
     }
 
index d067a0b2f65dfb772d0d1f053457330c48274896..e3cf56dc91f5f72e40094a891010ed97dd741117 100644 (file)
@@ -1,6 +1,7 @@
 package com.irtimaled.bbor.client.interop;
 
 import com.irtimaled.bbor.common.EventBus;
+import com.irtimaled.bbor.common.ReflectionHelper;
 import com.irtimaled.bbor.common.events.StructuresLoaded;
 import com.irtimaled.bbor.common.models.DimensionId;
 import net.minecraft.nbt.CompoundTag;
@@ -22,6 +23,7 @@ import net.minecraft.world.storage.RegionBasedStorage;
 import java.io.File;
 import java.io.IOException;
 import java.util.*;
+import java.util.function.Function;
 
 class NBTStructureLoader {
     private final DimensionId dimensionId;
@@ -108,7 +110,6 @@ class NBTStructureLoader {
             super(null,
                     0,
                     0,
-                    null,
                     new BlockBox(compound.getIntArray("BB")),
                     0,
                     0);
@@ -137,24 +138,28 @@ class NBTStructureLoader {
         }
 
         @Override
-        public boolean generate(IWorld iWorld, Random random, BlockBox blockBox, ChunkPos chunkPos) {
+        public boolean generate(IWorld iWorld, ChunkGenerator<?> chunkGenerator, Random random, BlockBox blockBox, ChunkPos chunkPos) {
             return false;
         }
     }
 
     private static class ChunkLoader {
+        private static final Function<File, RegionBasedStorage> creator =
+                ReflectionHelper.getPrivateInstanceBuilder(RegionBasedStorage.class, File.class);
+
         private final RegionBasedStorage regionFileCache;
 
         public ChunkLoader(File file) {
-            this.regionFileCache = new RegionBasedStorage(file) {
-            };
+            this.regionFileCache = creator.apply(file);
         }
 
         public CompoundTag readChunk(int chunkX, int chunkZ) throws IOException {
+            if (regionFileCache == null) return null;
             return regionFileCache.getTagAt(new ChunkPos(chunkX, chunkZ));
         }
 
         public void close() throws IOException {
+            if (regionFileCache == null) return;
             regionFileCache.close();
         }
     }
index 2e7d30da0d438b5fcf861fb8b7caeaaee3bc2342..021572ce68b7af049e02b84e908714167c7fb62c 100644 (file)
@@ -16,7 +16,7 @@ public class KeyListener {
     public static final String Category = "Bounding Box Outline Reloaded";
 
     public static void init() {
-        mainWindowHandle = minecraft.window.getHandle();
+        mainWindowHandle = minecraft.getWindow().getHandle();
         GLFW.glfwSetKeyCallback(mainWindowHandle, KeyListener::onKeyEvent);
     }
 
index 3278be4982d9dc79f88775a8fabd27f22486b443..b7c5a37f4a0d07998802980b68f18867cc4f2669 100644 (file)
@@ -2,7 +2,6 @@ package com.irtimaled.bbor.client.providers;
 
 import com.irtimaled.bbor.client.Player;
 import com.irtimaled.bbor.client.config.BoundingBoxTypeHelper;
-import com.irtimaled.bbor.client.config.ConfigManager;
 import com.irtimaled.bbor.client.interop.BedrockCeilingHelper;
 import com.irtimaled.bbor.client.interop.ClientInterop;
 import com.irtimaled.bbor.client.models.BoundingBoxBedrockCeiling;
index 907c0a917ca3f5d389f9e42dc1c57d9206c20120..bd92c2bb3a1bad9fde9a76140575c7b57a78e12a 100644 (file)
@@ -111,13 +111,7 @@ public abstract class AbstractRenderer<T extends AbstractBoundingBox> {
 
     void renderFilledFaces(OffsetPoint min, OffsetPoint max, Color color, int alpha) {
         if (!ConfigManager.fill.get()) return;
-
-        RenderHelper.polygonModeFill();
-        RenderHelper.enableBlend();
-        renderFaces(min, max, color, alpha, Renderer::startQuads);
-        RenderHelper.disableBlend();
-        RenderHelper.enablePolygonOffsetLine();
-        RenderHelper.polygonOffsetMinusOne();
+        RenderQueue.deferRendering(() -> renderFaces(min, max, color, alpha, Renderer::startQuads));
     }
 
     void renderText(OffsetPoint offsetPoint, String... texts) {
index 66f26cc633537129ebf46f63b175c6c0c35d6031..a769ebfe6ac8aa34abf7b44942a6cce8f743ad9d 100644 (file)
@@ -30,16 +30,10 @@ public class LineRenderer extends AbstractRenderer<BoundingBoxLine> {
                 .render();
 
         if (!ConfigManager.fill.get()) return;
-
-        RenderHelper.polygonModeFill();
-        RenderHelper.enableBlend();
-        Renderer.startQuads()
+        RenderQueue.deferRendering(() -> Renderer.startQuads()
                 .setColor(color)
                 .setAlpha(30)
                 .addPoints(cornerPoints)
-                .render();
-        RenderHelper.disableBlend();
-        RenderHelper.enablePolygonOffsetLine();
-        RenderHelper.polygonOffsetMinusOne();
+                .render());
     }
 }
diff --git a/src/main/java/com/irtimaled/bbor/client/renderers/RenderQueue.java b/src/main/java/com/irtimaled/bbor/client/renderers/RenderQueue.java
new file mode 100644 (file)
index 0000000..9f6e68c
--- /dev/null
@@ -0,0 +1,23 @@
+package com.irtimaled.bbor.client.renderers;
+
+import java.util.Queue;
+import java.util.concurrent.ConcurrentLinkedQueue;
+
+public class RenderQueue {
+    private static final Queue<RenderAction> queue = new ConcurrentLinkedQueue<>();
+
+    public static void deferRendering(RenderAction action) {
+        queue.add(action);
+    }
+
+    public static void renderDeferred() {
+        while (!queue.isEmpty()) {
+            queue.poll().render();
+        }
+    }
+
+    @FunctionalInterface
+    public interface RenderAction {
+        void render();
+    }
+}
\ No newline at end of file
index 806731a522b72de0a56ec6e38c05f30affb239fc..104eda470ad4b72c956e0ab4ed82ca5e1e7e1679 100644 (file)
@@ -100,7 +100,7 @@ public class Renderer {
     }
 
     private void tex(double u, double v) {
-        bufferBuilder.texture(u, v);
+        bufferBuilder.texture((float) u, (float) v);
     }
 
     private void color() {
index 29117518e6ff45919db043726dd898fed48eb022..a350d459ba9814dcecd6ea43a369cbaf5f42ae03 100644 (file)
@@ -1,5 +1,6 @@
 package com.irtimaled.bbor.common;
 
+import java.lang.reflect.Constructor;
 import java.lang.reflect.Field;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
@@ -50,4 +51,26 @@ public class ReflectionHelper {
         }
         return true;
     }
+
+    public static <T, R> Function<T, R> getPrivateInstanceBuilder(Class<R> clazz, Class<T> parameter) {
+        Constructor<R> constructor = findConstructor(clazz, parameter);
+        if (constructor == null) return obj -> null;
+
+        constructor.setAccessible(true);
+        return obj -> {
+            try {
+                return (R) constructor.newInstance(obj);
+            } catch (Exception ignored) {
+                return null;
+            }
+        };
+    }
+
+    private static <T> Constructor<T> findConstructor(Class<T> clazz, Class<?>... parameters) {
+        try {
+            return clazz.getDeclaredConstructor(parameters);
+        } catch (NoSuchMethodException ignored) {
+            return null;
+        }
+    }
 }
index 879eba111af42c71cfc1516aceb6064174f76c5b..92ff557530a27c4b6463a135d5bbe306fc3c4176 100644 (file)
@@ -39,7 +39,7 @@ public class CommonInterop {
         ServerPlayNetworkHandler connection = player.networkHandler;
         if (connection == null) return;
 
-        ClientConnection networkManager = connection.connection;
+        ClientConnection networkManager = connection.client;
         if (networkManager.isLocal()) return;
 
         EventBus.publish(new PlayerLoggedIn(new ServerPlayer(player)));
index 831676ca56cd3c45e7ab9d9636c716dec8a527e7..8606a07819a25c49362f53b85435f489a5e34418 100644 (file)
@@ -3,9 +3,9 @@ package com.irtimaled.bbor.common.messages;
 import com.irtimaled.bbor.common.models.Coords;
 import com.irtimaled.bbor.common.models.DimensionId;
 import io.netty.buffer.Unpooled;
+import net.minecraft.client.network.packet.CustomPayloadS2CPacket;
 import net.minecraft.network.Packet;
-import net.minecraft.network.packet.c2s.play.CustomPayloadC2SPacket;
-import net.minecraft.network.packet.s2c.play.CustomPayloadS2CPacket;
+import net.minecraft.server.network.packet.CustomPayloadC2SPacket;
 import net.minecraft.util.Identifier;
 import net.minecraft.util.PacketByteBuf;
 
index ef0643c6fa7e99a0b7e12cd65c8c8dc16ffaa858..27c751de8bab1b30e703c853d04f816f68e0e576 100644 (file)
@@ -18,16 +18,14 @@ public class MixinMinecraft {
     @Shadow
     @Final
     private ResourcePackManager<ClientResourcePackProfile> resourcePackManager;
-    private ClientProxy clientProxy;
 
     @Inject(method = "<init>", at = @At("RETURN"))
     private void constructor(RunArgs configuration, CallbackInfo ci) {
-        clientProxy = new ClientProxy();
-        this.resourcePackManager.registerProvider(new ModPackFinder());
+        new ClientProxy().init();
     }
 
-    @Inject(method = "init", at = @At("RETURN"))
+    @Inject(method = "startTimerHackThread", at = @At("RETURN"))
     private void init(CallbackInfo ci) {
-        clientProxy.init();
+        this.resourcePackManager.registerProvider(new ModPackFinder());
     }
 }
index 9ab3ffcb6fd2c2bf9d6f405a351d5385adb4cb26..b58b9a5fa432d1809b63c1b1fb101ba8d34c74f4 100644 (file)
@@ -2,7 +2,12 @@ package com.irtimaled.bbor.mixin.client.renderer;
 
 import com.irtimaled.bbor.client.interop.ClientInterop;
 import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.render.Camera;
 import net.minecraft.client.render.GameRenderer;
+import net.minecraft.client.render.LightmapTextureManager;
+import net.minecraft.client.render.WorldRenderer;
+import net.minecraft.client.util.math.Matrix4f;
+import net.minecraft.client.util.math.MatrixStack;
 import org.spongepowered.asm.mixin.Final;
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
@@ -10,14 +15,19 @@ import org.spongepowered.asm.mixin.injection.At;
 import org.spongepowered.asm.mixin.injection.Inject;
 import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
 
-@Mixin(GameRenderer.class)
+@Mixin(WorldRenderer.class)
 public class MixinGameRenderer {
     @Shadow
     @Final
     private MinecraftClient client;
 
-    @Inject(method = "renderCenter(FJ)V", at = @At(value = "INVOKE_STRING", target = "Lnet/minecraft/util/profiler/Profiler;swap(Ljava/lang/String;)V", args = "ldc=hand", shift = At.Shift.BEFORE))
-    private void render(float partialTicks, long ignored, CallbackInfo ci) {
+    @Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/debug/DebugRenderer;render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider$Immediate;DDD)V", shift = At.Shift.BEFORE))
+    private void renderFirst(MatrixStack ignored_1, float partialTicks, long ignored_2, boolean ignored_3, Camera ignored_4, GameRenderer ignored_5, LightmapTextureManager ignored_6, Matrix4f ignored_7, CallbackInfo ci) {
         ClientInterop.render(partialTicks, this.client.player);
     }
+
+    @Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WorldRenderer;renderChunkDebugInfo(Lnet/minecraft/client/render/Camera;)V", shift = At.Shift.BEFORE))
+    private void render(MatrixStack ignored_1, float partialTicks, long ignored_2, boolean ignored_3, Camera ignored_4, GameRenderer ignored_5, LightmapTextureManager ignored_6, Matrix4f ignored_7, CallbackInfo ci) {
+        ClientInterop.renderDeferred();
+    }
 }
index 5f595c3adafe0d48cf4114a19064aec89928f30e..b76ad0ff9e6167336c8f6d224c0a79c5a58d86c1 100644 (file)
@@ -3,8 +3,8 @@ package com.irtimaled.bbor.mixin.network.play.client;
 import com.irtimaled.bbor.common.interop.CommonInterop;
 import com.irtimaled.bbor.common.messages.SubscribeToServer;
 import net.minecraft.network.listener.ServerPlayPacketListener;
-import net.minecraft.network.packet.c2s.play.CustomPayloadC2SPacket;
 import net.minecraft.server.network.ServerPlayNetworkHandler;
+import net.minecraft.server.network.packet.CustomPayloadC2SPacket;
 import net.minecraft.util.Identifier;
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
@@ -16,7 +16,7 @@ public class MixinCCustomPayloadPacket {
     @Shadow
     private Identifier channel;
 
-    @Redirect(method = "apply", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/listener/ServerPlayPacketListener;onCustomPayload(Lnet/minecraft/network/packet/c2s/play/CustomPayloadC2SPacket;)V"))
+    @Redirect(method = "apply", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/listener/ServerPlayPacketListener;onCustomPayload(Lnet/minecraft/server/network/packet/CustomPayloadC2SPacket;)V"))
     private void processPacket(ServerPlayPacketListener netHandlerPlayServer, CustomPayloadC2SPacket packet) {
         if (this.channel.toString().equals(SubscribeToServer.NAME)) {
             CommonInterop.playerSubscribed(((ServerPlayNetworkHandler) netHandlerPlayServer).player);
index ec61484668f8bdb2154bdf4b6af03bc561792867..f98d52b5c316c1c45d21e3817f2058ecba09b7fd 100644 (file)
@@ -1,7 +1,7 @@
 package com.irtimaled.bbor.mixin.network.play.server;
 
 import com.irtimaled.bbor.client.interop.ClientInterop;
-import net.minecraft.network.packet.s2c.play.ChatMessageS2CPacket;
+import net.minecraft.client.network.packet.ChatMessageS2CPacket;
 import net.minecraft.text.Text;
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
index 703e23e7c84014f1860ee12c2800d895c2ad00bf..05276828ed1ad2fc244b147b00939ed0f99cc9a5 100644 (file)
@@ -1,8 +1,8 @@
 package com.irtimaled.bbor.mixin.network.play.server;
 
 import com.irtimaled.bbor.client.interop.ClientInterop;
+import net.minecraft.client.network.packet.ChunkDataS2CPacket;
 import net.minecraft.network.listener.ClientPlayPacketListener;
-import net.minecraft.network.packet.s2c.play.ChunkDataS2CPacket;
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
 import org.spongepowered.asm.mixin.injection.At;
index 849615031e25fd9de69dd4f71316f741dc5e34c1..1a4f8d154d01b4a70135cb7e3e7b154b529aab6d 100644 (file)
@@ -3,8 +3,8 @@ package com.irtimaled.bbor.mixin.network.play.server;
 import com.irtimaled.bbor.client.interop.ClientInterop;
 import com.irtimaled.bbor.common.TypeHelper;
 import net.minecraft.client.network.ClientPlayNetworkHandler;
+import net.minecraft.client.network.packet.CommandTreeS2CPacket;
 import net.minecraft.network.listener.ClientPlayPacketListener;
-import net.minecraft.network.packet.s2c.play.CommandTreeS2CPacket;
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.injection.At;
 import org.spongepowered.asm.mixin.injection.Inject;
index 2ed87c3e6ba62f13ec5866bcca8d896cea2f03ca..2bccd1c76c0ba2134b004c907ca9e6b8718c9368 100644 (file)
@@ -6,8 +6,8 @@ import com.irtimaled.bbor.common.messages.InitializeClient;
 import com.irtimaled.bbor.common.messages.PayloadReader;
 import com.irtimaled.bbor.common.messages.SubscribeToServer;
 import net.minecraft.client.network.ClientPlayNetworkHandler;
+import net.minecraft.client.network.packet.CustomPayloadS2CPacket;
 import net.minecraft.network.listener.ClientPlayPacketListener;
-import net.minecraft.network.packet.s2c.play.CustomPayloadS2CPacket;
 import net.minecraft.util.Identifier;
 import net.minecraft.util.PacketByteBuf;
 import org.spongepowered.asm.mixin.Mixin;
@@ -20,7 +20,7 @@ public abstract class MixinSCustomPayloadPlayPacket {
     @Shadow
     private Identifier channel;
 
-    @Redirect(method = "apply", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/listener/ClientPlayPacketListener;onCustomPayload(Lnet/minecraft/network/packet/s2c/play/CustomPayloadS2CPacket;)V"))
+    @Redirect(method = "apply", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/listener/ClientPlayPacketListener;onCustomPayload(Lnet/minecraft/client/network/packet/CustomPayloadS2CPacket;)V"))
     private void processPacket(ClientPlayPacketListener netHandlerPlayClient, CustomPayloadS2CPacket packet) {
         String channelName = channel.toString();
         if (channelName.startsWith("bbor:")) {
index 36afaa96372f4013d53beab3da5422d90ceff9b2..ac684e500aa55fae78b277ce96b0052bdab6badc 100644 (file)
@@ -1,7 +1,7 @@
 package com.irtimaled.bbor.mixin.network.play.server;
 
 import com.irtimaled.bbor.client.interop.ClientInterop;
-import net.minecraft.network.packet.s2c.play.PlayerSpawnPositionS2CPacket;
+import net.minecraft.client.network.packet.PlayerSpawnPositionS2CPacket;
 import net.minecraft.util.math.BlockPos;
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;