package handling.login.handler; import client.MapleCharacter; import client.MapleClient; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import tools.data.input.SeekableLittleEndianAccessor; import tools.packet.LoginPacket; public class ViewCharHandler { public static void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { Map<Byte, List> worlds = new HashMap(); List<MapleCharacter> chars = c.loadCharacters(0); c.getSession().write(LoginPacket.showAllCharacter(chars.size())); for (MapleCharacter chr : chars) { if (chr != null) { ArrayList chrr; if (!worlds.containsKey(chr.getWorld())) { chrr = new ArrayList(); worlds.put(chr.getWorld(), chrr); } else { chrr = (ArrayList) worlds.get(chr.getWorld()); } chrr.add(chr); } } for (Map.Entry w : worlds.entrySet()) { c.getSession().write(LoginPacket.showAllCharacterInfo(((Byte) w.getKey()), (List) w.getValue(), c.getSecondPassword())); } } }