Hotfix: bane null check order.

This commit is contained in:
2022-07-27 08:56:45 -04:00
parent 2436579752
commit e6af752c6d
@@ -30,6 +30,8 @@ public class DestroyBuildingHandler extends AbstractClientMsgHandler {
DestroyBuildingMsg msg; DestroyBuildingMsg msg;
msg = (DestroyBuildingMsg) baseMsg; msg = (DestroyBuildingMsg) baseMsg;
Bane bane = null;
Blueprint blueprint;
int buildingUUID = msg.getUUID(); int buildingUUID = msg.getUUID();
@@ -38,10 +40,9 @@ public class DestroyBuildingHandler extends AbstractClientMsgHandler {
if (pc == null || building == null) if (pc == null || building == null)
return true; return true;
Blueprint blueprint;
blueprint = building.getBlueprint(); blueprint = building.getBlueprint();
City city = building.getCity(); City city = building.getCity();
// Can't destroy buildings without a blueprint. // Can't destroy buildings without a blueprint.
if (blueprint == null) if (blueprint == null)
@@ -55,11 +56,17 @@ public class DestroyBuildingHandler extends AbstractClientMsgHandler {
if (!BuildingManager.PlayerCanControlNotOwner(building, pc)) if (!BuildingManager.PlayerCanControlNotOwner(building, pc))
return true; return true;
Bane bane = city.getBane();
if(bane.getSiegePhase() == Enum.SiegePhase.WAR && bane != null) { // Can't delete siege assets during an active bane.
ErrorPopupMsg.sendErrorPopup(pc, 171);
return true; if (city != null)
} bane = city.getBane();
if ( bane != null && bane.getSiegePhase() == Enum.SiegePhase.WAR) {
ErrorPopupMsg.sendErrorPopup(pc, 171);
return true;
}
// Can't destroy a tree of life // Can't destroy a tree of life
if (blueprint.getBuildingGroup() == BuildingGroup.TOL) if (blueprint.getBuildingGroup() == BuildingGroup.TOL)
return true; return true;
@@ -68,12 +75,17 @@ if(bane.getSiegePhase() == Enum.SiegePhase.WAR && bane != null) {
if (blueprint.getBuildingGroup() == BuildingGroup.SHRINE) if (blueprint.getBuildingGroup() == BuildingGroup.SHRINE)
return true; return true;
// Cannot destroy mines outside of normal mine mechanics
if (blueprint.getBuildingGroup() == BuildingGroup.MINE) if (blueprint.getBuildingGroup() == BuildingGroup.MINE)
return true; return true;
// Cannot delete rungates
if (blueprint.getBuildingGroup() == BuildingGroup.RUNEGATE) if (blueprint.getBuildingGroup() == BuildingGroup.RUNEGATE)
return true; return true;
//stop if active siege
// Turn off spire if destoying // Turn off spire if destoying
if (blueprint.getBuildingGroup() == BuildingGroup.SPIRE) if (blueprint.getBuildingGroup() == BuildingGroup.SPIRE)
building.disableSpire(true); building.disableSpire(true);