public String getUseageTemplate(boolean withDescription) { String ret = ""; ret += Conf.colorCommand; ret += Factions.instance.getBaseCommand() + " " + TextUtil.implode(this.getAliases(), ",") + " "; List<String> parts = new ArrayList<String>(); for (String requiredParameter : this.requiredParameters) { parts.add("[" + requiredParameter + "]"); } for (String optionalParameter : this.optionalParameters) { parts.add("*[" + optionalParameter + "]"); } ret += Conf.colorParameter; ret += TextUtil.implode(parts, " "); if (withDescription) { ret += " " + Conf.colorSystem + this.helpDescription; } return ret; }
public boolean canPlayerUseBlock(Player player, Block block) { if (Conf.adminBypassPlayers.contains(player.getName())) { return true; } Material material = block.getType(); FLocation loc = new FLocation(block); Faction otherFaction = Board.getFactionAt(loc); // no door/chest/whatever protection in wilderness, war zones, or safe zones if (!otherFaction.isNormal()) { return true; } // We only care about some material types. if (otherFaction.hasPlayersOnline()) { if (!Conf.territoryProtectedMaterials.contains(material)) { return true; } } else { if (!Conf.territoryProtectedMaterialsWhenOffline.contains(material)) { return true; } } FPlayer me = FPlayer.get(player); Faction myFaction = me.getFaction(); Relation rel = myFaction.getRelation(otherFaction); boolean ownershipFail = Conf.ownedAreasEnabled && Conf.ownedAreaProtectMaterials && !otherFaction.playerHasOwnershipRights(me, loc); // You may use any block unless it is another faction's territory... if (rel.isNeutral() || (rel.isEnemy() && Conf.territoryEnemyProtectMaterials) || (rel.isAlly() && Conf.territoryAllyProtectMaterials)) { me.sendMessage( "You can't use " + TextUtil.getMaterialName(material) + " in the territory of " + otherFaction.getTag(myFaction)); return false; } // Also cancel if player doesn't have ownership rights for this claim else if (rel.isMember() && ownershipFail && !Factions.hasPermOwnershipBypass(player)) { me.sendMessage( "You can't use " + TextUtil.getMaterialName(material) + " in this territory, it is owned by: " + myFaction.getOwnerListString(loc)); return false; } return true; }
@Override public void perform() { // if economy is enabled, they're not on the bypass list, and this // command has a cost set, make 'em pay if (!payForCommand( Conf.econCostDesc, "to change faction description", "for changing faction description")) return; myFaction.setDescription(TextUtil.implode(args, " ").replaceAll("(&([a-f0-9]))", "")); // Broadcast the description to everyone for (FPlayer fplayer : FPlayers.i.getOnline()) { fplayer.msg( "<i>The faction %s<i> changed their description to:", myFaction.describeTo(fplayer)); fplayer.sendMessage(myFaction.getDescription()); } }
public boolean playerCanUseItemHere(Player player, Block block, Material material) { if (Conf.adminBypassPlayers.contains(player.getName())) { return true; } FLocation loc = new FLocation(block); Faction otherFaction = Board.getFactionAt(loc); if (otherFaction.hasPlayersOnline()) { if (!Conf.territoryDenyUseageMaterials.contains(material)) { return true; // Item isn't one we're preventing for online factions. } } else { if (!Conf.territoryDenyUseageMaterialsWhenOffline.contains(material)) { return true; // Item isn't one we're preventing for offline factions. } } FPlayer me = FPlayer.get(player); if (otherFaction.isNone()) { if (!Conf.wildernessDenyUseage || Factions.hasPermAdminBypass(player) || Conf.worldsNoWildernessProtection.contains(block.getWorld().getName())) { return true; // This is not faction territory. Use whatever you like here. } me.sendMessage("You can't use " + TextUtil.getMaterialName(material) + " in the wilderness."); return false; } else if (otherFaction.isSafeZone()) { if (!Conf.safeZoneDenyUseage || Factions.hasPermManageSafeZone(player)) { return true; } me.sendMessage("You can't use " + TextUtil.getMaterialName(material) + " in a safe zone."); return false; } else if (otherFaction.isWarZone()) { if (!Conf.warZoneDenyUseage || Factions.hasPermManageWarZone(player)) { return true; } me.sendMessage("You can't use " + TextUtil.getMaterialName(material) + " in a war zone."); return false; } Faction myFaction = me.getFaction(); Relation rel = myFaction.getRelation(otherFaction); boolean ownershipFail = Conf.ownedAreasEnabled && Conf.ownedAreaDenyUseage && !otherFaction.playerHasOwnershipRights(me, loc); // Cancel if we are not in our own territory if (!rel.isMember() && rel.confDenyUseage()) { me.sendMessage( "You can't use " + TextUtil.getMaterialName(material) + " in the territory of " + otherFaction.getTag(myFaction)); return false; } // Also cancel if player doesn't have ownership rights for this claim else if (rel.isMember() && ownershipFail && !Factions.hasPermOwnershipBypass(player)) { me.sendMessage( "You can't use " + TextUtil.getMaterialName(material) + " in this territory, it is owned by: " + myFaction.getOwnerListString(loc)); return false; } return true; }