diff --git a/src/engine/mbEnums.java b/src/engine/mbEnums.java index c75d7a05..1ef6443e 100644 --- a/src/engine/mbEnums.java +++ b/src/engine/mbEnums.java @@ -2732,7 +2732,7 @@ public class mbEnums { DIAMOND(1580010, 1540225085, -1730704107, 2000, 20), GALVOR(1580017, -1683992404, -1596311545, 2000, 5), IRON(1580002, -1673518119, 2504297, 2000, 20), - LUMBER(1580004, 1628412684, -1603256692, 10000, 100), + LUMBER(1580004, -1628412684, -1603256692, 10000, 100), MANDRAKE(1580007, 1519910613, 1191391799, 1000, 10), MITHRIL(1580021, 626743397, -1761257186, 500, 5), OAK(1580005, -1653034775, 74767, 3000, 30), diff --git a/src/engine/objects/City.java b/src/engine/objects/City.java index 8f674de8..eb173614 100644 --- a/src/engine/objects/City.java +++ b/src/engine/objects/City.java @@ -306,8 +306,22 @@ public class City extends AbstractWorldObject { if (city.parentZone == null) continue; - //can't repledge to a guild you're already part of + // Can't teleport to something without a tree + + if (city.getTOL() == null) + continue; + + // No abandoned cities + + if (city.getTOL().getGuild().isEmptyGuild()) + continue; + + // No destroyed cities + if (city.getTOL().getRank() == -1) + continue; + + //can't repledge to a guild you're already part of if (repledge && city.getGuild().equals(playerCharacter.guild)) continue; diff --git a/src/engine/objects/Mine.java b/src/engine/objects/Mine.java index dabfb557..553c1036 100644 --- a/src/engine/objects/Mine.java +++ b/src/engine/objects/Mine.java @@ -220,8 +220,7 @@ public class Mine extends AbstractGameObject { // Only inactive mines are returned. for (Mine mine : Mine.mineMap.keySet()) { - if (mine.owningGuild.getObjectUUID() == guildID && - mine.isActive == false) + if (mine.owningGuild.getObjectUUID() == guildID) mineList.add(mine); } return mineList; diff --git a/src/engine/workthreads/DestroyCityThread.java b/src/engine/workthreads/DestroyCityThread.java index 9c5b2050..0a9dd5f7 100644 --- a/src/engine/workthreads/DestroyCityThread.java +++ b/src/engine/workthreads/DestroyCityThread.java @@ -95,6 +95,12 @@ public class DestroyCityThread implements Runnable { if (cityBuilding == null) continue; + // check null bluepritn and log error + if (cityBuilding.getBlueprint() == null){ + Logger.error("Null Blueprint for building ID: " + cityBuilding.getObjectUUID()); + continue; + } + // Do nothing with the banestone. It will be removed elsewhere if (cityBuilding.getBlueprint().getBuildingGroup().equals(mbEnums.BuildingGroup.BANESTONE))