/** * Is PvP disabled in this TownBlock? Checks the world if the TownBlock is null. * * @param townBlock * @return true if PvP is disallowed */ public static boolean preventPvP(TownyWorld world, TownBlock townBlock) { if (townBlock != null) { try { /* * Check the attackers TownBlock and it's Town for their PvP * status */ if (townBlock.getTown().isAdminDisabledPVP()) return true; if (!townBlock.getTown().isPVP() && !townBlock.getPermissions().pvp && !world.isForcePVP()) return true; } catch (NotRegisteredException ex) { /* * Failed to fetch the town data * so check world PvP */ if (!isWorldPvP(world)) return true; } } else { /* * Attacker isn't in a TownBlock so check the world PvP */ if (!isWorldPvP(world)) return true; } return false; }
public void damage(Town attacker, TownBlock townBlock) throws NotRegisteredException { WorldCoord worldCoord = townBlock.getWorldCoord(); int hp = warZone.get(worldCoord) - 1; if (hp > 0) { warZone.put(worldCoord, hp); // if (hp % 10 == 0) { universe.sendMessageTo( townBlock.getTown(), Colors.Gray + "[" + townBlock.getTown().getName() + "](" + townBlock.getCoord().toString() + ") HP: " + hp, ""); universe.sendMessageTo( attacker, Colors.Gray + "[" + townBlock.getTown().getName() + "](" + townBlock.getCoord().toString() + ") HP: " + hp, ""); // } } else remove(attacker, townBlock); }
public void remove(Town attacker, TownBlock townBlock) throws NotRegisteredException { townScored(attacker, TownySettings.getWarPointsForTownBlock()); townBlock.getTown().addBonusBlocks(-1); attacker.addBonusBlocks(1); try { if (!townBlock .getTown() .payTo(TownySettings.getWartimeTownBlockLossPrice(), attacker, "War - TownBlock Loss")) { remove(townBlock.getTown()); TownyMessaging.sendTownMessage( townBlock.getTown(), "Your town ran out of funds to support yourself in war."); } else TownyMessaging.sendTownMessage( townBlock.getTown(), "Your town lost " + TownySettings.getWartimeTownBlockLossPrice() + " " + TownyEconomyObject.getEconomyCurrency() + "."); } catch (EconomyException e) { } if (townBlock.getTown().isHomeBlock(townBlock)) remove(townBlock.getTown()); else remove(townBlock.getWorldCoord()); TownyUniverse.getDataSource().saveTown(townBlock.getTown()); TownyUniverse.getDataSource().saveTown(attacker); }
public void remove(TownBlock townBlock) throws NotRegisteredException { if (townBlock.getTown().isHomeBlock(townBlock)) remove(townBlock.getTown()); else remove(townBlock.getWorldCoord()); }