diff --git a/src/main/java/com/replaymod/recording/packet/PacketListener.java b/src/main/java/com/replaymod/recording/packet/PacketListener.java index 2fafe7dc..e7236e5b 100644 --- a/src/main/java/com/replaymod/recording/packet/PacketListener.java +++ b/src/main/java/com/replaymod/recording/packet/PacketListener.java @@ -26,6 +26,7 @@ import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; import net.minecraft.client.MinecraftClient; +import net.minecraft.network.ClientConnection; import net.minecraft.network.packet.s2c.play.CustomPayloadS2CPacket; import net.minecraft.network.packet.s2c.play.DisconnectS2CPacket; import net.minecraft.network.packet.s2c.play.ItemPickupAnimationS2CPacket; @@ -339,7 +340,8 @@ public class PacketListener extends ChannelInboundHandlerAdapter { //#if MC>=10800 if (packet instanceof ResourcePackSendS2CPacket) { - save(resourcePackRecorder.handleResourcePack((ResourcePackSendS2CPacket) packet)); + ClientConnection connection = ctx.pipeline().get(ClientConnection.class); + save(resourcePackRecorder.handleResourcePack(connection, (ResourcePackSendS2CPacket) packet)); return; } //#else diff --git a/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java b/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java index 05a219b4..689f2cfd 100644 --- a/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java +++ b/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java @@ -37,7 +37,6 @@ import java.util.concurrent.CompletableFuture; //#else //$$ import com.google.common.util.concurrent.ListenableFuture; //#endif -import net.minecraft.client.network.ClientPlayNetworkHandler; import net.minecraft.network.ClientConnection; //#else //$$ import com.replaymod.core.mixin.ResourcePackRepositoryAccessor; @@ -111,10 +110,8 @@ public class ResourcePackRecorder { } - public synchronized ResourcePackSendS2CPacket handleResourcePack(ResourcePackSendS2CPacket packet) { + public synchronized ResourcePackSendS2CPacket handleResourcePack(ClientConnection netManager, ResourcePackSendS2CPacket packet) { final int requestId = nextRequestId++; - final ClientPlayNetworkHandler netHandler = mc.getNetworkHandler(); - final ClientConnection netManager = netHandler.getConnection(); final String url = packet.getURL(); final String hash = packet.getSHA1(); @@ -138,7 +135,7 @@ public class ResourcePackRecorder { final ServerInfo serverData = mc.getCurrentServerEntry(); if (serverData != null && serverData.getResourcePack() == ServerInfo.ResourcePackState.ENABLED) { netManager.send(makeStatusPacket(hash, Status.ACCEPTED)); - downloadResourcePackFuture(requestId, url, hash); + downloadResourcePackFuture(netManager, requestId, url, hash); } else if (serverData != null && serverData.getResourcePack() != ServerInfo.ResourcePackState.PROMPT) { netManager.send(makeStatusPacket(hash, Status.DECLINED)); } else { @@ -156,7 +153,7 @@ public class ResourcePackRecorder { } if (result) { netManager.send(makeStatusPacket(hash, Status.ACCEPTED)); - downloadResourcePackFuture(requestId, url, hash); + downloadResourcePackFuture(netManager, requestId, url, hash); } else { netManager.send(makeStatusPacket(hash, Status.DECLINED)); } @@ -180,10 +177,10 @@ public class ResourcePackRecorder { ); } - private void downloadResourcePackFuture(int requestId, String url, final String hash) { + private void downloadResourcePackFuture(ClientConnection connection, int requestId, String url, final String hash) { addCallback(downloadResourcePack(requestId, url, hash), - result -> mc.getNetworkHandler().sendPacket(makeStatusPacket(hash, Status.SUCCESSFULLY_LOADED)), - throwable -> mc.getNetworkHandler().sendPacket(makeStatusPacket(hash, Status.FAILED_DOWNLOAD))); + result -> connection.send(makeStatusPacket(hash, Status.SUCCESSFULLY_LOADED)), + throwable -> connection.send(makeStatusPacket(hash, Status.FAILED_DOWNLOAD))); } private