package io.github.skippyall.minions.fakeplayer; import io.netty.channel.embedded.EmbeddedChannel; import net.minecraft.network.Connection; import net.minecraft.network.PacketListener; import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.PacketFlow; public class FakeClientConnection extends Connection { public FakeClientConnection(PacketFlow p) { super(p); // compat with adventure-platform-fabric. This does NOT trigger other vanilla handlers for establishing a channel // also makes #isOpen return true, allowing enderpearls to teleport fake players ((ClientConnectionInterface)this).setChannel(new EmbeddedChannel()); } @Override public void setReadOnly() { } @Override public void handleDisconnection() { getPacketListener().onDisconnect(getDisconnectedReason()==null ? Component.literal("Disconnected"): getDisconnectedReason()); } @Override public void setListenerForServerboundHandshake(PacketListener packetListener) { } @Override public void setListener(PacketListener packetListener) { } }