Files
fabric-carpet/src/main/java/carpet/mixins/ClientConnectionMixin.java
T
altrisi ec47dea267 Make fake players compatible with adventure platform lib and minor refactor around them (#1235)
* 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
2022-01-19 21:28:36 +01:00

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);
}