From cc5627902eafe9b70735fcb30d1255872a66286c Mon Sep 17 00:00:00 2001
From: simon987 <me@simon987.net>
Date: Wed, 29 Jul 2020 18:58:34 -0400
Subject: [PATCH] Remove NpcPlugin class

---
 .../java/net/simon987/mar/npc/Factory.java     |  4 ++--
 .../java/net/simon987/mar/npc/HackedNPC.java   |  4 +++-
 .../java/net/simon987/mar/npc/NpcPlugin.java   | 18 ------------------
 .../mar/npc/RadioReceiverHardware.java         |  4 ++--
 .../java/net/simon987/mar/npc/Settlement.java  |  4 ++++
 .../java/net/simon987/mar/npc/VaultDoor.java   |  2 +-
 .../mar/npc/event/BeforeSaveListener.java      |  6 +++---
 .../simon987/mar/npc/event/LoadListener.java   |  6 +++---
 .../mar/npc/event/WorldCreationListener.java   |  3 +--
 9 files changed, 19 insertions(+), 32 deletions(-)
 delete mode 100644 src/main/java/net/simon987/mar/npc/NpcPlugin.java

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<String, Settlement> 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<char[]> 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<String, Settlement> MAP = new ConcurrentHashMap<>();
+
     private final List<NonPlayerCharacter> 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()));