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 timers = null; private ConcurrentHashMap timestamps = null; - private ConcurrentHashMap friends = new ConcurrentHashMap<>(); + private ConcurrentHashMap friends; private ConcurrentHashMap condemned = new ConcurrentHashMap<>(); public ProtectionState protectionState = ProtectionState.NONE; private ArrayList 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());