All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.minecraft.server.PacketEncoder Maven / Gradle / Ivy

package net.minecraft.server;

import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToByteEncoder;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.Marker;
import org.apache.logging.log4j.MarkerManager;

import java.io.IOException;

public class PacketEncoder extends MessageToByteEncoder {
	
	private static final Logger a = LogManager.getLogger();
	private static final Marker b = MarkerManager.getMarker("PACKET_SENT", NetworkManager.b);
	private final EnumProtocolDirection c;
	
	public PacketEncoder(EnumProtocolDirection enumprotocoldirection) {
		this.c = enumprotocoldirection;
	}
	
	protected void a(ChannelHandlerContext channelhandlercontext, Packet packet, ByteBuf bytebuf) throws Exception {
		Integer integer = channelhandlercontext.channel().attr(NetworkManager.c).get().a(this.c, packet);
		
		if (PacketEncoder.a.isDebugEnabled()) {
			PacketEncoder.a.debug(PacketEncoder.b, "OUT: [{}:{}] {}", channelhandlercontext.channel().attr(NetworkManager.c).get(), integer, packet.getClass().getName());
		}
		
		if (integer == null) {
			throw new IOException("Can't serialize unregistered packet");
		} else {
			PacketDataSerializer packetdataserializer = new PacketDataSerializer(bytebuf);
			
			packetdataserializer.b(integer);
			
			try {
				packet.b(packetdataserializer);
			} catch (Throwable throwable) {
				PacketEncoder.a.error(throwable);
			}
			
		}
	}
	
	protected void encode(ChannelHandlerContext channelhandlercontext, Packet object, ByteBuf bytebuf) throws Exception {
		this.a(channelhandlercontext, object, bytebuf);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy