- else if (splitted[0].equalsIgnoreCase("search")) {
- if (splitted.length > 2) {
- String search = joinStringFrom(splitted, 2);
- MapleData data = null;
- MapleDataProvider dataProvider = MapleDataProviderFactory.getDataProvider(new File("wz/String.wz"));
- player.dropMessage("~Searching~ <<Type: " + splitted[1] + " | Search: " + search + ">>");
- if (!splitted[1].equalsIgnoreCase("ITEM")) {
- if (splitted[1].equalsIgnoreCase("NPC")) {
- data = dataProvider.getData("Npc.img");
- } else if (splitted[1].equalsIgnoreCase("MOB")) {
- List<String> retMobs = new LinkedList<String>();
- data = dataProvider.getData("Mob.img");
- List<Pair<Integer, String>> mobPairList = new LinkedList<Pair<Integer, String>>();
- for (MapleData mobIdData : data.getChildren()) {
- int mobIdFromData = Integer.parseInt(mobIdData.getName());
- String mobNameFromData = MapleDataTool.getString(mobIdData.getChildByPath("name"), "NO-NAME");
- mobPairList.add(new Pair<Integer, String>(mobIdFromData, mobNameFromData));
- }
- for (Pair<Integer, String> mobPair : mobPairList) {
- if (mobPair.getRight().toLowerCase().contains(search.toLowerCase())) {
- retMobs.add(mobPair.getLeft() + " - " + mobPair.getRight());
- }
- }
- if (retMobs != null && retMobs.size() > 0) {
- for (String singleRetMob : retMobs) {
- player.dropMessage(singleRetMob);
- }
- } else {
- player.dropMessage("No Mob's Found");
- }
- } else if (splitted[1].equalsIgnoreCase("SKILL")) {
- data = dataProvider.getData("Skill.img");
- } else {
- player.dropMessage("Invalid search.\nSyntax: '/search [type] [name]', where [type] is NPC, MAP, ITEM, MOB, or SKILL.");
- return true;
- }
- List<Pair<Integer, String>> searchList = new LinkedList<Pair<Integer, String>>();
- for (MapleData searchData : data.getChildren()) {
- int searchFromData = Integer.parseInt(searchData.getName());
- String infoFromData = splitted[1].equalsIgnoreCase("MAP") ? MapleDataTool.getString(searchData.getChildByPath("streetName"), "NO-NAME") + " - " + MapleDataTool.getString(searchData.getChildByPath("mapName"), "NO-NAME") : MapleDataTool.getString(searchData.getChildByPath("name"), "NO-NAME");
- searchList.add(new Pair<Integer, String>(searchFromData, infoFromData));
- }
- for (Pair<Integer, String> searched : searchList) {
- if (searched.getRight().toLowerCase().contains(search.toLowerCase())) {
- player.dropMessage(searched.getLeft() + " - " + searched.getRight());
- }
- }
- } else {
- for (Pair<Integer, String> itemPair : MapleItemInformationProvider.getInstance().getAllItems()) {
- if (itemPair.getRight().toLowerCase().contains(search.toLowerCase())) {
- player.dropMessage(itemPair.getLeft() + " - " + itemPair.getRight());
- }
- }
- player.dropMessage("Search Complete.");
- }
- } else {
- player.dropMessage("Invalid search.\nSyntax: '/search [type] [name]', where [type] is NPC, ITEM, MOB, or SKILL.");
- }