package handling.login.handler; import client.MapleClient; import handling.SendPacketOpcode; import tools.FileoutputUtil; import static tools.FileoutputUtil.CurrentReadable_Time; import tools.StringUtil; import tools.data.input.SeekableLittleEndianAccessor; public class PacketErrorHandler { public static void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { if (slea.available() >= 6L) { slea.skip(6); short badPacketSize = slea.readShort(); slea.skip(4); int pHeader = slea.readShort(); String pHeaderStr = Integer.toHexString(pHeader).toUpperCase(); pHeaderStr = StringUtil.getLeftPaddedStr(pHeaderStr, '0', 4); String op = lookupRecv(pHeader); String from = "\r\n------------------------ " + CurrentReadable_Time() + " ------------------------\r\n"; if (c.getPlayer() != null) { from += "角色: " + c.getPlayer().getName() + " 等级(" + c.getPlayer().getLevel() + ") 职业: " + c.getPlayer().getJobName() + " (" + c.getPlayer().getJob() + ") 地图: " + c.getPlayer().getMapId() + " \r\n"; } String Recv = "" + op + " [" + pHeaderStr + "] (" + (badPacketSize - 4) + ")" + slea.toString(); FileoutputUtil.packetLog(FileoutputUtil.Packet_Error, from + Recv); } } private static String lookupRecv(int val) { for (SendPacketOpcode op : SendPacketOpcode.values()) { if (op.getValue(false) == val) { return op.name(); } } return "UNKNOWN"; } }