diff --git a/tools/MapleMapFieldLimitChecker/src/maplemapfieldlimitchecker/MapleMapFieldLimitChecker.java b/src/main/java/tools/mapletools/MapFieldLimitChecker.java
similarity index 52%
rename from tools/MapleMapFieldLimitChecker/src/maplemapfieldlimitchecker/MapleMapFieldLimitChecker.java
rename to src/main/java/tools/mapletools/MapFieldLimitChecker.java
index 657ca2ebc4..da54249d97 100644
--- a/tools/MapleMapFieldLimitChecker/src/maplemapfieldlimitchecker/MapleMapFieldLimitChecker.java
+++ b/src/main/java/tools/mapletools/MapFieldLimitChecker.java
@@ -1,56 +1,25 @@
-/*
- This file is part of the HeavenMS MapleStory Server
- Copyleft (L) 2016 - 2018 RonanLana
+package tools.mapletools;
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as
- published by the Free Software Foundation version 3 as published by
- the Free Software Foundation. You may not use, modify or distribute
- this program under any other version of the GNU Affero General Public
- License.
+import provider.wz.WZFiles;
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see .
-*/
-package maplemapfieldlimitchecker;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStreamReader;
-import java.io.IOException;
-import java.io.PrintWriter;
+import java.io.*;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
/**
- *
* @author RonanLana
- *
- This application seeks from the XMLs all mapid entries that holds the specified
- fieldLimit.
+ *
+ * This application seeks from the XMLs all mapid entries that holds the specified
+ * fieldLimit.
*/
-public class MapleMapFieldLimitChecker {
-
- static String newFile = "lib/Report.txt";
- static String outputWzPath = "lib";
- static PrintWriter printWriter = null;
- static InputStreamReader fileReader = null;
- static BufferedReader bufferedReader = null;
-
- static String wzPath = "../../wz";
- static int initialStringLength = 50;
- static int itemFileNameSize = 13;
-
- static int fieldLimit = 0x400000;
-
- static byte status = 0;
- static int mapid = 0;
-
+public class MapFieldLimitChecker {
+ private static final int INITIAL_STRING_LENGTH = 50;
+ private static final int FIELD_LIMIT = 0x400000;
+
+ private static BufferedReader bufferedReader = null;
+ private static byte status = 0;
+ private static int mapid = 0;
+
private static String getName(String token) {
int i, j;
char[] dest;
@@ -60,13 +29,13 @@ public class MapleMapFieldLimitChecker {
i = token.indexOf("\"", i) + 1; //lower bound of the string
j = token.indexOf("\"", i); //upper bound
- dest = new char[initialStringLength];
+ dest = new char[INITIAL_STRING_LENGTH];
token.getChars(i, j, dest, 0);
d = new String(dest);
- return(d.trim());
+ return (d.trim());
}
-
+
private static String getValue(String token) {
int i, j;
char[] dest;
@@ -76,35 +45,33 @@ public class MapleMapFieldLimitChecker {
i = token.indexOf("\"", i) + 1; //lower bound of the string
j = token.indexOf("\"", i); //upper bound
- dest = new char[initialStringLength];
+ dest = new char[INITIAL_STRING_LENGTH];
token.getChars(i, j, dest, 0);
d = new String(dest);
- return(d.trim());
+ return (d.trim());
}
-
+
private static void forwardCursor(int st) {
String line = null;
try {
- while(status >= st && (line = bufferedReader.readLine()) != null) {
+ while (status >= st && (line = bufferedReader.readLine()) != null) {
simpleToken(line);
}
- }
- catch(Exception e) {
+ } catch (Exception e) {
e.printStackTrace();
}
}
private static void simpleToken(String token) {
- if(token.contains("/imgdir")) {
+ if (token.contains("/imgdir")) {
status -= 1;
- }
- else if(token.contains("imgdir")) {
+ } else if (token.contains("imgdir")) {
status += 1;
}
}
-
+
private static void listFiles(String directoryName, ArrayList files) {
File directory = new File(directoryName);
@@ -118,65 +85,62 @@ public class MapleMapFieldLimitChecker {
}
}
}
-
+
private static int getMapIdFromFilename(String name) {
try {
- return Integer.valueOf(name.substring(0, name.indexOf('.')));
- } catch(Exception e) {
+ return Integer.parseInt(name.substring(0, name.indexOf('.')));
+ } catch (Exception e) {
return -1;
}
}
-
+
private static void translateToken(String token) {
- if(token.contains("/imgdir")) {
+ if (token.contains("/imgdir")) {
status -= 1;
- }
- else if(token.contains("imgdir")) {
+ } else if (token.contains("imgdir")) {
status += 1;
-
+
if (status == 2) {
String d = getName(token);
if (!d.contentEquals("info")) {
forwardCursor(status);
}
}
- }
- else {
+ } else {
if (status == 2) {
String d = getName(token);
-
+
if (d.contentEquals("fieldLimit")) {
- int value = Integer.valueOf(getValue(token));
- if ((value & fieldLimit) == fieldLimit) {
+ int value = Integer.parseInt(getValue(token));
+ if ((value & FIELD_LIMIT) == FIELD_LIMIT) {
System.out.println(mapid + " " + value);
}
}
}
}
}
-
+
private static void inspectMapEntry() {
String line = null;
try {
- while((line = bufferedReader.readLine()) != null) {
+ while ((line = bufferedReader.readLine()) != null) {
translateToken(line);
}
- }
- catch(Exception e) {
+ } catch (Exception e) {
e.printStackTrace();
}
}
-
+
private static void loadMapWz() throws IOException {
System.out.println("Reading Map.wz ...");
ArrayList files = new ArrayList<>();
- listFiles(wzPath + "/Map.wz/Map", files);
+ listFiles(WZFiles.MAP.getFilePath() + "/Map", files);
- for(File f : files) {
- fileReader = new InputStreamReader(new FileInputStream(f), "UTF-8");
+ for (File f : files) {
+ InputStreamReader fileReader = new InputStreamReader(new FileInputStream(f), StandardCharsets.UTF_8);
bufferedReader = new BufferedReader(fileReader);
-
+
mapid = getMapIdFromFilename(f.getName());
inspectMapEntry();
@@ -184,7 +148,7 @@ public class MapleMapFieldLimitChecker {
fileReader.close();
}
}
-
+
public static void main(String[] args) {
try {
loadMapWz();
@@ -193,5 +157,4 @@ public class MapleMapFieldLimitChecker {
ioe.printStackTrace();
}
}
-
}
diff --git a/tools/MapleMapFieldLimitChecker/lib/Report.txt b/tools/MapleMapFieldLimitChecker/lib/Report.txt
deleted file mode 100644
index 2d4b275314..0000000000
--- a/tools/MapleMapFieldLimitChecker/lib/Report.txt
+++ /dev/null
@@ -1,149 +0,0 @@
- # Report File autogenerated from the MapleEmptyItemWzChecker feature by Ronan Lana.
- # Generated data takes into account several data info from the server-side WZ.xmls.
-
-String.wz NAMES with no Item.wz node, 130 entries:
- 20816 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Face\
- 20817 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Face\
- 21817 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Face\
- 21820 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Face\
- 1002655 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Cap\
- 1002657 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Cap\
- 1002658 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Cap\
- 1003028 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Cap\
- 1003029 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Cap\
- 1003030 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Cap\
- 1003043 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Cap\
- 1022096 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Accessory\
- 1042180 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Coat\
- 1052226 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Longcoat\
- 1060115 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Pants\
- 1060138 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Pants\
- 1061125 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Pants\
- 1061160 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Pants\
- 1062036 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Pants\
- 1062037 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Pants\
- 1072248 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Shoes\
- 1072249 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Shoes\
- 1072418 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Shoes\
- 1072425 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Shoes\
- 1080002 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Glove\
- 1082217 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Glove\
- 1082221 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Glove\
- 1082261 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Glove\
- 1142152 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Accessory\
- 1142155 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Accessory\
- 1302032 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Weapon\
- 1302069 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Weapon\
- 1322030 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Weapon\
- 1322034 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Weapon\
- 1332058 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Weapon\
- 1382013 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Weapon\
- 1452047 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Weapon\
- 1462020 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Weapon\
- 1462042 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Weapon\
- 1472057 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Weapon\
- 1702113 ../../wz/String.wz/Eqp.img.xml -> Eqp.img\Eqp\Weapon\
- 2002012 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2002013 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2002014 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2012004 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2022034 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2022036 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2022046 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2022114 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2070014 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2083000 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2084000 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2101016 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2101017 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2101018 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2101019 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2101022 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2101058 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2210023 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2210024 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2240004 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2240005 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2240006 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2240007 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2240008 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2240009 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2240010 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2240011 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2240012 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2240013 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2240014 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2240015 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2290109 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 2390000 ../../wz/String.wz/Consume.img.xml -> Consume.img\
- 3010044 ../../wz/String.wz/Ins.img.xml -> Ins.img\
- 3994016 ../../wz/String.wz/Ins.img.xml -> Ins.img\
- 4000275 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4001150 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031294 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031627 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031628 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031629 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031630 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031631 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031632 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031633 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031634 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031635 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031636 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031637 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031638 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031639 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031640 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031641 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031642 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031643 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031644 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031645 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031646 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031647 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031648 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031795 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4031867 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 4032526 ../../wz/String.wz/Etc.img.xml -> Etc.img\Etc\
- 5000040 ../../wz/String.wz/Pet.img.xml -> Pet.img\
- 5000043 ../../wz/String.wz/Pet.img.xml -> Pet.img\
- 5000046 ../../wz/String.wz/Pet.img.xml -> Pet.img\
- 5201000 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5201001 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5210000 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5210001 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5210002 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5210003 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5210004 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5210005 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5211001 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5211002 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5211003 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5211047 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5240016 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5240019 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5251004 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5251005 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5251006 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5360009 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5360010 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5360011 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5360012 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5360013 ../../wz/String.wz/Cash.img.xml -> Cash.img\
- 5360014 ../../wz/String.wz/Cash.img.xml -> Cash.img\
-
-Item.wz ITEMS with no String.wz node, 12 entries:
- 1942000 C:\Nexon\HeavenMS\wz\Character.wz\Dragon\01942000.img.xml -> NOT FOUND
- 1942001 C:\Nexon\HeavenMS\wz\Character.wz\Dragon\01942001.img.xml -> NOT FOUND
- 1942002 C:\Nexon\HeavenMS\wz\Character.wz\Dragon\01942002.img.xml -> NOT FOUND
- 1952000 C:\Nexon\HeavenMS\wz\Character.wz\Dragon\01952000.img.xml -> NOT FOUND
- 1952001 C:\Nexon\HeavenMS\wz\Character.wz\Dragon\01952001.img.xml -> NOT FOUND
- 1952002 C:\Nexon\HeavenMS\wz\Character.wz\Dragon\01952002.img.xml -> NOT FOUND
- 1962000 C:\Nexon\HeavenMS\wz\Character.wz\Dragon\01962000.img.xml -> NOT FOUND
- 1962001 C:\Nexon\HeavenMS\wz\Character.wz\Dragon\01962001.img.xml -> NOT FOUND
- 1962002 C:\Nexon\HeavenMS\wz\Character.wz\Dragon\01962002.img.xml -> NOT FOUND
- 1972000 C:\Nexon\HeavenMS\wz\Character.wz\Dragon\01972000.img.xml -> NOT FOUND
- 1972001 C:\Nexon\HeavenMS\wz\Character.wz\Dragon\01972001.img.xml -> NOT FOUND
- 1972002 C:\Nexon\HeavenMS\wz\Character.wz\Dragon\01972002.img.xml -> NOT FOUND
-