Don't copy (and allocate) ByteBuf when reading Carpet packets

Should fix #1589
This commit is contained in:
altrisi authored and GitHub committed 2022-11-10 13:14:03 +01:00
1 parent 1466006638
commit 48c804fcaa
1 file changed
+1 -3
@@ -2,7 +2,6 @@ package carpet.mixins;
import carpet.network.CarpetClient; import carpet.network.CarpetClient;
import carpet.network.ServerNetworkHandler; import carpet.network.ServerNetworkHandler;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.protocol.PacketUtils; import net.minecraft.network.protocol.PacketUtils;
import net.minecraft.network.protocol.game.ServerGamePacketListener; import net.minecraft.network.protocol.game.ServerGamePacketListener;
import net.minecraft.network.protocol.game.ServerboundCustomPayloadPacket; import net.minecraft.network.protocol.game.ServerboundCustomPayloadPacket;
@@ -29,9 +28,8 @@ public class ServerGamePacketListenerImplMixin
// We should force onto the main thread here // We should force onto the main thread here
// ServerNetworkHandler.handleData can possibly mutate data that isn't // ServerNetworkHandler.handleData can possibly mutate data that isn't
// thread safe, and also allows for client commands to be executed // thread safe, and also allows for client commands to be executed
// [TODO] need to investigate if that is actually an issue since carpet doesn't fiddle with its packets.
PacketUtils.ensureRunningOnSameThread(packet, (ServerGamePacketListener) this, player.getLevel()); PacketUtils.ensureRunningOnSameThread(packet, (ServerGamePacketListener) this, player.getLevel());
ServerNetworkHandler.handleData(new FriendlyByteBuf(packet.getData().copy()), player); ServerNetworkHandler.handleData(packet.getData(), player);
ci.cancel(); ci.cancel();
} }
} }