Cleanup of friend and condemned initialization.
This commit is contained in:
@@ -18,7 +18,6 @@ import engine.job.JobContainer;
|
|||||||
import engine.job.JobScheduler;
|
import engine.job.JobScheduler;
|
||||||
import engine.jobs.UpgradeBuildingJob;
|
import engine.jobs.UpgradeBuildingJob;
|
||||||
import engine.math.Bounds;
|
import engine.math.Bounds;
|
||||||
import engine.math.Vector2f;
|
|
||||||
import engine.math.Vector3fImmutable;
|
import engine.math.Vector3fImmutable;
|
||||||
import engine.net.client.ClientConnection;
|
import engine.net.client.ClientConnection;
|
||||||
import engine.net.client.msg.ErrorPopupMsg;
|
import engine.net.client.msg.ErrorPopupMsg;
|
||||||
@@ -27,9 +26,7 @@ import engine.net.client.msg.PlaceAssetMsg;
|
|||||||
import engine.objects.*;
|
import engine.objects.*;
|
||||||
import engine.server.MBServerStatics;
|
import engine.server.MBServerStatics;
|
||||||
import org.pmw.tinylog.Logger;
|
import org.pmw.tinylog.Logger;
|
||||||
import org.w3c.dom.css.Rect;
|
|
||||||
|
|
||||||
import java.awt.*;
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -110,7 +107,6 @@ public enum BuildingManager {
|
|||||||
if (building == null)
|
if (building == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
||||||
if (building.getRank() == -1)
|
if (building.getRank() == -1)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@@ -121,22 +117,21 @@ public enum BuildingManager {
|
|||||||
if (building.getFriends() != null && building.getFriends().get(player.getObjectUUID()) != null)
|
if (building.getFriends() != null && building.getFriends().get(player.getObjectUUID()) != null)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
//Admin's can access stuff
|
//Admins can access stuff
|
||||||
|
|
||||||
if (player.isCSR())
|
if (player.isCSR())
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
//Guild stuff
|
//Guild stuff
|
||||||
|
|
||||||
|
if (building.getGuild().isGuildLeader(player.getObjectUUID()))
|
||||||
if (building.getGuild() != null && building.getGuild().isGuildLeader(player.getObjectUUID()))
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (building.getFriends() != null && building.getFriends().get(player.getGuild().getObjectUUID()) != null
|
if (building.getFriends().get(player.getGuild().getObjectUUID()) != null
|
||||||
&& building.getFriends().get(player.getGuild().getObjectUUID()).friendType == 8)
|
&& building.getFriends().get(player.getGuild().getObjectUUID()).friendType == 8)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (building.getFriends() != null && building.getFriends().get(player.getGuild().getObjectUUID()) != null
|
if (building.getFriends().get(player.getGuild().getObjectUUID()) != null
|
||||||
&& building.getFriends().get(player.getGuild().getObjectUUID()).friendType == 9
|
&& building.getFriends().get(player.getGuild().getObjectUUID()).friendType == 9
|
||||||
&& GuildStatusController.isInnerCouncil(player.getGuildStatus()))
|
&& GuildStatusController.isInnerCouncil(player.getGuildStatus()))
|
||||||
return true;
|
return true;
|
||||||
@@ -948,22 +943,20 @@ public enum BuildingManager {
|
|||||||
|
|
||||||
building.isDeranking.compareAndSet(true, false);
|
building.isDeranking.compareAndSet(true, false);
|
||||||
}
|
}
|
||||||
public static Building getBuildingAtLocation(Vector3fImmutable loc){
|
|
||||||
for(AbstractWorldObject awo : WorldGrid.getObjectsInRangePartial(loc,64,MBServerStatics.MASK_BUILDING)){
|
|
||||||
Building building = (Building)awo;
|
|
||||||
if(building == null)
|
|
||||||
continue;
|
|
||||||
float minX = building.loc.x - building.getBounds().getHalfExtents().x;
|
|
||||||
float maxX = building.loc.x + building.getBounds().getHalfExtents().x;
|
|
||||||
float minZ = building.loc.z - building.getBounds().getHalfExtents().y;
|
|
||||||
float maxZ = building.loc.z + building.getBounds().getHalfExtents().y;
|
|
||||||
|
|
||||||
boolean meetsX = loc.x > minX && loc.x < maxX;
|
public static Building getBuildingAtLocation(Vector3fImmutable loc) {
|
||||||
boolean meetsY = loc.z > minZ && loc.z < maxZ;
|
|
||||||
if(meetsX && meetsY)
|
for (AbstractWorldObject awo : WorldGrid.getObjectsInRangePartial(loc, 64, MBServerStatics.MASK_BUILDING)) {
|
||||||
|
Building building = (Building) awo;
|
||||||
|
|
||||||
|
if (building == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (Bounds.collide(loc, building))
|
||||||
return building;
|
return building;
|
||||||
|
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ public class Building extends AbstractWorldObject {
|
|||||||
private ConcurrentHashMap<String, JobContainer> timers = null;
|
private ConcurrentHashMap<String, JobContainer> timers = null;
|
||||||
private ConcurrentHashMap<String, Long> timestamps = null;
|
private ConcurrentHashMap<String, Long> timestamps = null;
|
||||||
private ConcurrentHashMap<Integer, BuildingFriends> friends;
|
private ConcurrentHashMap<Integer, BuildingFriends> friends;
|
||||||
private ConcurrentHashMap<Integer, Condemned> condemned = new ConcurrentHashMap<>();
|
private ConcurrentHashMap<Integer, Condemned> condemned;
|
||||||
public ProtectionState protectionState = ProtectionState.NONE;
|
public ProtectionState protectionState = ProtectionState.NONE;
|
||||||
private ArrayList<Building> children = null;
|
private ArrayList<Building> children = null;
|
||||||
|
|
||||||
@@ -969,17 +969,28 @@ public class Building extends AbstractWorldObject {
|
|||||||
// Reference friend and condemn lists from BuildingManager
|
// Reference friend and condemn lists from BuildingManager
|
||||||
|
|
||||||
this.friends = BuildingManager._buildingFriends.get(this.getObjectUUID());
|
this.friends = BuildingManager._buildingFriends.get(this.getObjectUUID());
|
||||||
|
|
||||||
|
if (this.friends == null) {
|
||||||
|
this.friends = new ConcurrentHashMap<>();
|
||||||
|
BuildingManager._buildingFriends.put(this.getObjectUUID(), this.friends);
|
||||||
|
}
|
||||||
|
|
||||||
this.condemned = BuildingManager._buildingCondemned.get(this.getObjectUUID());
|
this.condemned = BuildingManager._buildingCondemned.get(this.getObjectUUID());
|
||||||
|
|
||||||
|
if (this.condemned == null) {
|
||||||
|
this.condemned = new ConcurrentHashMap<>();
|
||||||
|
BuildingManager._buildingCondemned.put(this.getObjectUUID(), this.condemned);
|
||||||
|
}
|
||||||
|
|
||||||
//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)
|
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());
|
Logger.info("Building UID " + this.getObjectUUID() + " Failed to Load NPC Owner with ID " + this.ownerUUID + " Location " + this.getLoc().toString());
|
||||||
|
|
||||||
} else if (this.ownerUUID != 0) {
|
} else if (this.ownerUUID != 0) {
|
||||||
if (PlayerCharacter.getPlayerCharacter(this.ownerUUID) == null) {
|
if (PlayerCharacter.getPlayerCharacter(this.ownerUUID) == null) {
|
||||||
Logger.info("Building UID " + this.getObjectUUID() + " Failed to Load Player Owner with ID " + this.ownerUUID + " Location " + this.getLoc().toString());
|
Logger.info("Building UID " + this.getObjectUUID() + " Failed to Load Player Owner with ID " + this.ownerUUID + " Location " + this.getLoc().toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user