Untitled
unknown
java
a year ago
2.8 kB
9
Indexable
package com.trexmine.guiapi.handlers;
import com.trexmine.guiapi.gui.GuiManager;
import com.trexmine.guiapi.packets.GuiPacketPlayInWindowClick;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.ByteToMessageDecoder;
import io.netty.util.AttributeKey;
import lombok.RequiredArgsConstructor;
import net.minecraft.server.v1_8_R3.*;
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;
import java.lang.reflect.Field;
import java.util.List;
import java.util.UUID;
@RequiredArgsConstructor
public final class ItemsDecoder extends ByteToMessageDecoder {
private static final Logger LOGGER = LogManager.getLogger();
private final GuiManager guiManager;
private final UUID playerUniqueId;
protected void decode(ChannelHandlerContext ctx, ByteBuf buffer, List<Object> packetList) throws Exception {
try {
if (buffer.readableBytes() == 0) {
return;
}
PacketDataSerializer serializer = new PacketDataSerializer(buffer);
int id = serializer.e();
Packet<?> packet;
if (id == 14) {
byte windowId = serializer.getByte(serializer.readerIndex());
if (windowId == guiManager.getId(playerUniqueId)) {
packet = new GuiPacketPlayInWindowClick();
} else {
packet = new PacketPlayInWindowClick();
}
} else {
packet = ctx.channel()
.attr(NetworkManager.c)
.get()
.a(EnumProtocolDirection.SERVERBOUND, id);
}
if (packet == null) {
throw new IOException("Bad packet ID=" + id);
}
packet.a(serializer);
if (serializer.readableBytes() > 0) {
throw new IOException("Packet ID=" + id + " (" + packet.getClass().getSimpleName()
+ ") was larger than I expected, found " + serializer.readableBytes()
+ " bytes extra whilst reading packet " + id
);
}
packetList.add(packet);
if (LOGGER.isDebugEnabled()) {
LOGGER.debug(" IN: [{}:{}] {}",
ctx.channel()
.attr(NetworkManager.c)
.get(),
id,
packet.getClass().getName()
);
}
} catch (Exception e) {
System.out.println(e.getLocalizedMessage());
e.printStackTrace();
}
}
}Editor is loading...
Leave a Comment