diff --git a/src/main/java/net/simon987/mar/npc/Factory.java b/src/main/java/net/simon987/mar/npc/Factory.java index ebfb7a1..9ff63df 100644 --- a/src/main/java/net/simon987/mar/npc/Factory.java +++ b/src/main/java/net/simon987/mar/npc/Factory.java @@ -63,7 +63,7 @@ public class Factory extends Structure implements Updatable, MessageReceiver { @Override public void update() { - Settlement settlement = NpcPlugin.settlementMap.get(getWorld().getId()); + Settlement settlement = Settlement.MAP.get(getWorld().getId()); if (settlement == null) { //Only happens when server is killed during save function @@ -133,7 +133,7 @@ public class Factory extends Structure implements Updatable, MessageReceiver { public boolean sendMessage(char[] message) { if (locked) { - Settlement settlement = NpcPlugin.settlementMap.get(getWorld().getId()); + Settlement settlement = Settlement.MAP.get(getWorld().getId()); if (Arrays.equals(settlement.getPassword(), message)) { this.locked = false; diff --git a/src/main/java/net/simon987/mar/npc/HackedNPC.java b/src/main/java/net/simon987/mar/npc/HackedNPC.java index 39463d7..bc33bd6 100644 --- a/src/main/java/net/simon987/mar/npc/HackedNPC.java +++ b/src/main/java/net/simon987/mar/npc/HackedNPC.java @@ -20,6 +20,8 @@ import java.util.Map; public class HackedNPC extends NonPlayerCharacter implements ControllableUnit { + public static Document DEFAULT_HACKED_NPC; + private static final int MEM_SIZE = GameServer.INSTANCE.getConfig().getInt("hacked_npc_mem_size"); private static final boolean DIE_ON_NO_ENERGY = GameServer.INSTANCE.getConfig().getInt("hacked_npc_die_on_no_energy") != 0; @@ -43,7 +45,7 @@ public class HackedNPC extends NonPlayerCharacter implements ControllableUnit { cpu.setHardwareHost(this); cpu.getMemory().write(cpu.getCodeSectionOffset(), program, 0, program.length); - for (Object serialisedHw : (List) NpcPlugin.DEFAULT_HACKED_NPC.get("hardware")) { + for (Object serialisedHw : (List) DEFAULT_HACKED_NPC.get("hardware")) { HardwareModule hardware = GameServer.INSTANCE.getRegistry().deserializeHardware((Document) serialisedHw, this); hardware.setCpu(cpu); attachHardware(hardware, ((Document) serialisedHw).getInteger("address")); diff --git a/src/main/java/net/simon987/mar/npc/NpcPlugin.java b/src/main/java/net/simon987/mar/npc/NpcPlugin.java deleted file mode 100644 index 297fe4b..0000000 --- a/src/main/java/net/simon987/mar/npc/NpcPlugin.java +++ /dev/null @@ -1,18 +0,0 @@ -package net.simon987.mar.npc; - -import net.simon987.mar.server.GameServer; -import org.bson.Document; - -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -public class NpcPlugin { - - public static Map settlementMap = new ConcurrentHashMap<>(); - - public static Document DEFAULT_HACKED_NPC; - - public void init(GameServer gameServer) { - - } -} diff --git a/src/main/java/net/simon987/mar/npc/RadioReceiverHardware.java b/src/main/java/net/simon987/mar/npc/RadioReceiverHardware.java index 62b3d21..9099ed3 100644 --- a/src/main/java/net/simon987/mar/npc/RadioReceiverHardware.java +++ b/src/main/java/net/simon987/mar/npc/RadioReceiverHardware.java @@ -42,8 +42,8 @@ public class RadioReceiverHardware extends HardwareModule { List messages = new ArrayList<>(6); - for (String world : NpcPlugin.settlementMap.keySet()) { - RadioTower tower = NpcPlugin.settlementMap.get(world).getRadioTower(); + for (String world : Settlement.MAP.keySet()) { + RadioTower tower = Settlement.MAP.get(world).getRadioTower(); if (tower != null && Util.manhattanDist( tower.getWorld().getX(), tower.getWorld().getY(), diff --git a/src/main/java/net/simon987/mar/npc/Settlement.java b/src/main/java/net/simon987/mar/npc/Settlement.java index da05110..4c7945c 100644 --- a/src/main/java/net/simon987/mar/npc/Settlement.java +++ b/src/main/java/net/simon987/mar/npc/Settlement.java @@ -11,6 +11,8 @@ import org.bson.types.ObjectId; import java.awt.*; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; public class Settlement implements MongoSerializable { @@ -20,6 +22,8 @@ public class Settlement implements MongoSerializable { private final World world; private final DifficultyLevel difficultyLevel; + public static Map MAP = new ConcurrentHashMap<>(); + private final List npcs = new ArrayList<>(); private final char[] password; diff --git a/src/main/java/net/simon987/mar/npc/VaultDoor.java b/src/main/java/net/simon987/mar/npc/VaultDoor.java index 936b3b5..dec1249 100644 --- a/src/main/java/net/simon987/mar/npc/VaultDoor.java +++ b/src/main/java/net/simon987/mar/npc/VaultDoor.java @@ -66,7 +66,7 @@ public class VaultDoor extends Structure implements MessageReceiver, Enterable, @Override public boolean sendMessage(char[] message) { - Settlement settlement = NpcPlugin.settlementMap.get(getWorld().getId()); + Settlement settlement = Settlement.MAP.get(getWorld().getId()); System.out.println("message: " + new String(message)); System.out.println("password: " + new String(settlement.getPassword())); diff --git a/src/main/java/net/simon987/mar/npc/event/BeforeSaveListener.java b/src/main/java/net/simon987/mar/npc/event/BeforeSaveListener.java index d4e8f78..e0311c4 100644 --- a/src/main/java/net/simon987/mar/npc/event/BeforeSaveListener.java +++ b/src/main/java/net/simon987/mar/npc/event/BeforeSaveListener.java @@ -1,6 +1,6 @@ package net.simon987.mar.npc.event; -import net.simon987.mar.npc.NpcPlugin; +import net.simon987.mar.npc.Settlement; import net.simon987.mar.server.GameServer; import net.simon987.mar.server.event.BeforeSaveEvent; import net.simon987.mar.server.event.GameEvent; @@ -17,8 +17,8 @@ public class BeforeSaveListener implements GameEventListener { @Override public void handle(GameEvent event) { Document settlements = new Document(); - for (String world : NpcPlugin.settlementMap.keySet()) { - settlements.put(world, NpcPlugin.settlementMap.get(world).mongoSerialise()); + for (String world : Settlement.MAP.keySet()) { + settlements.put(world, Settlement.MAP.get(world).mongoSerialise()); } GameServer.INSTANCE.getUniverse().store.put("settlement_map", settlements); diff --git a/src/main/java/net/simon987/mar/npc/event/LoadListener.java b/src/main/java/net/simon987/mar/npc/event/LoadListener.java index e7b486f..16c0c1a 100644 --- a/src/main/java/net/simon987/mar/npc/event/LoadListener.java +++ b/src/main/java/net/simon987/mar/npc/event/LoadListener.java @@ -1,6 +1,6 @@ package net.simon987.mar.npc.event; -import net.simon987.mar.npc.NpcPlugin; +import net.simon987.mar.npc.HackedNPC; import net.simon987.mar.npc.Settlement; import net.simon987.mar.server.GameServer; import net.simon987.mar.server.event.GameEvent; @@ -28,14 +28,14 @@ public class LoadListener implements GameEventListener { } for (String world : settlements.keySet()) { - NpcPlugin.settlementMap.put(world, new Settlement((Document) settlements.get(world))); + Settlement.MAP.put(world, new Settlement((Document) settlements.get(world))); } try { InputStream is = new FileInputStream("defaultHackedCubotHardware.json"); Scanner scanner = new Scanner(is).useDelimiter("\\A"); String json = scanner.next(); - NpcPlugin.DEFAULT_HACKED_NPC = Document.parse(json); + HackedNPC.DEFAULT_HACKED_NPC = Document.parse(json); } catch (FileNotFoundException e) { e.printStackTrace(); } diff --git a/src/main/java/net/simon987/mar/npc/event/WorldCreationListener.java b/src/main/java/net/simon987/mar/npc/event/WorldCreationListener.java index d348116..410ab71 100644 --- a/src/main/java/net/simon987/mar/npc/event/WorldCreationListener.java +++ b/src/main/java/net/simon987/mar/npc/event/WorldCreationListener.java @@ -1,6 +1,5 @@ package net.simon987.mar.npc.event; -import net.simon987.mar.npc.NpcPlugin; import net.simon987.mar.npc.Settlement; import net.simon987.mar.server.event.GameEvent; import net.simon987.mar.server.event.GameEventListener; @@ -38,7 +37,7 @@ public class WorldCreationListener implements GameEventListener { try { Settlement settlement = new Settlement(world); - NpcPlugin.settlementMap.put(world.getId(), settlement); + Settlement.MAP.put(world.getId(), settlement); } catch (WorldGenerationException e) { LogManager.LOGGER.fine(String.format("Exception during settlement generation: %s.", e.getMessage()));