From a20267aee99678840d0367163ea78efc14ed12da Mon Sep 17 00:00:00 2001 From: P0nk Date: Thu, 9 Sep 2021 22:13:34 +0200 Subject: [PATCH] Rename and clean up MaplePlayerNPCFactory --- src/main/java/net/server/Server.java | 4 +- src/main/java/server/life/PlayerNPC.java | 2 +- ...rNPCFactory.java => PlayerNPCFactory.java} | 40 +++++++++---------- .../java/server/maps/MapleMapFactory.java | 2 +- 4 files changed, 23 insertions(+), 25 deletions(-) rename src/main/java/server/life/{MaplePlayerNPCFactory.java => PlayerNPCFactory.java} (90%) diff --git a/src/main/java/net/server/Server.java b/src/main/java/net/server/Server.java index d295fe7fb0..3669de3e4e 100644 --- a/src/main/java/net/server/Server.java +++ b/src/main/java/net/server/Server.java @@ -60,7 +60,7 @@ import server.MapleSkillbookInformationProvider; import server.ThreadManager; import server.TimerManager; import server.expeditions.ExpeditionBossLog; -import server.life.MaplePlayerNPCFactory; +import server.life.PlayerNPCFactory; import server.quest.MapleQuest; import tools.DatabaseConnection; import tools.FilePrinter; @@ -841,7 +841,7 @@ public class Server { futures.add(initExecutor.submit(() -> CashItemFactory.loadAllCashItems())); futures.add(initExecutor.submit(() -> MapleQuest.loadAllQuests())); futures.add(initExecutor.submit(() -> MapleSkillbookInformationProvider.loadAllSkillbookInformation())); - futures.add(initExecutor.submit(() -> MaplePlayerNPCFactory.loadFactoryMetadata())); + futures.add(initExecutor.submit(() -> PlayerNPCFactory.loadFactoryMetadata())); TimeZone.setDefault(TimeZone.getTimeZone(YamlConfig.config.server.TIMEZONE)); diff --git a/src/main/java/server/life/PlayerNPC.java b/src/main/java/server/life/PlayerNPC.java index 0cc5d24bce..517a8cd10b 100644 --- a/src/main/java/server/life/PlayerNPC.java +++ b/src/main/java/server/life/PlayerNPC.java @@ -331,7 +331,7 @@ public class PlayerNPC extends AbstractMapleMapObject { int j = 0; for (int i = branchSid; i < nextBranchSid; i++) { if (!usedScriptIds.contains(i)) { - if (MaplePlayerNPCFactory.isExistentScriptid(i)) { // thanks Ark, Zein, geno, Ariel, JrCl0wn for noticing client crashes due to use of missing scriptids + if (PlayerNPCFactory.isExistentScriptid(i)) { // thanks Ark, Zein, geno, Ariel, JrCl0wn for noticing client crashes due to use of missing scriptids availables.add(i); j++; diff --git a/src/main/java/server/life/MaplePlayerNPCFactory.java b/src/main/java/server/life/PlayerNPCFactory.java similarity index 90% rename from src/main/java/server/life/MaplePlayerNPCFactory.java rename to src/main/java/server/life/PlayerNPCFactory.java index e66c5735e0..6f8df71154 100644 --- a/src/main/java/server/life/MaplePlayerNPCFactory.java +++ b/src/main/java/server/life/PlayerNPCFactory.java @@ -32,47 +32,45 @@ import java.util.List; import java.util.Map; /** - * * @author RonanLana */ -public class MaplePlayerNPCFactory { - - private static DataProvider npcData = DataProviderFactory.getDataProvider(WZFiles.NPC); - +public class PlayerNPCFactory { + private static final DataProvider npcData = DataProviderFactory.getDataProvider(WZFiles.NPC); + private static final Map> dnpcMaps = new HashMap<>(); private static Integer runningDeveloperOid = 2147483000; // 647 slots, long enough - + public synchronized static boolean isExistentScriptid(int scriptid) { return npcData.getData(scriptid + ".img") != null; } - + private static void loadDeveloperRoomMetadata(DataProvider npc) { Data thisData = npc.getData("9977777.img"); - if(thisData != null) { + if (thisData != null) { DataProvider map = DataProviderFactory.getDataProvider(WZFiles.MAP); - + thisData = map.getData("Map/Map7/777777777.img"); - if(thisData != null) { + if (thisData != null) { DataProvider sound = DataProviderFactory.getDataProvider(WZFiles.SOUND); - + thisData = sound.getData("Field.img"); - if(thisData != null) { + if (thisData != null) { Data md = thisData.getChildByPath("anthem/brazil"); - if(md != null) { + if (md != null) { Server.getInstance().setAvailableDeveloperRoom(); } } } } } - + public synchronized static void loadFactoryMetadata() { DataProvider npc = npcData; loadDeveloperRoomMetadata(npc); DataProvider etc = DataProviderFactory.getDataProvider(WZFiles.ETC); Data dnpcData = etc.getData("DeveloperNpc.img"); - if(dnpcData != null) { + if (dnpcData != null) { for (Data data : dnpcData.getChildren()) { int scriptId = Integer.parseInt(data.getName()); @@ -98,7 +96,7 @@ public class MaplePlayerNPCFactory { } List dnpcSet = dnpcMaps.get(mapid); - if(dnpcSet == null) { + if (dnpcSet == null) { dnpcSet = new LinkedList<>(); dnpcMaps.put(mapid, dnpcSet); } @@ -108,9 +106,9 @@ public class MaplePlayerNPCFactory { } } else { Data thisData = npc.getData("9977777.img"); - - if(thisData != null) { - byte[] encData = {0x52,0x6F,0x6E,0x61,0x6E}; + + if (thisData != null) { + byte[] encData = {0x52, 0x6F, 0x6E, 0x61, 0x6E}; String name = new String(encData); int face = 20104, hair = 30215, gender = 0, skin = 0, dir = 0, mapid = 777777777; int FH = 4, RX0 = -143, RX1 = -243, CX = -193, CY = 117, scriptId = 9977777; @@ -124,7 +122,7 @@ public class MaplePlayerNPCFactory { equips.put((short) -5, 1040103); List dnpcSet = dnpcMaps.get(mapid); - if(dnpcSet == null) { + if (dnpcSet == null) { dnpcSet = new LinkedList<>(); dnpcMaps.put(mapid, dnpcSet); } @@ -134,7 +132,7 @@ public class MaplePlayerNPCFactory { } } } - + public synchronized static List getDeveloperNpcsFromMapid(int mapid) { return dnpcMaps.get(mapid); } diff --git a/src/main/java/server/maps/MapleMapFactory.java b/src/main/java/server/maps/MapleMapFactory.java index b33edfe3cf..e8a06aa279 100644 --- a/src/main/java/server/maps/MapleMapFactory.java +++ b/src/main/java/server/maps/MapleMapFactory.java @@ -249,7 +249,7 @@ public class MapleMapFactory { e.printStackTrace(); } - List dnpcs = MaplePlayerNPCFactory.getDeveloperNpcsFromMapid(mapid); + List dnpcs = PlayerNPCFactory.getDeveloperNpcsFromMapid(mapid); if (dnpcs != null) { for (PlayerNPC dnpc : dnpcs) { map.addPlayerNPCMapObject(dnpc);