* Make fake players compatible with adventure platform and minor refactor around them Cleaner approach * Remove no longer needed enderpearl mixin for fake players Their ClientConnection now has an open channel so isOpen returns true
39 lines
1.5 KiB
Java
39 lines
1.5 KiB
Java
package carpet.mixins;
|
|
|
|
import carpet.fakes.ClientConnectionInterface;
|
|
import carpet.logging.logHelpers.PacketCounter;
|
|
import io.netty.channel.Channel;
|
|
import io.netty.channel.ChannelHandlerContext;
|
|
import io.netty.util.concurrent.Future;
|
|
import io.netty.util.concurrent.GenericFutureListener;
|
|
import net.minecraft.network.ClientConnection;
|
|
import net.minecraft.network.Packet;
|
|
import org.spongepowered.asm.mixin.Mixin;
|
|
import org.spongepowered.asm.mixin.gen.Accessor;
|
|
import org.spongepowered.asm.mixin.injection.At;
|
|
import org.spongepowered.asm.mixin.injection.Inject;
|
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
|
|
|
@Mixin(ClientConnection.class)
|
|
public abstract class ClientConnectionMixin implements ClientConnectionInterface
|
|
{
|
|
// Add to the packet counter whenever a packet is received.
|
|
@Inject(method = "channelRead0", at = @At("HEAD"))
|
|
private void packetInCount(ChannelHandlerContext channelHandlerContext_1, Packet<?> packet_1, CallbackInfo ci)
|
|
{
|
|
PacketCounter.totalIn++;
|
|
}
|
|
|
|
// Add to the packet counter whenever a packet is sent.
|
|
@Inject(method = "sendImmediately", at = @At("HEAD"))
|
|
private void packetOutCount(Packet<?> packet_1,
|
|
GenericFutureListener<? extends Future<? super Void>> genericFutureListener_1, CallbackInfo ci)
|
|
{
|
|
PacketCounter.totalOut++;
|
|
}
|
|
|
|
@Override
|
|
@Accessor //Compat with adventure-platform-fabric
|
|
public abstract void setChannel(Channel channel);
|
|
}
|