From 5ac62d60be7bddf111bc9c427520676405415ce5 Mon Sep 17 00:00:00 2001
From: MagicBot <MagicBot@magicbane.com>
Date: Wed, 18 Oct 2023 12:38:04 -0400
Subject: [PATCH] Collection used and old handler removed.

---
 src/engine/db/handlers/dbBuildingHandler.java | 30 ----------------
 src/engine/objects/Building.java              | 35 ++++++++++---------
 2 files changed, 18 insertions(+), 47 deletions(-)

diff --git a/src/engine/db/handlers/dbBuildingHandler.java b/src/engine/db/handlers/dbBuildingHandler.java
index b8ddb0e2..c81003b7 100644
--- a/src/engine/db/handlers/dbBuildingHandler.java
+++ b/src/engine/db/handlers/dbBuildingHandler.java
@@ -458,36 +458,6 @@ public class dbBuildingHandler extends dbHandlerBase {
 
     }
 
-    public void LOAD_ALL_FRIENDS_FOR_BUILDING(Building building) {
-
-        if (building == null)
-            return;
-
-        try (Connection connection = DbManager.getConnection();
-             PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM `dyn_building_friends` WHERE `buildingUID` = ?")) {
-
-            preparedStatement.setInt(1, building.getObjectUUID());
-            ResultSet rs = preparedStatement.executeQuery();
-
-            while (rs.next()) {
-                BuildingFriends friend = new BuildingFriends(rs);
-                switch (friend.friendType) {
-                    case 7:
-                        building.getFriends().put(friend.playerUID, friend);
-                        break;
-                    case 8:
-                    case 9:
-                        building.getFriends().put(friend.guildUID, friend);
-                        break;
-                }
-            }
-
-        } catch (SQLException e) {
-            Logger.error(e);
-        }
-
-    }
-
     public void LOAD_ALL_CONDEMNED_FOR_BUILDING(Building building) {
 
         if (building == null)
diff --git a/src/engine/objects/Building.java b/src/engine/objects/Building.java
index 04113af4..2c0f2c68 100644
--- a/src/engine/objects/Building.java
+++ b/src/engine/objects/Building.java
@@ -94,7 +94,7 @@ public class Building extends AbstractWorldObject {
     private boolean spireIsActive = false;
     private ConcurrentHashMap<String, JobContainer> timers = null;
     private ConcurrentHashMap<String, Long> timestamps = null;
-    private ConcurrentHashMap<Integer, BuildingFriends> friends = new ConcurrentHashMap<>();
+    private ConcurrentHashMap<Integer, BuildingFriends> friends;
     private ConcurrentHashMap<Integer, Condemned> condemned = new ConcurrentHashMap<>();
     public ProtectionState protectionState = ProtectionState.NONE;
     private ArrayList<Building> children = null;
@@ -956,26 +956,27 @@ public class Building extends AbstractWorldObject {
             }
 
 
-            // Submit upgrade job if building is currently set to rank.
+        // Submit upgrade job if building is currently set to rank.
 
-            try {
-                DbObjectType objectType = DbManager.BuildingQueries.GET_UID_ENUM(this.ownerUUID);
-                this.ownerIsNPC = (objectType == DbObjectType.NPC);
-            } catch (Exception e) {
-                this.ownerIsNPC = false;
-                Logger.error("Failed to find Object Type for owner " + this.ownerUUID + " Location " + this.getLoc().toString());
-            }
+        try {
+            DbObjectType objectType = DbManager.BuildingQueries.GET_UID_ENUM(this.ownerUUID);
+            this.ownerIsNPC = (objectType == DbObjectType.NPC);
+        } catch (Exception e) {
+            this.ownerIsNPC = false;
+            Logger.error("Failed to find Object Type for owner " + this.ownerUUID + " Location " + this.getLoc().toString());
+        }
 
-            try {
-                DbManager.BuildingQueries.LOAD_ALL_FRIENDS_FOR_BUILDING(this);
-                DbManager.BuildingQueries.LOAD_ALL_CONDEMNED_FOR_BUILDING(this);
-            } catch (Exception e) {
-                Logger.error(this.getObjectUUID() + " failed to load friends/condemned." + e.getMessage());
-            }
+        this.friends = BuildingManager._buildingFriends.get(this.getObjectUUID());
+
+        try {
+            DbManager.BuildingQueries.LOAD_ALL_CONDEMNED_FOR_BUILDING(this);
+        } catch (Exception e) {
+            Logger.error(this.getObjectUUID() + " failed to load friends/condemned." + e.getMessage());
+        }
 
-            //LOad Owners in Cache so we do not have to continuely look in the db for owner.
+        //LOad Owners in Cache so we do not have to continuely look in the db for owner.
 
-            if (this.ownerIsNPC) {
+        if (this.ownerIsNPC) {
                 if (NPC.getNPC(this.ownerUUID) == null)
                     Logger.info("Building UID " + this.getObjectUUID() + " Failed to Load NPC Owner with ID " + this.ownerUUID + " Location " + this.getLoc().toString());