use of com.viaversion.fabric.common.handler.FabricDecodeHandler in project ViaFabric by ViaVersion.
the class MixinDebugHud method getLeftText.
@Inject(at = @At("RETURN"), method = "getLeftText")
protected void getLeftText(CallbackInfoReturnable<List<String>> info) {
String line = "[ViaFabric] I: " + Via.getManager().getConnectionManager().getConnections().size() + " (F: " + Via.getManager().getConnectionManager().getConnectedClients().size() + ")";
@SuppressWarnings("ConstantConditions") ChannelHandler viaDecoder = ((MixinClientConnectionAccessor) MinecraftClient.getInstance().getNetworkHandler().getConnection()).getChannel().pipeline().get(CommonTransformer.HANDLER_DECODER_NAME);
if (viaDecoder instanceof FabricDecodeHandler) {
ProtocolInfo protocol = ((FabricDecodeHandler) viaDecoder).getInfo().getProtocolInfo();
if (protocol != null) {
ProtocolVersion serverVer = ProtocolVersion.getProtocol(protocol.getServerProtocolVersion());
ProtocolVersion clientVer = ProtocolVersion.getProtocol(protocol.getProtocolVersion());
line += " / C: " + clientVer + " S: " + serverVer + " A: " + protocol.getUser().isActive();
}
}
info.getReturnValue().add(line);
}
use of com.viaversion.fabric.common.handler.FabricDecodeHandler in project ViaFabric by ViaVersion.
the class MixinMultiplayerServerListPingerListener method onResponseCaptureServerInfo.
@Redirect(method = "onResponse(Lnet/minecraft/network/packet/s2c/query/QueryResponseS2CPacket;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ServerInfo;getIcon()Ljava/lang/String;"))
private String onResponseCaptureServerInfo(ServerInfo serverInfo) {
FabricDecodeHandler decoder = ((MixinClientConnectionAccessor) this.getConnection()).getChannel().pipeline().get(FabricDecodeHandler.class);
if (decoder != null) {
((ViaServerInfo) serverInfo).setViaTranslating(decoder.getInfo().isActive());
((ViaServerInfo) serverInfo).setViaServerVer(decoder.getInfo().getProtocolInfo().getServerProtocolVersion());
}
return serverInfo.getIcon();
}
use of com.viaversion.fabric.common.handler.FabricDecodeHandler in project ViaFabric by ViaVersion.
the class MixinServerNetworkIoChInit method onInitChannel.
@Inject(method = "initChannel", at = @At(value = "TAIL"), remap = false)
private void onInitChannel(Channel channel, CallbackInfo ci) {
if (channel instanceof SocketChannel) {
UserConnection user = new UserConnectionImpl(channel);
new ProtocolPipelineImpl(user);
channel.pipeline().addBefore("encoder", CommonTransformer.HANDLER_ENCODER_NAME, new FabricEncodeHandler(user));
channel.pipeline().addBefore("decoder", CommonTransformer.HANDLER_DECODER_NAME, new FabricDecodeHandler(user));
}
}
use of com.viaversion.fabric.common.handler.FabricDecodeHandler in project ViaFabric by ViaVersion.
the class MixinMultiplayerServerListPingerListener method onResponseCaptureServerInfo.
@Redirect(method = "onResponse(Lnet/minecraft/network/packet/s2c/query/QueryResponseS2CPacket;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ServerInfo;getIcon()Ljava/lang/String;"))
private String onResponseCaptureServerInfo(ServerInfo serverInfo) {
FabricDecodeHandler decoder = ((MixinClientConnectionAccessor) this.getConnection()).getChannel().pipeline().get(FabricDecodeHandler.class);
if (decoder != null) {
((ViaServerInfo) serverInfo).setViaTranslating(decoder.getInfo().isActive());
((ViaServerInfo) serverInfo).setViaServerVer(decoder.getInfo().getProtocolInfo().getServerProtocolVersion());
}
return serverInfo.getIcon();
}
use of com.viaversion.fabric.common.handler.FabricDecodeHandler in project ViaFabric by ViaVersion.
the class MixinServerNetworkIoChInit method onInitChannel.
@Inject(method = "initChannel", at = @At(value = "TAIL"), remap = false)
private void onInitChannel(Channel channel, CallbackInfo ci) {
if (channel instanceof SocketChannel) {
UserConnection user = new UserConnectionImpl(channel);
new ProtocolPipelineImpl(user);
channel.pipeline().addBefore("encoder", CommonTransformer.HANDLER_ENCODER_NAME, new FabricEncodeHandler(user));
channel.pipeline().addBefore("decoder", CommonTransformer.HANDLER_DECODER_NAME, new FabricDecodeHandler(user));
}
}
Aggregations