forked from MagicBane/Server
Hotfix: bane null check order.
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user