public void parse() { String fileName = "npcinfo_" + sessionName + ".txt"; try { BufferedWriter out = new BufferedWriter(new FileWriter(fileName)); for (DataPacket packet : packets) { String name = packet.getName(); if ("SM_NPC_INFO".equals(name)) { List<ValuePart> valuePartList = packet.getValuePartList(); NpcInfo npc = new NpcInfo(); for (ValuePart valuePart : valuePartList) { String partName = valuePart.getModelPart().getName(); if ("npcId".equals(partName)) { npc.npcId = Integer.parseInt(valuePart.readValue()); } else if ("titleId".equals(partName)) { npc.titleId = Integer.parseInt(valuePart.readValue()); } else if ("nameId".equals(partName)) { npc.nameId = Integer.parseInt(valuePart.readValue()); } else if ("npcMaxHP".equals(partName)) { npc.npcMaxHp = Integer.parseInt(valuePart.readValue()); } else if ("npclevel".equals(partName)) { npc.npcLevel = Byte.parseByte(valuePart.readValue()); } else if ("npcTemplateHeight".equals(partName)) { npc.npcTemplateHeight = Float.parseFloat(valuePart.readValue()); } } npcInfoList.add(npc); } } out.write("npcId\ttitleId\tnameId\tnpcMaxHp\tnpcLevel\tnpcTemplateHeight\n"); for (NpcInfo npc : npcInfoList) { StringBuilder sb = new StringBuilder(); sb.append(npc.npcId); sb.append("\t"); sb.append(npc.titleId); sb.append("\t"); sb.append(npc.nameId); sb.append("\t"); sb.append(npc.npcMaxHp); sb.append("\t"); sb.append(npc.npcLevel); sb.append("\t"); sb.append(npc.npcTemplateHeight); sb.append("\t"); sb.append("\n"); out.write(sb.toString()); } out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } PacketSamurai.getUserInterface().log("The npc infos have been written"); }