herp...
This commit is contained in:
parent
10f535e637
commit
a0c8fd8d7d
@ -7,10 +7,6 @@ import org.bukkit.entity.CreatureType;
|
||||
|
||||
public class Conf
|
||||
{
|
||||
// track players with admin access who have enabled "admin bypass" mode, and should therefore be able to build anywhere
|
||||
// not worth saving between server restarts, I think
|
||||
public static transient Set<String> adminBypassPlayers = Collections.synchronizedSet(new HashSet<String>());
|
||||
|
||||
public static List<String> baseCommandAliases = new ArrayList<String>();
|
||||
public static boolean allowNoSlashCommand = true;
|
||||
|
||||
|
@ -8,7 +8,8 @@ import org.bukkit.entity.Player;
|
||||
|
||||
import com.massivecraft.factions.util.MiscUtil;
|
||||
|
||||
public class FLocation {
|
||||
public class FLocation
|
||||
{
|
||||
|
||||
private String worldName = "world";
|
||||
private int x = 0;
|
||||
@ -20,31 +21,37 @@ public class FLocation {
|
||||
// Constructors
|
||||
//----------------------------------------------//
|
||||
|
||||
public FLocation() {
|
||||
public FLocation()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public FLocation(String worldName, int x, int z) {
|
||||
public FLocation(String worldName, int x, int z)
|
||||
{
|
||||
this.worldName = worldName;
|
||||
this.x = x;
|
||||
this.z = z;
|
||||
}
|
||||
|
||||
public FLocation(Location location) {
|
||||
public FLocation(Location location)
|
||||
{
|
||||
// this(location.getWorld().getName(), (int) Math.floor(location.getX() / cellSize) , (int) Math.floor(location.getZ() / cellSize));
|
||||
// handy dandy rapid bitshifting instead of division
|
||||
this(location.getWorld().getName(), location.getBlockX() >> 4, location.getBlockZ() >> 4);
|
||||
}
|
||||
|
||||
public FLocation(Player player) {
|
||||
public FLocation(Player player)
|
||||
{
|
||||
this(player.getLocation());
|
||||
}
|
||||
|
||||
public FLocation(FPlayer fplayer) {
|
||||
public FLocation(FPlayer fplayer)
|
||||
{
|
||||
this(fplayer.getPlayer());
|
||||
}
|
||||
|
||||
public FLocation(Block block) {
|
||||
public FLocation(Block block)
|
||||
{
|
||||
this(block.getLocation());
|
||||
}
|
||||
|
||||
@ -52,31 +59,38 @@ public class FLocation {
|
||||
// Getters and Setters
|
||||
//----------------------------------------------//
|
||||
|
||||
public String getWorldName() {
|
||||
public String getWorldName()
|
||||
{
|
||||
return worldName;
|
||||
}
|
||||
|
||||
public void setWorldName(String worldName) {
|
||||
public void setWorldName(String worldName)
|
||||
{
|
||||
this.worldName = worldName;
|
||||
}
|
||||
|
||||
public long getX() {
|
||||
public long getX()
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
public void setX(int x) {
|
||||
public void setX(int x)
|
||||
{
|
||||
this.x = x;
|
||||
}
|
||||
|
||||
public long getZ() {
|
||||
public long getZ()
|
||||
{
|
||||
return z;
|
||||
}
|
||||
|
||||
public void setZ(int z) {
|
||||
public void setZ(int z)
|
||||
{
|
||||
this.z = z;
|
||||
}
|
||||
|
||||
public String getCoordString() {
|
||||
public String getCoordString()
|
||||
{
|
||||
return ""+x+","+z;
|
||||
}
|
||||
|
||||
@ -93,11 +107,14 @@ public class FLocation {
|
||||
return new FLocation(this.worldName, this.x + dx, this.z + dz);
|
||||
}
|
||||
|
||||
public static HashSet<FLocation> getArea(FLocation from, FLocation to) {
|
||||
public static HashSet<FLocation> getArea(FLocation from, FLocation to)
|
||||
{
|
||||
HashSet<FLocation> ret = new HashSet<FLocation>();
|
||||
|
||||
for (long x : MiscUtil.range(from.getX(), to.getX())) {
|
||||
for (long z : MiscUtil.range(from.getZ(), to.getZ())) {
|
||||
for (long x : MiscUtil.range(from.getX(), to.getX()))
|
||||
{
|
||||
for (long z : MiscUtil.range(from.getZ(), to.getZ()))
|
||||
{
|
||||
ret.add(new FLocation(from.getWorldName(), (int)x, (int)z));
|
||||
}
|
||||
}
|
||||
@ -110,7 +127,8 @@ public class FLocation {
|
||||
//----------------------------------------------//
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
public int hashCode()
|
||||
{
|
||||
int hash = 3;
|
||||
hash = 19 * hash + (this.worldName != null ? this.worldName.hashCode() : 0);
|
||||
hash = 19 * hash + this.x;
|
||||
@ -119,7 +137,8 @@ public class FLocation {
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if (obj == this)
|
||||
return true;
|
||||
if (!(obj instanceof FLocation))
|
||||
|
@ -103,6 +103,10 @@ public class FPlayer extends PlayerEntity
|
||||
}
|
||||
}
|
||||
|
||||
private transient boolean isAdminBypassing = false;
|
||||
public boolean isAdminBypassing() { return this.isAdminBypassing; }
|
||||
public void setIsAdminBypassing(boolean val) { this.isAdminBypassing = val; }
|
||||
|
||||
// FIELD: loginPvpDisabled
|
||||
private transient boolean loginPvpDisabled;
|
||||
|
||||
@ -555,7 +559,7 @@ public class FPlayer extends PlayerEntity
|
||||
}
|
||||
|
||||
// if economy is enabled and they're not on the bypass list, make 'em pay
|
||||
if (makePay && Econ.enabled() && !Conf.adminBypassPlayers.contains(this.getId()))
|
||||
if (makePay && Econ.enabled() && ! this.isAdminBypassing())
|
||||
{
|
||||
double cost = Conf.econCostLeave;
|
||||
// pay up
|
||||
@ -625,7 +629,7 @@ public class FPlayer extends PlayerEntity
|
||||
return false;
|
||||
}
|
||||
|
||||
if (myFaction.getFPlayers().size() < Conf.claimsRequireMinFactionMembers && !Conf.adminBypassPlayers.contains(this.getId()))
|
||||
if (myFaction.getFPlayers().size() < Conf.claimsRequireMinFactionMembers && ! this.isAdminBypassing())
|
||||
{
|
||||
sendMessage("Your faction must have at least "+Conf.claimsRequireMinFactionMembers+" members to claim land.");
|
||||
return false;
|
||||
@ -667,7 +671,7 @@ public class FPlayer extends PlayerEntity
|
||||
if
|
||||
(
|
||||
Conf.claimsMustBeConnected
|
||||
&& !Conf.adminBypassPlayers.contains(this.getId())
|
||||
&& ! this.isAdminBypassing()
|
||||
&& myFaction.getLandRoundedInWorld(flocation.getWorldName()) > 0
|
||||
&& !Board.isConnectedLocation(flocation, myFaction)
|
||||
&& (!Conf.claimsCanBeUnconnectedIfOwnedByOtherFaction || !otherFaction.isNormal())
|
||||
@ -709,7 +713,7 @@ public class FPlayer extends PlayerEntity
|
||||
}
|
||||
|
||||
// if economy is enabled and they're not on the bypass list, make 'em pay
|
||||
if (Econ.enabled() && !Conf.adminBypassPlayers.contains(this.getId()))
|
||||
if (Econ.enabled() && ! this.isAdminBypassing())
|
||||
{
|
||||
double cost = Econ.calculateClaimCost(ownedLand, otherFaction.isNormal());
|
||||
String costString = Econ.moneyString(cost);
|
||||
|
@ -46,8 +46,10 @@ public class Faction extends Entity
|
||||
|
||||
// FIELD: peacefulExplosionsEnabled
|
||||
private boolean peacefulExplosionsEnabled;
|
||||
public void setPeacefulExplosions(boolean disable) { peacefulExplosionsEnabled = disable; } //TODO: Convert to argswitch in command!!
|
||||
public void setPeacefulExplosions() { setPeacefulExplosions(!peacefulExplosionsEnabled); }
|
||||
public void setPeacefulExplosionsEnabled(boolean val) { peacefulExplosionsEnabled = val; }
|
||||
public boolean getPeacefulExplosionsEnabled(){ return this.peacefulExplosionsEnabled; }
|
||||
|
||||
public boolean noExplosionsInTerritory() { return this.peaceful && ! peacefulExplosionsEnabled; }
|
||||
|
||||
// FIELD: permanent
|
||||
// "permanent" status can only be set by server admins/moderators/ops, and allows the faction to remain even with 0 members
|
||||
@ -157,7 +159,7 @@ public class Faction extends Entity
|
||||
|
||||
public boolean noMonstersInTerritory() { return isSafeZone() || (peaceful && Conf.peacefulTerritoryDisableMonsters); }
|
||||
|
||||
public boolean noExplosionsInTerritory() { return peaceful && !peacefulExplosionsEnabled; }
|
||||
|
||||
|
||||
// -------------------------------
|
||||
// Understand the types
|
||||
|
@ -197,9 +197,18 @@ public class P extends MPlugin
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
Board.save();
|
||||
Conf.save();
|
||||
unhookEssentialsChat();
|
||||
super.onDisable();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postSaveTask()
|
||||
{
|
||||
Board.save();
|
||||
Conf.save();
|
||||
}
|
||||
|
||||
// -------------------------------------------- //
|
||||
// Integration with other plugins
|
||||
@ -500,17 +509,4 @@ public class P extends MPlugin
|
||||
}
|
||||
*/
|
||||
|
||||
// -------------------------------------------- //
|
||||
// Save all
|
||||
// -------------------------------------------- //
|
||||
|
||||
// TODO: Add a hook to this??
|
||||
public static void saveAll()
|
||||
{
|
||||
// FPlayer.save();
|
||||
// Faction.save();
|
||||
Board.save();
|
||||
Conf.save();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,12 +0,0 @@
|
||||
package com.massivecraft.factions;
|
||||
|
||||
public class SaveTask implements Runnable {
|
||||
|
||||
//TODO are they removed on disable?
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
P.saveAll();
|
||||
}
|
||||
|
||||
}
|
@ -31,6 +31,7 @@ public abstract class FCommand extends MCommand<P>
|
||||
}
|
||||
|
||||
public FPlayer fme;
|
||||
public Faction myFaction;
|
||||
public boolean senderMustBeMember;
|
||||
public boolean senderMustBeModerator;
|
||||
public boolean senderMustBeAdmin;
|
||||
@ -49,10 +50,12 @@ public abstract class FCommand extends MCommand<P>
|
||||
if (sender instanceof Player)
|
||||
{
|
||||
this.fme = FPlayers.i.get((Player)sender);
|
||||
this.myFaction = this.fme.getFaction();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.fme = null;
|
||||
this.myFaction = null;
|
||||
}
|
||||
super.execute(sender, args, commandChain);
|
||||
}
|
||||
@ -267,7 +270,7 @@ public abstract class FCommand extends MCommand<P>
|
||||
// if economy is enabled and they're not on the bypass list, make 'em pay; returns true unless person can't afford the cost
|
||||
public boolean payForCommand(double cost)
|
||||
{
|
||||
if ( ! Econ.enabled() || this.fme == null || cost == 0.0 || Conf.adminBypassPlayers.contains(fme.getName()))
|
||||
if ( ! Econ.enabled() || this.fme == null || cost == 0.0 || fme.isAdminBypassing())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -2,7 +2,6 @@ package com.massivecraft.factions.commands;
|
||||
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.FPlayers;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.struct.Role;
|
||||
|
||||
@ -36,8 +35,6 @@ public class FCommandAdmin extends FCommand
|
||||
FPlayer fyou = this.argAsBestFPlayerMatch(0);
|
||||
if (fyou == null) return;
|
||||
|
||||
Faction myFaction = fme.getFaction();
|
||||
|
||||
if (fyou.getFaction() != myFaction)
|
||||
{
|
||||
sendMessageParsed("%s<i> is not a member in your faction.", fyou.getNameAndRelevant(fme));
|
||||
|
@ -2,7 +2,6 @@ package com.massivecraft.factions.commands;
|
||||
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.FLocation;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
|
||||
public class FCommandAutoClaim extends FCommand
|
||||
@ -42,7 +41,6 @@ public class FCommandAutoClaim extends FCommand
|
||||
return;
|
||||
}
|
||||
|
||||
Faction myFaction = fme.getFaction();
|
||||
FLocation flocation = new FLocation(fme);
|
||||
|
||||
if (Conf.worldsNoClaiming.contains(flocation.getWorldName()))
|
||||
|
@ -32,10 +32,10 @@ public class FCommandBalance extends FCommand
|
||||
return;
|
||||
}
|
||||
|
||||
Faction faction = this.argAsFaction(0, fme.getFaction());
|
||||
Faction faction = this.argAsFaction(0, myFaction);
|
||||
|
||||
// TODO MAKE HIERARCHIAL COMMAND STRUCTURE HERE
|
||||
if ( faction != fme.getFaction() && ! Permission.VIEW_ANY_FACTION_BALANCE.has(sender))
|
||||
if ( faction != myFaction && ! Permission.VIEW_ANY_FACTION_BALANCE.has(sender))
|
||||
{
|
||||
sendMessageParsed("<b>You do not have sufficient permissions to view the bank balance of other factions.");
|
||||
return;
|
||||
|
@ -1,10 +1,8 @@
|
||||
package com.massivecraft.factions.commands;
|
||||
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
|
||||
|
||||
public class FCommandBypass extends FCommand
|
||||
{
|
||||
public FCommandBypass()
|
||||
@ -15,7 +13,7 @@ public class FCommandBypass extends FCommand
|
||||
//this.requiredArgs.add("");
|
||||
this.optionalArgs.put("on/off", "flipp");
|
||||
|
||||
this.permission = Permission.ADMIN_BYPASS.node;
|
||||
this.permission = Permission.COMMAND_BYPASS.node;
|
||||
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
@ -26,16 +24,16 @@ public class FCommandBypass extends FCommand
|
||||
@Override
|
||||
public void perform()
|
||||
{
|
||||
fme.setIsAdminBypassing(this.argAsBool(0, ! fme.isAdminBypassing()));
|
||||
|
||||
// TODO: Move this to a transient field in the model??
|
||||
if ( ! Conf.adminBypassPlayers.contains(fme.getName()))
|
||||
if ( fme.isAdminBypassing())
|
||||
{
|
||||
Conf.adminBypassPlayers.add(fme.getName());
|
||||
fme.sendMessageParsed("<i>You have enabled admin bypass mode. You will be able to build or destroy anywhere.");
|
||||
P.p.log(fme.getName() + " has ENABLED admin bypass mode.");
|
||||
}
|
||||
else
|
||||
{
|
||||
Conf.adminBypassPlayers.remove(fme.getName());
|
||||
fme.sendMessageParsed("<i>You have disabled admin bypass mode.");
|
||||
P.p.log(fme.getName() + " DISABLED admin bypass mode.");
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
package com.massivecraft.factions.commands;
|
||||
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
|
||||
public class FCommandDeinvite extends FCommand
|
||||
@ -36,8 +35,6 @@ public class FCommandDeinvite extends FCommand
|
||||
FPlayer you = this.argAsBestFPlayerMatch(0);
|
||||
if (you == null) return;
|
||||
|
||||
Faction myFaction = fme.getFaction();
|
||||
|
||||
if (you.getFaction() == myFaction)
|
||||
{
|
||||
sendMessageParsed("%s<i> is already a member of %s", you.getName(), myFaction.getTag());
|
||||
|
@ -33,7 +33,7 @@ public class FCommandDeposit extends FCommand
|
||||
{
|
||||
if ( ! Conf.bankEnabled) return;
|
||||
|
||||
Faction faction = fme.getFaction();
|
||||
Faction faction = myFaction;
|
||||
|
||||
double amount = this.argAsDouble(0, 0);
|
||||
|
||||
|
@ -39,13 +39,13 @@ public class FCommandDescription extends FCommand
|
||||
return;
|
||||
}
|
||||
|
||||
fme.getFaction().setDescription(TextUtil.implode(args, " "));
|
||||
myFaction.setDescription(TextUtil.implode(args, " "));
|
||||
|
||||
// Broadcast the description to everyone
|
||||
for (FPlayer fplayer : FPlayers.i.getOnline())
|
||||
{
|
||||
fplayer.sendMessageParsed("The faction "+fplayer.getRelationColor(fme)+fme.getFaction().getTag()+"<i> changed their description to:");
|
||||
fplayer.sendMessageParsed("<i>"+fme.getFaction().getDescription());
|
||||
fplayer.sendMessageParsed("The faction "+fplayer.getRelationColor(fme)+myFaction.getTag()+"<i> changed their description to:");
|
||||
fplayer.sendMessageParsed("<i>"+myFaction.getDescription());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -33,10 +33,10 @@ public class FCommandDisband extends FCommand
|
||||
public void perform()
|
||||
{
|
||||
// The faction, default to your own.. but null if console sender.
|
||||
Faction faction = this.argAsFaction(0, fme == null ? null : fme.getFaction());
|
||||
Faction faction = this.argAsFaction(0, fme == null ? null : myFaction);
|
||||
if (faction == null) return;
|
||||
|
||||
boolean isMyFaction = fme == null ? false : faction == fme.getFaction();
|
||||
boolean isMyFaction = fme == null ? false : faction == myFaction;
|
||||
|
||||
if (isMyFaction)
|
||||
{
|
||||
|
@ -49,8 +49,6 @@ public class FCommandHome extends FCommand
|
||||
return;
|
||||
}
|
||||
|
||||
Faction myFaction = fme.getFaction();
|
||||
|
||||
if ( ! myFaction.hasHome())
|
||||
{
|
||||
fme.sendMessage("You faction does not have a home. " + (fme.getRole().value < Role.MODERATOR.value ? " Ask your leader to:" : "You should:"));
|
||||
|
@ -2,7 +2,6 @@ package com.massivecraft.factions.commands;
|
||||
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
|
||||
public class FCommandInvite extends FCommand
|
||||
@ -36,8 +35,6 @@ public class FCommandInvite extends FCommand
|
||||
FPlayer you = this.argAsBestFPlayerMatch(0);
|
||||
if (you == null) return;
|
||||
|
||||
Faction myFaction = fme.getFaction();
|
||||
|
||||
if (you.getFaction() == myFaction)
|
||||
{
|
||||
sendMessageParsed("%s<i> is already a member of %s", you.getName(), myFaction.getTag());
|
||||
|
@ -40,7 +40,7 @@ public class FCommandJoin extends FCommand
|
||||
return;
|
||||
}
|
||||
|
||||
if (faction == fme.getFaction())
|
||||
if (faction == myFaction)
|
||||
{
|
||||
sendMessageParsed("<b>You are already a member of %s", faction.getTag(fme));
|
||||
return;
|
||||
|
@ -45,7 +45,6 @@ public class FCommandKick extends FCommand
|
||||
}
|
||||
|
||||
Faction yourFaction = you.getFaction();
|
||||
Faction myFaction = fme.getFaction();
|
||||
|
||||
// players with admin-level "disband" permission can bypass these requirements
|
||||
if ( ! Permission.COMMAND_KICK_ANY.has(sender))
|
||||
|
@ -60,7 +60,7 @@ public class FCommandMap extends FCommand
|
||||
|
||||
public void showMap()
|
||||
{
|
||||
sendMessage(Board.getMap(fme.getFaction(), new FLocation(fme), fme.getPlayer().getLocation().getYaw()));
|
||||
sendMessage(Board.getMap(myFaction, new FLocation(fme), fme.getPlayer().getLocation().getYaw()));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
package com.massivecraft.factions.commands;
|
||||
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.struct.Role;
|
||||
|
||||
@ -36,8 +35,6 @@ public class FCommandMod extends FCommand
|
||||
FPlayer you = this.argAsBestFPlayerMatch(0);
|
||||
if (you == null) return;
|
||||
|
||||
Faction myFaction = fme.getFaction();
|
||||
|
||||
if (you.getFaction() != myFaction)
|
||||
{
|
||||
sendMessageParsed("%s<b> is not a member in your faction.", you.getNameAndRelevant(fme));
|
||||
|
@ -1,58 +1,49 @@
|
||||
package com.massivecraft.factions.commands;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.struct.Role;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
|
||||
public class FCommandNoBoom extends FCommand {
|
||||
|
||||
public FCommandNoBoom() {
|
||||
aliases.add("noboom");
|
||||
public class FCommandNoBoom extends FCommand
|
||||
{
|
||||
public FCommandNoBoom()
|
||||
{
|
||||
super();
|
||||
this.aliases.add("noboom");
|
||||
|
||||
helpDescription = "Peaceful factions only: toggle explosions";
|
||||
//this.requiredArgs.add("");
|
||||
this.optionalArgs.put("on/off", "flipp");
|
||||
|
||||
this.permission = Permission.COMMAND_NO_BOOM.node;
|
||||
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = true;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(CommandSender sender) {
|
||||
return P.hasPermPeacefulExplosionToggle(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
if ( ! assertHasFaction()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if( isLocked() ) {
|
||||
public void perform()
|
||||
{
|
||||
if( isLocked() )
|
||||
{
|
||||
sendLockMessage();
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ! assertMinRole(Role.MODERATOR)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Faction myFaction = fme.getFaction();
|
||||
|
||||
if (!myFaction.isPeaceful()) {
|
||||
fme.sendMessage("This command is only usable by factions which are specially designated as peaceful.");
|
||||
if ( ! myFaction.isPeaceful())
|
||||
{
|
||||
fme.sendMessageParsed("<b>This command is only usable by factions which are specially designated as peaceful.");
|
||||
return;
|
||||
}
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!payForCommand(Conf.econCostNoBoom)) {
|
||||
return;
|
||||
}
|
||||
if ( ! payForCommand(Conf.econCostNoBoom)) return;
|
||||
|
||||
myFaction.setPeacefulExplosions();
|
||||
myFaction.setPeacefulExplosionsEnabled(this.argAsBool(0, ! myFaction.getPeacefulExplosionsEnabled()));
|
||||
|
||||
String enabled = myFaction.noExplosionsInTerritory() ? "disabled" : "enabled";
|
||||
|
||||
// Inform
|
||||
myFaction.sendMessage(fme.getNameAndRelevant(myFaction)+Conf.colorSystem+" has "+enabled+" explosions in your faction's territory.");
|
||||
myFaction.sendMessageParsed("%s<i> has "+enabled+" explosions in your faction's territory.", fme.getNameAndRelevant(myFaction));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2,51 +2,52 @@ package com.massivecraft.factions.commands;
|
||||
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.struct.Role;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
|
||||
public class FCommandOpen extends FCommand {
|
||||
|
||||
public FCommandOpen() {
|
||||
aliases.add("open");
|
||||
aliases.add("close");
|
||||
public class FCommandOpen extends FCommand
|
||||
{
|
||||
public FCommandOpen()
|
||||
{
|
||||
super();
|
||||
this.aliases.add("open");
|
||||
|
||||
helpDescription = "Switch if invitation is required to join";
|
||||
//this.requiredArgs.add("");
|
||||
this.optionalArgs.put("yes/no", "flipp");
|
||||
|
||||
this.permission = Permission.COMMAND_OPEN.node;
|
||||
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = true;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
if ( ! assertHasFaction()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if( isLocked() ) {
|
||||
sendLockMessage();
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ! assertMinRole(Role.MODERATOR))
|
||||
public void perform()
|
||||
{
|
||||
if( isLocked() )
|
||||
{
|
||||
sendLockMessage();
|
||||
return;
|
||||
}
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!payForCommand(Conf.econCostOpen))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if ( ! payForCommand(Conf.econCostOpen)) return;
|
||||
|
||||
Faction myFaction = fme.getFaction();
|
||||
myFaction.setOpen( ! fme.getFaction().getOpen());
|
||||
myFaction.setOpen(this.argAsBool(0, ! myFaction.getOpen()));
|
||||
|
||||
String open = myFaction.getOpen() ? "open" : "closed";
|
||||
|
||||
// Inform
|
||||
myFaction.sendMessage(fme.getNameAndRelevant(myFaction)+Conf.colorSystem+" changed the faction to "+open);
|
||||
for (Faction faction : Faction.getAll()) {
|
||||
if (faction == fme.getFaction()) {
|
||||
myFaction.sendMessageParsed("%s<i> changed the faction to ", fme.getNameAndRelevant(myFaction));
|
||||
for (Faction faction : Factions.i.get())
|
||||
{
|
||||
if (faction == myFaction)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
faction.sendMessage(Conf.colorSystem+"The faction "+myFaction.getTag(faction)+Conf.colorSystem+" is now "+open);
|
||||
faction.sendMessageParsed("<i>The faction %s<i> is now %s", myFaction.getTag(faction), open);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4,102 +4,112 @@ import com.massivecraft.factions.Board;
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.FLocation;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.struct.Role;
|
||||
|
||||
|
||||
public class FCommandOwner extends FCommand {
|
||||
public class FCommandOwner extends FCommand
|
||||
{
|
||||
|
||||
public FCommandOwner() {
|
||||
aliases.add("owner");
|
||||
|
||||
optionalParameters.add("player name");
|
||||
|
||||
helpDescription = "set ownership of claimed land";
|
||||
public FCommandOwner()
|
||||
{
|
||||
super();
|
||||
this.aliases.add("owner");
|
||||
|
||||
//this.requiredArgs.add("");
|
||||
this.optionalArgs.put("player name", "you");
|
||||
|
||||
this.permission = Permission.COMMAND_OWNER.node;
|
||||
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
// TODO: Fix colors!
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
boolean hasBypass = P.hasPermAdminBypass(fme);
|
||||
|
||||
public void perform()
|
||||
{
|
||||
if( isLocked() )
|
||||
{
|
||||
sendLockMessage();
|
||||
return;
|
||||
}
|
||||
|
||||
boolean hasBypass = fme.isAdminBypassing();
|
||||
|
||||
if ( ! hasBypass && ! assertHasFaction()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if( isLocked() ) {
|
||||
sendLockMessage();
|
||||
if ( ! Conf.ownedAreasEnabled)
|
||||
{
|
||||
fme.sendMessageParsed("<b>Sorry, but owned areas are disabled on this server.");
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ! Conf.ownedAreasEnabled) {
|
||||
fme.sendMessage("Sorry, but owned areas are disabled on this server.");
|
||||
if ( ! hasBypass && Conf.ownedAreasLimitPerFaction > 0 && myFaction.getCountOfClaimsWithOwners() >= Conf.ownedAreasLimitPerFaction)
|
||||
{
|
||||
fme.sendMessageParsed("<b>Sorry, but you have reached the server's <h>limit of %d <b>owned areas per faction.", Conf.ownedAreasLimitPerFaction);
|
||||
return;
|
||||
}
|
||||
|
||||
Faction myFaction = fme.getFaction();
|
||||
|
||||
if (!hasBypass && Conf.ownedAreasLimitPerFaction > 0 && myFaction.getCountOfClaimsWithOwners() >= Conf.ownedAreasLimitPerFaction) {
|
||||
fme.sendMessage("Sorry, but you have reached the server's limit of "+Conf.ownedAreasLimitPerFaction+" owned areas per faction.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!hasBypass && !assertMinRole(Conf.ownedAreasModeratorsCanSet ? Role.MODERATOR : Role.ADMIN)) {
|
||||
if ( ! hasBypass && !assertMinRole(Conf.ownedAreasModeratorsCanSet ? Role.MODERATOR : Role.ADMIN))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
FLocation flocation = new FLocation(fme);
|
||||
|
||||
if (Board.getIdAt(flocation) != myFaction.getId()) {
|
||||
if (!hasBypass) {
|
||||
fme.sendMessage("This land is not claimed by your faction, so you can't set ownership of it.");
|
||||
Faction factionHere = Board.getFactionAt(flocation);
|
||||
if (factionHere != myFaction)
|
||||
{
|
||||
if ( ! hasBypass)
|
||||
{
|
||||
fme.sendMessageParsed("<b>This land is not claimed by your faction, so you can't set ownership of it.");
|
||||
return;
|
||||
}
|
||||
|
||||
myFaction = Board.getFactionAt(flocation);
|
||||
if (!myFaction.isNormal()) {
|
||||
fme.sendMessage("This land is not claimed by a faction. Ownership is not possible.");
|
||||
if ( ! factionHere.isNormal())
|
||||
{
|
||||
fme.sendMessageParsed("<b>This land is not claimed by a faction. Ownership is not possible.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
FPlayer target;
|
||||
|
||||
if (parameters.size() > 0) {
|
||||
target = findFPlayer(parameters.get(0), false);
|
||||
} else {
|
||||
target = fme;
|
||||
}
|
||||
if (target == null) {
|
||||
return;
|
||||
}
|
||||
FPlayer target = this.argAsBestFPlayerMatch(0, fme);
|
||||
if (target == null) return;
|
||||
|
||||
String playerName = target.getName();
|
||||
|
||||
if (target.getFaction().getId() != myFaction.getId()) {
|
||||
fme.sendMessage(playerName + " is not a member of this faction.");
|
||||
if (target.getFaction() != myFaction)
|
||||
{
|
||||
fme.sendMessageParsed("%s<i> is not a member of this faction.", playerName);
|
||||
return;
|
||||
}
|
||||
|
||||
// if no player name was passed, and this claim does already have owners set, clear them
|
||||
if (parameters.isEmpty() && myFaction.doesLocationHaveOwnersSet(flocation)) {
|
||||
if (args.isEmpty() && myFaction.doesLocationHaveOwnersSet(flocation))
|
||||
{
|
||||
myFaction.clearClaimOwnership(flocation);
|
||||
fme.sendMessage("You have cleared ownership for this claimed area.");
|
||||
fme.sendMessageParsed("<i>You have cleared ownership for this claimed area.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (myFaction.isPlayerInOwnerList(playerName, flocation)) {
|
||||
if (myFaction.isPlayerInOwnerList(playerName, flocation))
|
||||
{
|
||||
myFaction.removePlayerAsOwner(playerName, flocation);
|
||||
fme.sendMessage("You have removed ownership of this claimed land from "+playerName+".");
|
||||
fme.sendMessageParsed("<i>You have removed ownership of this claimed land from %s<i>.", playerName);
|
||||
return;
|
||||
}
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!payForCommand(Conf.econCostOwner)) {
|
||||
return;
|
||||
}
|
||||
if ( ! payForCommand(Conf.econCostOwner)) return;
|
||||
|
||||
myFaction.setPlayerAsOwner(playerName, flocation);
|
||||
fme.sendMessage("You have added "+playerName+" to the owner list for this claimed land.");
|
||||
fme.sendMessageParsed("<i>You have added %s<i> to the owner list for this claimed land.", playerName);
|
||||
}
|
||||
}
|
||||
|
@ -1,59 +1,72 @@
|
||||
package com.massivecraft.factions.commands;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.Iterator;
|
||||
|
||||
import com.massivecraft.factions.Board;
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.FLocation;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
|
||||
|
||||
public class FCommandOwnerList extends FCommand {
|
||||
public class FCommandOwnerList extends FCommand
|
||||
{
|
||||
|
||||
public FCommandOwnerList() {
|
||||
aliases.add("ownerlist");
|
||||
|
||||
helpDescription = "list owner(s) of this claimed land";
|
||||
public FCommandOwnerList()
|
||||
{
|
||||
super();
|
||||
this.aliases.add("ownerlist");
|
||||
|
||||
//this.requiredArgs.add("");
|
||||
//this.optionalArgs.put("", "");
|
||||
|
||||
this.permission = Permission.COMMAND_OWNERLIST.node;
|
||||
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
boolean hasBypass = P.hasPermAdminBypass(fme);
|
||||
public void perform()
|
||||
{
|
||||
boolean hasBypass = fme.isAdminBypassing();
|
||||
|
||||
if ( ! hasBypass && ! assertHasFaction()) {
|
||||
if ( ! hasBypass && ! assertHasFaction())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ! Conf.ownedAreasEnabled) {
|
||||
fme.sendMessage("Owned areas are disabled on this server.");
|
||||
if ( ! Conf.ownedAreasEnabled)
|
||||
{
|
||||
fme.sendMessageParsed("<b>Owned areas are disabled on this server.");
|
||||
return;
|
||||
}
|
||||
|
||||
Faction myFaction = fme.getFaction();
|
||||
FLocation flocation = new FLocation(fme);
|
||||
|
||||
if (Board.getIdAt(flocation) != myFaction.getId()) {
|
||||
if (!hasBypass) {
|
||||
fme.sendMessage("This land is not claimed by your faction.");
|
||||
if (Board.getIdAt(flocation) != myFaction.getId())
|
||||
{
|
||||
if (!hasBypass)
|
||||
{
|
||||
fme.sendMessageParsed("<b>This land is not claimed by your faction.");
|
||||
return;
|
||||
}
|
||||
|
||||
myFaction = Board.getFactionAt(flocation);
|
||||
if (!myFaction.isNormal()) {
|
||||
fme.sendMessage("This land is not claimed by any faction, thus no owners.");
|
||||
if (!myFaction.isNormal())
|
||||
{
|
||||
fme.sendMessageParsed("<i>This land is not claimed by any faction, thus no owners.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
String owners = myFaction.getOwnerListString(flocation);
|
||||
|
||||
if (owners == null || owners.isEmpty()) {
|
||||
fme.sendMessage("No owners are set here; everyone in the faction has access.");
|
||||
if (owners == null || owners.isEmpty())
|
||||
{
|
||||
fme.sendMessageParsed("<i>No owners are set here; everyone in the faction has access.");
|
||||
return;
|
||||
}
|
||||
|
||||
fme.sendMessage("Current owner(s) of this land: "+owners);
|
||||
fme.sendMessageParsed("<i>Current owner(s) of this land: %s", owners);
|
||||
}
|
||||
}
|
||||
|
@ -18,7 +18,7 @@ public class FCommandPay extends FCommand
|
||||
|
||||
this.requiredArgs.add("faction");
|
||||
this.requiredArgs.add("amount");
|
||||
//this.optionalArgs.put("factiontag", "yours");
|
||||
//this.optionalArgs.put("", "");
|
||||
|
||||
this.permission = Permission.COMMAND_PAY.node;
|
||||
|
||||
|
@ -1,59 +1,62 @@
|
||||
package com.massivecraft.factions.commands;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.FPlayers;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.integration.SpoutFeatures;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
|
||||
public class FCommandPeaceful extends FCommand {
|
||||
public class FCommandPeaceful extends FCommand
|
||||
{
|
||||
|
||||
public FCommandPeaceful() {
|
||||
aliases.add("peaceful");
|
||||
public FCommandPeaceful()
|
||||
{
|
||||
super();
|
||||
this.aliases.add("peaceful");
|
||||
|
||||
this.requiredArgs.add("faction tag");
|
||||
//this.optionalArgs.put("", "");
|
||||
|
||||
this.permission = Permission.COMMAND_SET_PEACEFUL.node;
|
||||
|
||||
senderMustBePlayer = false;
|
||||
|
||||
requiredParameters.add("faction tag");
|
||||
|
||||
helpDescription = "Designate a faction as peaceful";
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(CommandSender sender) {
|
||||
return P.hasPermSetPeaceful(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
if( parameters.size() > 0) {
|
||||
Faction faction = Faction.findByTag(parameters.get(0));
|
||||
|
||||
if (faction == null) {
|
||||
sendMessage("No faction found with the tag \"" + parameters.get(0) + "\"");
|
||||
return;
|
||||
}
|
||||
public void perform()
|
||||
{
|
||||
Faction faction = this.argAsFaction(0);
|
||||
if (faction == null) return;
|
||||
|
||||
String change;
|
||||
if(faction.isPeaceful()) {
|
||||
change = "removed peaceful status from";
|
||||
faction.setPeaceful(false);
|
||||
} else {
|
||||
change = "granted peaceful status to";
|
||||
faction.setPeaceful(true);
|
||||
}
|
||||
// Inform all players
|
||||
for (FPlayer fplayer : FPlayer.getAllOnline()) {
|
||||
if (fplayer.getFaction() == faction) {
|
||||
fplayer.sendMessage(fme.getNameAndRelevant(fplayer)+Conf.colorSystem+" has "+change+" your faction.");
|
||||
} else {
|
||||
fplayer.sendMessage(fme.getNameAndRelevant(fplayer)+Conf.colorSystem+" has "+change+" the faction \"" + faction.getTag(fplayer) + "\".");
|
||||
}
|
||||
}
|
||||
|
||||
SpoutFeatures.updateAppearances(faction);
|
||||
String change;
|
||||
if (faction.isPeaceful())
|
||||
{
|
||||
change = "removed peaceful status from";
|
||||
faction.setPeaceful(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
change = "granted peaceful status to";
|
||||
faction.setPeaceful(true);
|
||||
}
|
||||
|
||||
// Inform all players
|
||||
for (FPlayer fplayer : FPlayers.i.getOnline())
|
||||
{
|
||||
if (fplayer.getFaction() == faction)
|
||||
{
|
||||
fplayer.sendMessageParsed(fme.getNameAndRelevant(fplayer)+"<i> has "+change+" your faction.");
|
||||
}
|
||||
else
|
||||
{
|
||||
fplayer.sendMessageParsed(fme.getNameAndRelevant(fplayer)+"<i> has "+change+" the faction \"" + faction.getTag(fplayer) + "\".");
|
||||
}
|
||||
}
|
||||
|
||||
SpoutFeatures.updateAppearances(faction);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,57 +1,58 @@
|
||||
package com.massivecraft.factions.commands;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.FPlayers;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
|
||||
|
||||
public class FCommandPermanent extends FCommand {
|
||||
|
||||
public FCommandPermanent() {
|
||||
aliases.add("permanent");
|
||||
public class FCommandPermanent extends FCommand
|
||||
{
|
||||
public FCommandPermanent()
|
||||
{
|
||||
super();
|
||||
this.aliases.add("permanent");
|
||||
|
||||
this.requiredArgs.add("faction tag");
|
||||
//this.optionalArgs.put("", "");
|
||||
|
||||
this.permission = Permission.COMMAND_SET_PERMANENT.node;
|
||||
|
||||
senderMustBePlayer = false;
|
||||
|
||||
requiredParameters.add("faction tag");
|
||||
|
||||
helpDescription = "Designate a faction as permanent";
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(CommandSender sender) {
|
||||
return P.hasPermSetPermanent(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
if( parameters.size() > 0) {
|
||||
Faction faction = Faction.findByTag(parameters.get(0));
|
||||
|
||||
if (faction == null) {
|
||||
sendMessage("No faction found with the tag \"" + parameters.get(0) + "\"");
|
||||
return;
|
||||
public void perform()
|
||||
{
|
||||
Faction faction = this.argAsFaction(0);
|
||||
if (faction == null) return;
|
||||
|
||||
String change;
|
||||
if(faction.isPermanent())
|
||||
{
|
||||
change = "removed permanent status from";
|
||||
faction.setPermanent(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
change = "added permanent status to";
|
||||
faction.setPermanent(true);
|
||||
}
|
||||
|
||||
// Inform all players
|
||||
for (FPlayer fplayer : FPlayers.i.getOnline())
|
||||
{
|
||||
if (fplayer.getFaction() == faction)
|
||||
{
|
||||
fplayer.sendMessageParsed(fme.getNameAndRelevant(fplayer)+"<i> has "+change+" your faction.");
|
||||
}
|
||||
|
||||
String change;
|
||||
if(faction.isPermanent()) {
|
||||
change = "removed permanent status from";
|
||||
faction.setPermanent(false);
|
||||
} else {
|
||||
change = "added permanent status to";
|
||||
faction.setPermanent(true);
|
||||
}
|
||||
// Inform all players
|
||||
for (FPlayer fplayer : FPlayer.getAllOnline()) {
|
||||
if (fplayer.getFaction() == faction) {
|
||||
fplayer.sendMessage(fme.getNameAndRelevant(fplayer)+Conf.colorSystem+" has "+change+" your faction.");
|
||||
} else {
|
||||
fplayer.sendMessage(fme.getNameAndRelevant(fplayer)+Conf.colorSystem+" has "+change+" the faction \"" + faction.getTag(fplayer) + "\".");
|
||||
}
|
||||
else
|
||||
{
|
||||
fplayer.sendMessageParsed(fme.getNameAndRelevant(fplayer)+"<i> has "+change+" the faction \"" + faction.getTag(fplayer) + "\".");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,57 +1,41 @@
|
||||
package com.massivecraft.factions.commands;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
|
||||
|
||||
public class FCommandPower extends FCommand {
|
||||
public class FCommandPower extends FCommand
|
||||
{
|
||||
|
||||
public FCommandPower() {
|
||||
aliases.add("power");
|
||||
aliases.add("pow");
|
||||
public FCommandPower()
|
||||
{
|
||||
super();
|
||||
this.aliases.add("power");
|
||||
this.aliases.add("pow");
|
||||
|
||||
//this.requiredArgs.add("faction tag");
|
||||
this.optionalArgs.put("player name", "you");
|
||||
|
||||
this.permission = Permission.COMMAND_POWER.node;
|
||||
|
||||
senderMustBePlayer = false;
|
||||
|
||||
optionalParameters.add("player name");
|
||||
|
||||
helpDescription = "show player power info";
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(CommandSender sender) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
FPlayer target;
|
||||
if (parameters.size() > 0) {
|
||||
if (!P.hasPermViewAnyPower(fme)) {
|
||||
fme.sendMessage("You do not have the appropriate permission to view another player's power level.");
|
||||
return;
|
||||
}
|
||||
target = findFPlayer(parameters.get(0), false);
|
||||
} else if (!(sender instanceof Player)) {
|
||||
sendMessage("From the console, you must specify a player (f power <player name>).");
|
||||
return;
|
||||
} else {
|
||||
target = fme;
|
||||
}
|
||||
|
||||
if (target == null) {
|
||||
return;
|
||||
}
|
||||
public void perform()
|
||||
{
|
||||
FPlayer target = this.argAsBestFPlayerMatch(0, fme);
|
||||
if (target == null) return;
|
||||
|
||||
if (target != me && ! Permission.COMMAND_POWER_ANY.has(sender, true)) return;
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!payForCommand(Conf.econCostPower)) {
|
||||
return;
|
||||
}
|
||||
if ( ! payForCommand(Conf.econCostPower)) return;
|
||||
|
||||
sendMessage(target.getNameAndRelevant(fme)+Conf.colorChrome+" - Power / Maxpower: "+Conf.colorSystem+target.getPowerRounded()+" / "+target.getPowerMaxRounded());
|
||||
sendMessageParsed("%s<a> - Power / Maxpower: <i>%d / %d", target.getNameAndRelevant(fme), target.getPowerRounded(), target.getPowerMaxRounded());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2,21 +2,11 @@ package com.massivecraft.factions.commands;
|
||||
|
||||
import com.massivecraft.factions.struct.Relation;
|
||||
|
||||
public class FCommandRelationAlly extends FRelationCommand {
|
||||
|
||||
public FCommandRelationAlly() {
|
||||
public class FCommandRelationAlly extends FRelationCommand
|
||||
{
|
||||
public FCommandRelationAlly()
|
||||
{
|
||||
aliases.add("ally");
|
||||
targetRelation = Relation.ALLY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
|
||||
if( isLocked() ) {
|
||||
sendLockMessage();
|
||||
return;
|
||||
}
|
||||
|
||||
relation(Relation.ALLY, parameters.get(0));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2,21 +2,11 @@ package com.massivecraft.factions.commands;
|
||||
|
||||
import com.massivecraft.factions.struct.Relation;
|
||||
|
||||
public class FCommandRelationEnemy extends FRelationCommand {
|
||||
|
||||
public FCommandRelationEnemy() {
|
||||
public class FCommandRelationEnemy extends FRelationCommand
|
||||
{
|
||||
public FCommandRelationEnemy()
|
||||
{
|
||||
aliases.add("enemy");
|
||||
targetRelation = Relation.ENEMY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
|
||||
if( isLocked() ) {
|
||||
sendLockMessage();
|
||||
return;
|
||||
}
|
||||
|
||||
relation(Relation.ENEMY, parameters.get(0));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2,21 +2,11 @@ package com.massivecraft.factions.commands;
|
||||
|
||||
import com.massivecraft.factions.struct.Relation;
|
||||
|
||||
public class FCommandRelationNeutral extends FRelationCommand {
|
||||
|
||||
public FCommandRelationNeutral() {
|
||||
public class FCommandRelationNeutral extends FRelationCommand
|
||||
{
|
||||
public FCommandRelationNeutral()
|
||||
{
|
||||
aliases.add("neutral");
|
||||
targetRelation = Relation.NEUTRAL;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
|
||||
if( isLocked() ) {
|
||||
sendLockMessage();
|
||||
return;
|
||||
}
|
||||
|
||||
relation(Relation.NEUTRAL, parameters.get(0));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,77 +1,77 @@
|
||||
package com.massivecraft.factions.commands;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import com.massivecraft.factions.Board;
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.FPlayers;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
|
||||
public class FCommandReload extends FCommand {
|
||||
public class FCommandReload extends FCommand
|
||||
{
|
||||
|
||||
public FCommandReload() {
|
||||
aliases.add("reload");
|
||||
public FCommandReload()
|
||||
{
|
||||
super();
|
||||
this.aliases.add("reload");
|
||||
|
||||
//this.requiredArgs.add("");
|
||||
this.optionalArgs.put("file", "all");
|
||||
|
||||
this.permission = Permission.COMMAND_RELOAD.node;
|
||||
|
||||
senderMustBePlayer = false;
|
||||
|
||||
optionalParameters.add("file");
|
||||
|
||||
helpDescription = "reloads all json files, or a specific one";
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(CommandSender sender) {
|
||||
return P.hasPermReload(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
P.log("=== RELOAD START ===");
|
||||
public void perform()
|
||||
{
|
||||
long timeInitStart = System.currentTimeMillis();
|
||||
String fileName = "s";
|
||||
String file = this.argAsString(0, "all").toLowerCase();
|
||||
|
||||
// Was a single file specified?
|
||||
if (parameters.size() > 0) {
|
||||
String file = parameters.get(0);
|
||||
if (file.equalsIgnoreCase("conf") || file.equalsIgnoreCase("conf.json")) {
|
||||
P.log("RELOADING CONF.JSON");
|
||||
Conf.load();
|
||||
fileName = " conf.json";
|
||||
}
|
||||
else if (file.equalsIgnoreCase("board") || file.equalsIgnoreCase("board.json")) {
|
||||
P.log("RELOADING BOARD.JSON");
|
||||
Board.load();
|
||||
fileName = " board.json";
|
||||
}
|
||||
else if (file.equalsIgnoreCase("factions") || file.equalsIgnoreCase("factions.json")) {
|
||||
P.log("RELOADING FACTIONS.JSON");
|
||||
Faction.load();
|
||||
fileName = " factions.json";
|
||||
}
|
||||
else if (file.equalsIgnoreCase("players") || file.equalsIgnoreCase("players.json")) {
|
||||
P.log("RELOADING PLAYERS.JSON");
|
||||
FPlayer.load();
|
||||
fileName = " players.json";
|
||||
}
|
||||
else {
|
||||
P.log("RELOAD CANCELLED - SPECIFIED FILE INVALID");
|
||||
sendMessage("Invalid file specified. Valid files: conf, board, factions, players.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
else {
|
||||
P.log("RELOADING ALL FILES");
|
||||
String fileName;
|
||||
|
||||
if (file.startsWith("c"))
|
||||
{
|
||||
Conf.load();
|
||||
FPlayer.load();
|
||||
Faction.load();
|
||||
fileName = "conf.json";
|
||||
}
|
||||
else if (file.startsWith("b"))
|
||||
{
|
||||
Board.load();
|
||||
fileName = "board.json";
|
||||
}
|
||||
else if (file.startsWith("f"))
|
||||
{
|
||||
Factions.i.loadFromDisc();
|
||||
fileName = "factions.json";
|
||||
}
|
||||
else if (file.startsWith("p"))
|
||||
{
|
||||
FPlayers.i.loadFromDisc();
|
||||
fileName = "players.json";
|
||||
}
|
||||
else if (file.startsWith("a"))
|
||||
{
|
||||
fileName = "all";
|
||||
Conf.load();
|
||||
FPlayers.i.loadFromDisc();
|
||||
Factions.i.loadFromDisc();
|
||||
Board.load();
|
||||
}
|
||||
else
|
||||
{
|
||||
P.p.log("RELOAD CANCELLED - SPECIFIED FILE INVALID");
|
||||
sendMessageParsed("<b>Invalid file specified. <i>Valid files: all, conf, board, factions, players");
|
||||
return;
|
||||
}
|
||||
|
||||
long timeReload = (System.currentTimeMillis()-timeInitStart);
|
||||
P.log("=== RELOAD DONE (Took "+timeReload+"ms) ===");
|
||||
|
||||
sendMessage("Factions file" + fileName + " reloaded from disk, took " + timeReload + "ms");
|
||||
sendMessageParsed("reloaded %s from disk, took %dms", fileName, timeReload);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,32 +1,36 @@
|
||||
package com.massivecraft.factions.commands;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import com.massivecraft.factions.Board;
|
||||
import com.massivecraft.factions.FLocation;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
|
||||
public class FCommandSafeclaim extends FCommand {
|
||||
public class FCommandSafeclaim extends FCommand
|
||||
{
|
||||
|
||||
public FCommandSafeclaim() {
|
||||
aliases.add("safeclaim");
|
||||
aliases.add("safe");
|
||||
public FCommandSafeclaim()
|
||||
{
|
||||
this.aliases.add("safeclaim");
|
||||
this.aliases.add("safe");
|
||||
|
||||
optionalParameters.add("radius");
|
||||
//this.requiredArgs.add("");
|
||||
this.optionalArgs.put("radius", "0");
|
||||
|
||||
helpDescription = "Claim land for the safezone";
|
||||
this.permission = Permission.MANAGE_SAFE_ZONE.node;
|
||||
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeAdmin = false;
|
||||
|
||||
this.setHelpShort("Claim land for the safezone");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(CommandSender sender) {
|
||||
return P.hasPermManageSafeZone(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
|
||||
if( isLocked() ) {
|
||||
public void perform()
|
||||
{
|
||||
if( isLocked() )
|
||||
{
|
||||
sendLockMessage();
|
||||
return;
|
||||
}
|
||||
@ -34,31 +38,18 @@ public class FCommandSafeclaim extends FCommand {
|
||||
// The current location of the player
|
||||
FLocation playerFlocation = new FLocation(fme);
|
||||
|
||||
// Was a radius set?
|
||||
if (parameters.size() > 0) {
|
||||
int radius;
|
||||
try {
|
||||
radius = Integer.parseInt(parameters.get(0));
|
||||
}
|
||||
catch(NumberFormatException ex) {
|
||||
sendMessage("Usage: " + getUseageTemplate(false));
|
||||
sendMessage("The radius value must be an integer.");
|
||||
return;
|
||||
}
|
||||
|
||||
FLocation from = playerFlocation.getRelative(radius, radius);
|
||||
FLocation to = playerFlocation.getRelative(-radius, -radius);
|
||||
|
||||
for (FLocation locToClaim : FLocation.getArea(from, to)) {
|
||||
Board.setFactionAt(Faction.getSafeZone(), locToClaim);
|
||||
}
|
||||
|
||||
sendMessage("You claimed "+(1+radius*2)*(1+radius*2)+" chunks for the safe zone.");
|
||||
|
||||
} else {
|
||||
Board.setFactionAt(Faction.getSafeZone(), playerFlocation);
|
||||
sendMessage("This land is now a safe zone.");
|
||||
int radius = this.argAsInt(0, 0);
|
||||
if (radius < 0) radius = 0;
|
||||
|
||||
FLocation from = playerFlocation.getRelative(radius, radius);
|
||||
FLocation to = playerFlocation.getRelative(-radius, -radius);
|
||||
|
||||
for (FLocation locToClaim : FLocation.getArea(from, to))
|
||||
{
|
||||
Board.setFactionAt(Factions.i.getSafeZone(), locToClaim);
|
||||
}
|
||||
|
||||
sendMessageParsed("<i>You claimed <h>%d chunks<i> for the <a>safe zone.", (1+radius*2)*(1+radius*2));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,35 +1,41 @@
|
||||
package com.massivecraft.factions.commands;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import com.massivecraft.factions.Board;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
|
||||
public class FCommandSafeunclaimall extends FCommand {
|
||||
public class FCommandSafeunclaimall extends FCommand
|
||||
{
|
||||
|
||||
public FCommandSafeunclaimall() {
|
||||
aliases.add("safeunclaimall");
|
||||
aliases.add("safedeclaimall");
|
||||
public FCommandSafeunclaimall()
|
||||
{
|
||||
this.aliases.add("safeunclaimall");
|
||||
this.aliases.add("safedeclaimall");
|
||||
|
||||
helpDescription = "Unclaim all safezone land";
|
||||
//this.requiredArgs.add("");
|
||||
this.optionalArgs.put("radius", "0");
|
||||
|
||||
this.permission = Permission.MANAGE_SAFE_ZONE.node;
|
||||
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeAdmin = false;
|
||||
|
||||
this.setHelpShort("Unclaim all safezone land");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(CommandSender sender) {
|
||||
return P.hasPermManageSafeZone(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
|
||||
if( isLocked() ) {
|
||||
public void perform()
|
||||
{
|
||||
if( isLocked() )
|
||||
{
|
||||
sendLockMessage();
|
||||
return;
|
||||
}
|
||||
|
||||
Board.unclaimAll(Faction.getSafeZone().getId());
|
||||
sendMessage("You unclaimed ALL safe zone land.");
|
||||
Board.unclaimAll(Factions.i.getSafeZone().getId());
|
||||
sendMessageParsed("<i>You unclaimed ALL safe zone land.");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,30 +1,39 @@
|
||||
package com.massivecraft.factions.commands;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import com.massivecraft.factions.Board;
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.FPlayers;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
|
||||
import com.massivecraft.factions.P;
|
||||
|
||||
public class FCommandSaveAll extends FCommand {
|
||||
public class FCommandSaveAll extends FCommand
|
||||
{
|
||||
|
||||
public FCommandSaveAll() {
|
||||
aliases.add("saveall");
|
||||
aliases.add("save");
|
||||
public FCommandSaveAll()
|
||||
{
|
||||
super();
|
||||
this.aliases.add("saveall");
|
||||
this.aliases.add("save");
|
||||
|
||||
//this.requiredArgs.add("");
|
||||
//this.optionalArgs.put("", "");
|
||||
|
||||
this.permission = Permission.COMMAND_SAVE.node;
|
||||
|
||||
senderMustBePlayer = false;
|
||||
|
||||
helpDescription = "save factions to disk";
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(CommandSender sender) {
|
||||
return P.hasPermSaveAll(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
P.saveAll();
|
||||
|
||||
sendMessage("Factions saved to disk!");
|
||||
public void perform()
|
||||
{
|
||||
FPlayers.i.saveToDisc();
|
||||
Factions.i.saveToDisc();
|
||||
Board.save();
|
||||
Conf.save();
|
||||
sendMessageParsed("<i>Factions saved to disk!");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,72 +1,81 @@
|
||||
package com.massivecraft.factions.commands;
|
||||
|
||||
import com.massivecraft.factions.Board;
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.FLocation;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.struct.Role;
|
||||
|
||||
public class FCommandSethome extends FCommand {
|
||||
|
||||
public FCommandSethome() {
|
||||
aliases.add("sethome");
|
||||
public class FCommandSethome extends FCommand
|
||||
{
|
||||
public FCommandSethome()
|
||||
{
|
||||
this.aliases.add("sethome");
|
||||
|
||||
optionalParameters.add("faction tag");
|
||||
//this.requiredArgs.add("");
|
||||
this.optionalArgs.put("faction tag", "mine");
|
||||
|
||||
helpDescription = "Set the faction home";
|
||||
this.permission = Permission.COMMAND_SETHOME.node;
|
||||
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
if ( ! assertHasFaction()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if( isLocked() ) {
|
||||
public void perform()
|
||||
{
|
||||
if( isLocked() )
|
||||
{
|
||||
sendLockMessage();
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ! assertMinRole(Role.MODERATOR)) {
|
||||
if ( ! Conf.homesEnabled)
|
||||
{
|
||||
fme.sendMessageParsed("<b>Sorry, Faction homes are disabled on this server.");
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ! Conf.homesEnabled) {
|
||||
fme.sendMessage("Sorry, Faction homes are disabled on this server.");
|
||||
return;
|
||||
Faction faction = this.argAsFaction(0, myFaction);
|
||||
if (faction == null) return;
|
||||
|
||||
// Can the player set the home for this faction?
|
||||
if (faction == myFaction)
|
||||
{
|
||||
if ( ! Permission.COMMAND_SETHOME_ANY.has(sender) && ! assertMinRole(Role.MODERATOR)) return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Permission.COMMAND_SETHOME_ANY.has(sender, true)) return;
|
||||
}
|
||||
|
||||
Faction myFaction = fme.getFaction();
|
||||
|
||||
if (parameters.size() > 0) {
|
||||
if (!P.hasPermAdminBypass(fme)) {
|
||||
fme.sendMessage("You cannot set the home of another faction without adminBypass permission.");
|
||||
return;
|
||||
}
|
||||
|
||||
myFaction = findFaction(parameters.get(0), true);
|
||||
|
||||
if (myFaction == null) {
|
||||
fme.sendMessage("No such faction seems to exist.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (Conf.homesMustBeInClaimedTerritory && !fme.isInOwnTerritory() && !P.hasPermAdminBypass(fme)) {
|
||||
fme.sendMessage("Sorry, your faction home can only be set inside your own claimed territory.");
|
||||
// Can the player set the faction home HERE?
|
||||
if
|
||||
(
|
||||
! Permission.COMMAND_BYPASS.has(me)
|
||||
&&
|
||||
Conf.homesMustBeInClaimedTerritory
|
||||
&&
|
||||
Board.getFactionAt(new FLocation(me)) != faction
|
||||
)
|
||||
{
|
||||
fme.sendMessageParsed("<b>Sorry, your faction home can only be set inside your own claimed territory.");
|
||||
return;
|
||||
}
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!payForCommand(Conf.econCostSethome)) {
|
||||
return;
|
||||
}
|
||||
if ( ! payForCommand(Conf.econCostSethome)) return;
|
||||
|
||||
myFaction.setHome(fme.getLocation());
|
||||
faction.setHome(me.getLocation());
|
||||
|
||||
myFaction.sendMessage(fme.getNameAndRelevant(myFaction)+Conf.colorSystem+" set the home for your faction. You can now use:");
|
||||
myFaction.sendMessage(new FCommandHome().getUseageTemplate());
|
||||
if (myFaction != fme.getFaction()) {
|
||||
fme.sendMessage("You have set the home for the "+myFaction.getTag(fme)+Conf.colorSystem+" faction.");
|
||||
faction.sendMessage(fme.getNameAndRelevant(myFaction)+"<i> set the home for your faction. You can now use:");
|
||||
faction.sendMessage(new FCommandHome().getUseageTemplate());
|
||||
if (faction != myFaction)
|
||||
{
|
||||
fme.sendMessageParsed("<b>You have set the home for the "+faction.getTag(fme)+"<i> faction.");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,114 +2,112 @@ package com.massivecraft.factions.commands;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.integration.Econ;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.struct.Role;
|
||||
import com.massivecraft.factions.util.TextUtil;
|
||||
|
||||
|
||||
public class FCommandShow extends FCommand {
|
||||
public class FCommandShow extends FCommand
|
||||
{
|
||||
|
||||
public FCommandShow() {
|
||||
aliases.add("show");
|
||||
aliases.add("who");
|
||||
public FCommandShow()
|
||||
{
|
||||
this.aliases.add("show");
|
||||
this.aliases.add("who");
|
||||
|
||||
senderMustBePlayer = false;
|
||||
//this.requiredArgs.add("");
|
||||
this.optionalArgs.put("faction tag", "yours");
|
||||
|
||||
optionalParameters.add("faction tag");
|
||||
this.permission = Permission.COMMAND_SHOW.node;
|
||||
|
||||
helpDescription = "Show faction information";
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(CommandSender sender) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
Faction faction;
|
||||
if (parameters.size() > 0) {
|
||||
faction = findFaction(parameters.get(0), true);
|
||||
} else if (!(sender instanceof Player)) {
|
||||
sendMessage("From the command line, you must specify a faction tag (f who <faction tag>).");
|
||||
return;
|
||||
} else {
|
||||
faction = fme.getFaction();
|
||||
}
|
||||
|
||||
if (faction == null) {
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform()
|
||||
{
|
||||
Faction faction = this.argAsFaction(0, myFaction);
|
||||
if (faction == null) return;
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!payForCommand(Conf.econCostShow)) {
|
||||
return;
|
||||
}
|
||||
if ( ! payForCommand(Conf.econCostShow)) return;
|
||||
|
||||
Collection<FPlayer> admins = faction.getFPlayersWhereRole(Role.ADMIN);
|
||||
Collection<FPlayer> mods = faction.getFPlayersWhereRole(Role.MODERATOR);
|
||||
Collection<FPlayer> normals = faction.getFPlayersWhereRole(Role.NORMAL);
|
||||
|
||||
sendMessage(TextUtil.titleize(faction.getTag(fme)));
|
||||
sendMessage(Conf.colorChrome+"Description: "+Conf.colorSystem+faction.getDescription());
|
||||
if ( ! faction.isNormal()) {
|
||||
sendMessageParsed(p.txt.titleize(faction.getTag(fme)));
|
||||
sendMessageParsed("<a>Description: <i>%s", faction.getDescription());
|
||||
if ( ! faction.isNormal())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
String peaceStatus = "";
|
||||
if (faction.isPeaceful()) {
|
||||
if (faction.isPeaceful())
|
||||
{
|
||||
peaceStatus = " "+Conf.colorNeutral+"This faction is Peaceful";
|
||||
}
|
||||
|
||||
sendMessage(Conf.colorChrome+"Joining: "+Conf.colorSystem+(faction.getOpen() ? "no invitation is needed" : "invitation is required")+peaceStatus);
|
||||
sendMessage(Conf.colorChrome+"Land / Power / Maxpower: "+Conf.colorSystem+ faction.getLandRounded()+" / "+faction.getPowerRounded()+" / "+faction.getPowerMaxRounded());
|
||||
sendMessageParsed("<a>Joining: <i>"+(faction.getOpen() ? "no invitation is needed" : "invitation is required")+peaceStatus);
|
||||
sendMessageParsed("<a>Land / Power / Maxpower: <i> %d/%d/%d", faction.getLandRounded(), faction.getPowerRounded(), faction.getPowerMaxRounded());
|
||||
|
||||
if (faction.isPermanent()) {
|
||||
sendMessage(Conf.colorChrome+"This faction is permanent, remaining even with no members.");
|
||||
if (faction.isPermanent())
|
||||
{
|
||||
sendMessageParsed("<a>This faction is permanent, remaining even with no members.");
|
||||
}
|
||||
|
||||
// show the land value
|
||||
if (Econ.enabled()) {
|
||||
if (Econ.enabled())
|
||||
{
|
||||
double value = Econ.calculateTotalLandValue(faction.getLandRounded());
|
||||
double refund = value * Conf.econClaimRefundMultiplier;
|
||||
if (value > 0) {
|
||||
if (value > 0)
|
||||
{
|
||||
String stringValue = Econ.moneyString(value);
|
||||
String stringRefund = (refund > 0.0) ? (" ("+Econ.moneyString(refund)+" depreciated)") : "";
|
||||
sendMessage(Conf.colorChrome+"Total land value: " + Conf.colorSystem + stringValue + stringRefund);
|
||||
sendMessageParsed("<a>Total land value: <i>" + stringValue + stringRefund);
|
||||
}
|
||||
|
||||
//Show bank contents
|
||||
if(Conf.bankEnabled) {
|
||||
sendMessage(Conf.colorChrome+"Bank contains: " + Conf.colorSystem + Econ.moneyString(faction.getMoney()));
|
||||
sendMessageParsed("<a>Bank contains: <i>"+Econ.moneyString(faction.getMoney()));
|
||||
}
|
||||
}
|
||||
|
||||
String listpart;
|
||||
|
||||
// List relation
|
||||
String allyList = Conf.colorChrome+"Allies: ";
|
||||
String enemyList = Conf.colorChrome+"Enemies: ";
|
||||
for (Faction otherFaction : Faction.getAll()) {
|
||||
if (otherFaction == faction) {
|
||||
String allyList = p.txt.parse("<a>Allies: ");
|
||||
String enemyList = p.txt.parse("<a>Enemies: ");
|
||||
for (Faction otherFaction : Factions.i.get())
|
||||
{
|
||||
if (otherFaction == faction)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
listpart = otherFaction.getTag(fme)+Conf.colorSystem+", ";
|
||||
if (otherFaction.getRelation(faction).isAlly()) {
|
||||
listpart = otherFaction.getTag(fme)+p.txt.parse("<i>")+", ";
|
||||
if (otherFaction.getRelation(faction).isAlly())
|
||||
{
|
||||
allyList += listpart;
|
||||
} else if (otherFaction.getRelation(faction).isEnemy()) {
|
||||
}
|
||||
else if (otherFaction.getRelation(faction).isEnemy())
|
||||
{
|
||||
enemyList += listpart;
|
||||
}
|
||||
}
|
||||
if (allyList.endsWith(", ")) {
|
||||
if (allyList.endsWith(", "))
|
||||
{
|
||||
allyList = allyList.substring(0, allyList.length()-2);
|
||||
}
|
||||
if (enemyList.endsWith(", ")) {
|
||||
if (enemyList.endsWith(", "))
|
||||
{
|
||||
enemyList = enemyList.substring(0, enemyList.length()-2);
|
||||
}
|
||||
|
||||
@ -117,26 +115,33 @@ public class FCommandShow extends FCommand {
|
||||
sendMessage(enemyList);
|
||||
|
||||
// List the members...
|
||||
String onlineList = Conf.colorChrome+"Members online: ";
|
||||
String offlineList = Conf.colorChrome+"Members offline: ";
|
||||
for (FPlayer follower : admins) {
|
||||
listpart = follower.getNameAndTitle(fme)+Conf.colorSystem+", ";
|
||||
if (follower.isOnline()) {
|
||||
String onlineList = p.txt.parse("<a>")+"Members online: ";
|
||||
String offlineList = p.txt.parse("<a>")+"Members offline: ";
|
||||
for (FPlayer follower : admins)
|
||||
{
|
||||
listpart = follower.getNameAndTitle(fme)+p.txt.parse("<i>")+", ";
|
||||
if (follower.isOnline())
|
||||
{
|
||||
onlineList += listpart;
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
offlineList += listpart;
|
||||
}
|
||||
}
|
||||
for (FPlayer follower : mods) {
|
||||
listpart = follower.getNameAndTitle(fme)+Conf.colorSystem+", ";
|
||||
if (follower.isOnline()) {
|
||||
for (FPlayer follower : mods)
|
||||
{
|
||||
listpart = follower.getNameAndTitle(fme)+p.txt.parse("<i>")+", ";
|
||||
if
|
||||
(follower.isOnline())
|
||||
{
|
||||
onlineList += listpart;
|
||||
} else {
|
||||
offlineList += listpart;
|
||||
}
|
||||
}
|
||||
for (FPlayer follower : normals) {
|
||||
listpart = follower.getNameAndTitle(fme)+Conf.colorSystem+", ";
|
||||
listpart = follower.getNameAndTitle(fme)+p.txt.parse("<i>")+", ";
|
||||
if (follower.isOnline()) {
|
||||
onlineList += listpart;
|
||||
} else {
|
||||
|
@ -4,71 +4,74 @@ import java.util.ArrayList;
|
||||
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.integration.SpoutFeatures;
|
||||
import com.massivecraft.factions.struct.Role;
|
||||
import com.massivecraft.factions.util.TextUtil;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.util.MiscUtil;
|
||||
|
||||
|
||||
public class FCommandTag extends FCommand {
|
||||
public class FCommandTag extends FCommand
|
||||
{
|
||||
|
||||
public FCommandTag() {
|
||||
aliases.add("tag");
|
||||
public FCommandTag()
|
||||
{
|
||||
this.aliases.add("tag");
|
||||
|
||||
requiredParameters.add("faction tag");
|
||||
this.requiredArgs.add("faction tag");
|
||||
//this.optionalArgs.put("", "");
|
||||
|
||||
helpDescription = "Change the faction tag";
|
||||
this.permission = Permission.COMMAND_TAG.node;
|
||||
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = true;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
if ( ! assertHasFaction()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if( isLocked() ) {
|
||||
public void perform()
|
||||
{
|
||||
if( isLocked() )
|
||||
{
|
||||
sendLockMessage();
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ! assertMinRole(Role.MODERATOR)) {
|
||||
return;
|
||||
}
|
||||
|
||||
String tag = parameters.get(0);
|
||||
String tag = this.argAsString(0);
|
||||
|
||||
// TODO does not first test cover selfcase?
|
||||
if (Faction.isTagTaken(tag) && ! TextUtil.getComparisonString(tag).equals(fme.getFaction().getComparisonTag())) {
|
||||
sendMessage("That tag is already taken");
|
||||
if (Factions.i.isTagTaken(tag) && ! MiscUtil.getComparisonString(tag).equals(myFaction.getComparisonTag()))
|
||||
{
|
||||
sendMessageParsed("<b>That tag is already taken");
|
||||
return;
|
||||
}
|
||||
|
||||
ArrayList<String> errors = new ArrayList<String>();
|
||||
errors.addAll(Faction.validateTag(tag));
|
||||
if (errors.size() > 0) {
|
||||
errors.addAll(Factions.validateTag(tag));
|
||||
if (errors.size() > 0)
|
||||
{
|
||||
sendMessage(errors);
|
||||
return;
|
||||
}
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!payForCommand(Conf.econCostTag)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Faction myFaction = fme.getFaction();
|
||||
if ( ! payForCommand(Conf.econCostTag)) return;
|
||||
|
||||
String oldtag = myFaction.getTag();
|
||||
myFaction.setTag(tag);
|
||||
|
||||
// Inform
|
||||
myFaction.sendMessage(fme.getNameAndRelevant(myFaction)+Conf.colorSystem+" changed your faction tag to "+Conf.colorMember+myFaction.getTag());
|
||||
for (Faction faction : Faction.getAll()) {
|
||||
if (faction == fme.getFaction()) {
|
||||
myFaction.sendMessageParsed("%s<i> changed your faction tag to %s", fme.getNameAndRelevant(myFaction), myFaction.getTag(myFaction));
|
||||
for (Faction faction : Factions.i.get())
|
||||
{
|
||||
if (faction == myFaction)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
faction.sendMessage(Conf.colorSystem+"The faction "+fme.getRelationColor(faction)+oldtag+Conf.colorSystem+" changed their name to "+myFaction.getTag(faction));
|
||||
faction.sendMessageParsed("<i>The faction %s<i> changed their name to %s.", fme.getRelationColor(faction)+oldtag, myFaction.getTag(faction));
|
||||
}
|
||||
|
||||
if (Conf.spoutFactionTagsOverNames) {
|
||||
if (Conf.spoutFactionTagsOverNames)
|
||||
{
|
||||
SpoutFeatures.updateAppearances(myFaction);
|
||||
}
|
||||
}
|
||||
|
@ -2,59 +2,55 @@ package com.massivecraft.factions.commands;
|
||||
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.integration.SpoutFeatures;
|
||||
import com.massivecraft.factions.util.TextUtil;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.zcore.util.TextUtil;
|
||||
|
||||
public class FCommandTitle extends FCommand {
|
||||
|
||||
public FCommandTitle() {
|
||||
aliases.add("title");
|
||||
public class FCommandTitle extends FCommand
|
||||
{
|
||||
public FCommandTitle()
|
||||
{
|
||||
this.aliases.add("title");
|
||||
|
||||
requiredParameters.add("player name");
|
||||
this.requiredArgs.add("player name");
|
||||
this.optionalArgs.put("title", "");
|
||||
|
||||
optionalParameters.add("title");
|
||||
this.permission = Permission.COMMAND_TITLE.node;
|
||||
|
||||
helpDescription = "Set or remove a players title";
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = true;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
if ( ! assertHasFaction()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if( isLocked() ) {
|
||||
public void perform()
|
||||
{
|
||||
if( isLocked() )
|
||||
{
|
||||
sendLockMessage();
|
||||
return;
|
||||
}
|
||||
|
||||
String playerName = parameters.get(0);
|
||||
parameters.remove(0);
|
||||
String title = TextUtil.implode(parameters);
|
||||
FPlayer you = this.argAsBestFPlayerMatch(0);
|
||||
if (you == null) return;
|
||||
|
||||
FPlayer you = findFPlayer(playerName, false);
|
||||
if (you == null) {
|
||||
return;
|
||||
}
|
||||
args.remove(0);
|
||||
String title = TextUtil.implode(args, " ");
|
||||
|
||||
if ( ! canIAdministerYou(fme, you)) {
|
||||
return;
|
||||
}
|
||||
if ( ! canIAdministerYou(fme, you)) return;
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!payForCommand(Conf.econCostTitle)) {
|
||||
return;
|
||||
}
|
||||
if ( ! payForCommand(Conf.econCostTitle)) return;
|
||||
|
||||
you.setTitle(title);
|
||||
|
||||
// Inform
|
||||
Faction myFaction = fme.getFaction();
|
||||
myFaction.sendMessage(fme.getNameAndRelevant(myFaction)+Conf.colorSystem+" changed a title: "+you.getNameAndRelevant(myFaction));
|
||||
myFaction.sendMessageParsed("%s<i> changed a title: %s", fme.getNameAndRelevant(myFaction), you.getNameAndRelevant(myFaction));
|
||||
|
||||
if (Conf.spoutFactionTitlesOverNames) {
|
||||
SpoutFeatures.updateAppearances(fme);
|
||||
if (Conf.spoutFactionTitlesOverNames)
|
||||
{
|
||||
SpoutFeatures.updateAppearances(me);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5,22 +5,32 @@ import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.integration.Econ;
|
||||
import com.massivecraft.factions.FLocation;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.struct.Role;
|
||||
|
||||
public class FCommandUnclaim extends FCommand {
|
||||
|
||||
public FCommandUnclaim() {
|
||||
aliases.add("unclaim");
|
||||
aliases.add("declaim");
|
||||
public class FCommandUnclaim extends FCommand
|
||||
{
|
||||
public FCommandUnclaim()
|
||||
{
|
||||
this.aliases.add("unclaim");
|
||||
this.aliases.add("declaim");
|
||||
|
||||
helpDescription = "Unclaim the land where you are standing";
|
||||
//this.requiredArgs.add("");
|
||||
//this.optionalArgs.put("", "");
|
||||
|
||||
this.permission = Permission.COMMAND_UNCLAIM.node;
|
||||
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
|
||||
if( isLocked() ) {
|
||||
public void perform()
|
||||
{
|
||||
if( isLocked() )
|
||||
{
|
||||
sendLockMessage();
|
||||
return;
|
||||
}
|
||||
@ -28,88 +38,110 @@ public class FCommandUnclaim extends FCommand {
|
||||
FLocation flocation = new FLocation(fme);
|
||||
Faction otherFaction = Board.getFactionAt(flocation);
|
||||
|
||||
if (otherFaction.isSafeZone()) {
|
||||
if (P.hasPermManageSafeZone(sender)) {
|
||||
if (otherFaction.isSafeZone())
|
||||
{
|
||||
if (Permission.MANAGE_SAFE_ZONE.has(sender))
|
||||
{
|
||||
Board.removeAt(flocation);
|
||||
sendMessage("Safe zone was unclaimed.");
|
||||
} else {
|
||||
sendMessage("This is a safe zone. You lack permissions to unclaim.");
|
||||
sendMessageParsed("<i>Safe zone was unclaimed.");
|
||||
}
|
||||
else
|
||||
{
|
||||
sendMessageParsed("<b>This is a safe zone. You lack permissions to unclaim.");
|
||||
}
|
||||
return;
|
||||
}
|
||||
else if (otherFaction.isWarZone()) {
|
||||
if (P.hasPermManageWarZone(sender)) {
|
||||
else if (otherFaction.isWarZone())
|
||||
{
|
||||
if (Permission.MANAGE_WAR_ZONE.has(sender))
|
||||
{
|
||||
Board.removeAt(flocation);
|
||||
sendMessage("War zone was unclaimed.");
|
||||
} else {
|
||||
sendMessage("This is a war zone. You lack permissions to unclaim.");
|
||||
sendMessageParsed("<i>War zone was unclaimed.");
|
||||
}
|
||||
else
|
||||
{
|
||||
sendMessageParsed("<b>This is a war zone. You lack permissions to unclaim.");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (Conf.adminBypassPlayers.contains(fme.getName())) {
|
||||
if (fme.isAdminBypassing())
|
||||
{
|
||||
Board.removeAt(flocation);
|
||||
|
||||
otherFaction.sendMessage(fme.getNameAndRelevant(otherFaction)+Conf.colorSystem+" unclaimed some of your land.");
|
||||
sendMessage("You unclaimed this land.");
|
||||
otherFaction.sendMessageParsed("%s<i> unclaimed some of your land.", fme.getNameAndRelevant(otherFaction));
|
||||
sendMessageParsed("<i>You unclaimed this land.");
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ! assertHasFaction()) {
|
||||
if ( ! assertHasFaction())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ! assertMinRole(Role.MODERATOR)) {
|
||||
if ( ! assertMinRole(Role.MODERATOR))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Faction myFaction = fme.getFaction();
|
||||
|
||||
|
||||
if ( myFaction != otherFaction) {
|
||||
sendMessage("You don't own this land.");
|
||||
if ( myFaction != otherFaction)
|
||||
{
|
||||
sendMessageParsed("<b>You don't own this land.");
|
||||
return;
|
||||
}
|
||||
|
||||
String moneyBack = "";
|
||||
if (Econ.enabled()) {
|
||||
String moneyBack = "<i>";
|
||||
if (Econ.enabled())
|
||||
{
|
||||
double refund = Econ.calculateClaimRefund(myFaction.getLandRounded());
|
||||
// a real refund
|
||||
if (refund > 0.0) {
|
||||
if(Conf.bankFactionPaysLandCosts) {
|
||||
Faction faction = fme.getFaction();
|
||||
if (refund > 0.0)
|
||||
{
|
||||
if(Conf.bankFactionPaysLandCosts)
|
||||
{
|
||||
Faction faction = myFaction;
|
||||
faction.addMoney(refund);
|
||||
moneyBack = " "+faction.getTag()+" received a refund of "+Econ.moneyString(refund)+".";
|
||||
} else {
|
||||
moneyBack = " "+faction.getTag()+"<i> received a refund of <h>"+Econ.moneyString(refund)+"<i>.";
|
||||
}
|
||||
else
|
||||
{
|
||||
Econ.addMoney(fme.getName(), refund);
|
||||
moneyBack = " They received a refund of "+Econ.moneyString(refund)+".";
|
||||
moneyBack = " They received a refund of <h>"+Econ.moneyString(refund)+"<i>.";
|
||||
}
|
||||
}
|
||||
// wait, you're charging people to unclaim land? outrageous
|
||||
else if (refund < 0.0) {
|
||||
if(Conf.bankFactionPaysLandCosts) {
|
||||
Faction faction = fme.getFaction();
|
||||
if(!faction.removeMoney(-refund)) {
|
||||
sendMessage("Unclaiming this land will cost "+Econ.moneyString(-refund)+", which your faction can't currently afford.");
|
||||
else if (refund < 0.0)
|
||||
{
|
||||
if(Conf.bankFactionPaysLandCosts)
|
||||
{
|
||||
Faction faction = myFaction;
|
||||
if(!faction.removeMoney(-refund))
|
||||
{
|
||||
sendMessageParsed("<b>Unclaiming this land will cost <h>%s<b> which your faction can't currently afford.", Econ.moneyString(-refund));
|
||||
return;
|
||||
}
|
||||
moneyBack = " It cost "+faction.getTag()+" "+Econ.moneyString(refund)+".";
|
||||
} else {
|
||||
if (!Econ.deductMoney(fme.getName(), -refund)) {
|
||||
sendMessage("Unclaiming this land will cost "+Econ.moneyString(-refund)+", which you can't currently afford.");
|
||||
moneyBack = " It cost "+faction.getTag()+" <h>"+Econ.moneyString(refund)+"<i>.";
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!Econ.deductMoney(fme.getName(), -refund))
|
||||
{
|
||||
sendMessageParsed("<b>Unclaiming this land will cost <h>%s<b> which you can't currently afford.", Econ.moneyString(-refund));
|
||||
return;
|
||||
}
|
||||
moneyBack = " It cost them "+Econ.moneyString(refund)+".";
|
||||
moneyBack = " It cost them <h>"+Econ.moneyString(refund)+"<i>.";
|
||||
}
|
||||
}
|
||||
// no refund
|
||||
else {
|
||||
else
|
||||
{
|
||||
moneyBack = "";
|
||||
}
|
||||
}
|
||||
|
||||
Board.removeAt(flocation);
|
||||
myFaction.sendMessage(fme.getNameAndRelevant(myFaction)+Conf.colorSystem+" unclaimed some land."+moneyBack);
|
||||
myFaction.sendMessageParsed("%s<i> unclaimed some land."+moneyBack, fme.getNameAndRelevant(myFaction));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -30,15 +30,13 @@ public class FCommandUnclaimall extends FCommand {
|
||||
return;
|
||||
}
|
||||
|
||||
Faction myFaction = fme.getFaction();
|
||||
|
||||
String moneyBack = "";
|
||||
if (Econ.enabled()) {
|
||||
double refund = Econ.calculateTotalLandRefund(myFaction.getLandRounded());
|
||||
// a real refund
|
||||
if (refund > 0.0) {
|
||||
if(Conf.bankFactionPaysLandCosts) {
|
||||
Faction faction = fme.getFaction();
|
||||
Faction faction = myFaction;
|
||||
faction.addMoney(refund);
|
||||
moneyBack = " "+faction.getTag()+" received a refund of "+Econ.moneyString(refund)+".";
|
||||
} else {
|
||||
@ -49,7 +47,7 @@ public class FCommandUnclaimall extends FCommand {
|
||||
// wait, you're charging people to unclaim land? outrageous
|
||||
else if (refund < 0.0) {
|
||||
if(Conf.bankFactionPaysLandCosts) {
|
||||
Faction faction = fme.getFaction();
|
||||
Faction faction = myFaction;
|
||||
if(!faction.removeMoney(-refund)) {
|
||||
sendMessage("Unclaiming all faction land will cost "+Econ.moneyString(-refund)+", which your faction can't currently afford.");
|
||||
return;
|
||||
|
@ -1,28 +1,29 @@
|
||||
package com.massivecraft.factions.commands;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
|
||||
|
||||
public class FCommandVersion extends FCommand {
|
||||
|
||||
public FCommandVersion() {
|
||||
aliases.add("version");
|
||||
public class FCommandVersion extends FCommand
|
||||
{
|
||||
public FCommandVersion()
|
||||
{
|
||||
this.aliases.add("version");
|
||||
|
||||
//this.requiredArgs.add("");
|
||||
//this.optionalArgs.put("", "");
|
||||
|
||||
this.permission = Permission.COMMAND_VERSION.node;
|
||||
|
||||
senderMustBePlayer = false;
|
||||
|
||||
helpDescription = "Which version are you using?";
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(CommandSender sender) {
|
||||
return true;
|
||||
public void perform()
|
||||
{
|
||||
sendMessageParsed("<i>You are running "+P.p.getDescription().getFullName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
sendMessage("You are running "+P.p.getDescription().getFullName());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ public class FCommandWithdraw extends FCommand
|
||||
return;
|
||||
}
|
||||
|
||||
Faction faction = fme.getFaction();
|
||||
Faction faction = myFaction;
|
||||
|
||||
double amount = this.argAsDouble(0, 0d);
|
||||
|
||||
|
@ -4,76 +4,82 @@ import org.bukkit.ChatColor;
|
||||
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.integration.SpoutFeatures;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.struct.Relation;
|
||||
import com.massivecraft.factions.struct.Role;
|
||||
|
||||
|
||||
public class FRelationCommand extends FCommand {
|
||||
public abstract class FRelationCommand extends FCommand
|
||||
{
|
||||
public Relation targetRelation;
|
||||
|
||||
public FRelationCommand() {
|
||||
requiredParameters.add("faction tag");
|
||||
public FRelationCommand()
|
||||
{
|
||||
super();
|
||||
this.requiredArgs.add("faction tag");
|
||||
//this.optionalArgs.put("player name", "you");
|
||||
|
||||
helpDescription = "Set relation wish to another faction";
|
||||
this.permission = Permission.COMMAND_RELATION.node;
|
||||
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = true;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
public void relation(Relation whishedRelation, String otherFactionName) {
|
||||
if ( ! assertHasFaction()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if( isLocked() ) {
|
||||
@Override
|
||||
public void perform()
|
||||
{
|
||||
if( isLocked() )
|
||||
{
|
||||
sendLockMessage();
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ! assertMinRole(Role.MODERATOR)) {
|
||||
Faction them = this.argAsFaction(0);
|
||||
|
||||
if ( ! them.isNormal())
|
||||
{
|
||||
sendMessageParsed("<b>Nope! You can't.");
|
||||
return;
|
||||
}
|
||||
|
||||
Faction myFaction = fme.getFaction();
|
||||
Faction otherFaction = findFaction(otherFactionName, false);
|
||||
if (otherFaction == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!otherFaction.isNormal()) {
|
||||
sendMessage("Nope! You can't :) You can only ally with player factions.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (otherFaction == myFaction) {
|
||||
sendMessage("Nope! You can't declare a relation to yourself :)");
|
||||
if (them == myFaction)
|
||||
{
|
||||
sendMessageParsed("<b>Nope! You can't declare a relation to yourself :)");
|
||||
return;
|
||||
}
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
double cost = whishedRelation.isAlly() ? Conf.econCostAlly : (whishedRelation.isEnemy() ? Conf.econCostEnemy : Conf.econCostNeutral);
|
||||
if (!payForCommand(cost)) {
|
||||
return;
|
||||
}
|
||||
if ( ! payForCommand(targetRelation.getRelationCost())) return;
|
||||
|
||||
myFaction.setRelationWish(otherFaction, whishedRelation);
|
||||
Relation currentRelation = myFaction.getRelation(otherFaction, true);
|
||||
myFaction.setRelationWish(them, targetRelation);
|
||||
Relation currentRelation = myFaction.getRelation(them, true);
|
||||
ChatColor currentRelationColor = currentRelation.getColor();
|
||||
if (whishedRelation.value == currentRelation.value) {
|
||||
otherFaction.sendMessage(Conf.colorSystem+"Your faction is now "+currentRelationColor+whishedRelation.toString()+Conf.colorSystem+" to "+currentRelationColor+myFaction.getTag());
|
||||
myFaction.sendMessage(Conf.colorSystem+"Your faction is now "+currentRelationColor+whishedRelation.toString()+Conf.colorSystem+" to "+currentRelationColor+otherFaction.getTag());
|
||||
} else {
|
||||
otherFaction.sendMessage(currentRelationColor+myFaction.getTag()+Conf.colorSystem+ " wishes to be your "+whishedRelation.getColor()+whishedRelation.toString());
|
||||
otherFaction.sendMessage(Conf.colorSystem+"Type "+Conf.colorCommand+P.p.getBaseCommand()+" "+whishedRelation+" "+myFaction.getTag()+Conf.colorSystem+" to accept.");
|
||||
myFaction.sendMessage(currentRelationColor+otherFaction.getTag()+Conf.colorSystem+ " were informed that you wish to be "+whishedRelation.getColor()+whishedRelation);
|
||||
if (targetRelation.value == currentRelation.value)
|
||||
{
|
||||
them.sendMessageParsed("<i>Your faction is now "+currentRelationColor+targetRelation.toString()+"<i> to "+currentRelationColor+myFaction.getTag());
|
||||
myFaction.sendMessageParsed("<i>Your faction is now "+currentRelationColor+targetRelation.toString()+"<i> to "+currentRelationColor+them.getTag());
|
||||
}
|
||||
if (!whishedRelation.isNeutral() && otherFaction.isPeaceful()) {
|
||||
otherFaction.sendMessage(Conf.colorSystem+"This will have no effect while your faction is peaceful.");
|
||||
myFaction.sendMessage(Conf.colorSystem+"This will have no effect while their faction is peaceful.");
|
||||
else
|
||||
{
|
||||
them.sendMessageParsed(currentRelationColor+myFaction.getTag()+"<i> wishes to be your "+targetRelation.getColor()+targetRelation.toString());
|
||||
them.sendMessageParsed("<i>Type <c>/"+Conf.baseCommandAliases.get(0)+" "+targetRelation+" "+myFaction.getTag()+"<i> to accept.");
|
||||
myFaction.sendMessageParsed(currentRelationColor+them.getTag()+"<i> were informed that you wish to be "+targetRelation.getColor()+targetRelation);
|
||||
}
|
||||
if (!whishedRelation.isNeutral() && myFaction.isPeaceful()) {
|
||||
otherFaction.sendMessage(Conf.colorSystem+"This will have no effect while their faction is peaceful.");
|
||||
myFaction.sendMessage(Conf.colorSystem+"This will have no effect while your faction is peaceful.");
|
||||
|
||||
if ( ! targetRelation.isNeutral() && them.isPeaceful())
|
||||
{
|
||||
them.sendMessageParsed("<i>This will have no effect while your faction is peaceful.");
|
||||
myFaction.sendMessageParsed("<i>This will have no effect while their faction is peaceful.");
|
||||
}
|
||||
|
||||
if ( ! targetRelation.isNeutral() && myFaction.isPeaceful())
|
||||
{
|
||||
them.sendMessageParsed("<i>This will have no effect while their faction is peaceful.");
|
||||
myFaction.sendMessageParsed("<i>This will have no effect while your faction is peaceful.");
|
||||
}
|
||||
|
||||
SpoutFeatures.updateAppearances(myFaction, otherFaction);
|
||||
SpoutFeatures.updateAppearances(myFaction, them);
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -174,19 +174,20 @@ public class FactionsBlockListener extends BlockListener
|
||||
|
||||
public static boolean playerCanBuildDestroyBlock(Player player, Location location, String action, boolean justCheck)
|
||||
{
|
||||
|
||||
if (Conf.adminBypassPlayers.contains(player.getName()))
|
||||
FPlayer me = FPlayers.i.get(player);
|
||||
|
||||
if (me.isAdminBypassing())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
FLocation loc = new FLocation(location);
|
||||
Faction otherFaction = Board.getFactionAt(loc);
|
||||
FPlayer me = FPlayers.i.get(player);
|
||||
|
||||
|
||||
if (otherFaction.isNone())
|
||||
{
|
||||
if (!Conf.wildernessDenyBuild || Permission.ADMIN_BYPASS.has(player) || Conf.worldsNoWildernessProtection.contains(location.getWorld().getName()))
|
||||
if (!Conf.wildernessDenyBuild || Conf.worldsNoWildernessProtection.contains(location.getWorld().getName()))
|
||||
{
|
||||
return true; // This is not faction territory. Use whatever you like here.
|
||||
}
|
||||
|
@ -439,18 +439,17 @@ public class FactionsEntityListener extends EntityListener
|
||||
|
||||
public boolean playerCanDoPaintings(Player player, FLocation loc, String action)
|
||||
{
|
||||
|
||||
if (Conf.adminBypassPlayers.contains(player.getName()))
|
||||
FPlayer me = FPlayers.i.get(player);
|
||||
if (me.isAdminBypassing())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
Faction otherFaction = Board.getFactionAt(loc);
|
||||
FPlayer me = FPlayers.i.get(player);
|
||||
|
||||
if (otherFaction.isNone())
|
||||
{
|
||||
if (!Conf.wildernessDenyBuild || Permission.ADMIN_BYPASS.has(player) || Conf.worldsNoWildernessProtection.contains(player.getWorld().getName()))
|
||||
if (!Conf.wildernessDenyBuild || Conf.worldsNoWildernessProtection.contains(player.getWorld().getName()))
|
||||
{
|
||||
return true; // This is not faction territory. Use whatever you like here.
|
||||
}
|
||||
|
@ -331,8 +331,8 @@ public class FactionsPlayerListener extends PlayerListener
|
||||
|
||||
public static boolean playerCanUseItemHere(Player player, Location location, Material material, boolean justCheck)
|
||||
{
|
||||
|
||||
if (Conf.adminBypassPlayers.contains(player.getName()))
|
||||
FPlayer me = FPlayers.i.get(player);
|
||||
if (me.isAdminBypassing())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@ -354,11 +354,11 @@ public class FactionsPlayerListener extends PlayerListener
|
||||
}
|
||||
}
|
||||
|
||||
FPlayer me = FPlayers.i.get(player);
|
||||
|
||||
|
||||
if (otherFaction.isNone())
|
||||
{
|
||||
if (!Conf.wildernessDenyUseage || Permission.ADMIN_BYPASS.has(player) || Conf.worldsNoWildernessProtection.contains(location.getWorld().getName()))
|
||||
if (!Conf.wildernessDenyUseage || Conf.worldsNoWildernessProtection.contains(location.getWorld().getName()))
|
||||
{
|
||||
return true; // This is not faction territory. Use whatever you like here.
|
||||
}
|
||||
@ -422,8 +422,8 @@ public class FactionsPlayerListener extends PlayerListener
|
||||
|
||||
public static boolean canPlayerUseBlock(Player player, Block block, boolean justCheck)
|
||||
{
|
||||
|
||||
if (Conf.adminBypassPlayers.contains(player.getName()))
|
||||
FPlayer me = FPlayers.i.get(player);
|
||||
if (me.isAdminBypassing())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@ -454,7 +454,7 @@ public class FactionsPlayerListener extends PlayerListener
|
||||
}
|
||||
}
|
||||
|
||||
FPlayer me = FPlayers.i.get(player);
|
||||
|
||||
Faction myFaction = me.getFaction();
|
||||
Relation rel = myFaction.getRelation(otherFaction);
|
||||
boolean ownershipFail = Conf.ownedAreasEnabled && Conf.ownedAreaProtectMaterials && !otherFaction.playerHasOwnershipRights(me, loc);
|
||||
@ -575,7 +575,7 @@ public class FactionsPlayerListener extends PlayerListener
|
||||
&&
|
||||
! Conf.territoryNeutralDenyCommands.isEmpty()
|
||||
&&
|
||||
! Conf.adminBypassPlayers.contains(me.getName())
|
||||
! me.isAdminBypassing()
|
||||
)
|
||||
{
|
||||
Iterator<String> iter = Conf.territoryNeutralDenyCommands.iterator();
|
||||
@ -603,7 +603,7 @@ public class FactionsPlayerListener extends PlayerListener
|
||||
&&
|
||||
! Conf.territoryEnemyDenyCommands.isEmpty()
|
||||
&&
|
||||
! Conf.adminBypassPlayers.contains(me.getName())
|
||||
! me.isAdminBypassing()
|
||||
)
|
||||
{
|
||||
Iterator<String> iter = Conf.territoryEnemyDenyCommands.iterator();
|
||||
|
@ -11,7 +11,6 @@ public enum Permission
|
||||
VIEW_ANY_POWER("viewAnyPower"),
|
||||
VIEW_ANY_FACTION_BALANCE("viewAnyFactionBalance"),
|
||||
PEACEFUL_EXPLOTION_TOGGLE("peacefulExplosionToggle"),
|
||||
ADMIN_BYPASS("adminBypass"),
|
||||
CONFIG("config"),
|
||||
DISBAND("disband"),
|
||||
LOCK("lock"),
|
||||
@ -22,11 +21,13 @@ public enum Permission
|
||||
SAVE_ALL("saveall"),
|
||||
SET_PEACEFUL("setPeaceful"),
|
||||
SET_PERMANENT("setPermanent"),
|
||||
|
||||
COMMAND_ADMIN("command.admin"),
|
||||
COMMAND_AUTOCLAIM("command.autoClaim"),
|
||||
COMMAND_BALANCE("command.balance"),
|
||||
COMMAND_WITHDRAW("command.withdraw"),
|
||||
COMMAND_PAY("command.pay"),
|
||||
COMMAND_BYPASS("command.bypass"),
|
||||
COMMAND_CHAT("command.chat"),
|
||||
COMMAND_CLAIM("command.claim"),
|
||||
COMMAND_CONFIG("command.config"),
|
||||
@ -46,6 +47,24 @@ public enum Permission
|
||||
COMMAND_LOCK("command.lock"),
|
||||
COMMAND_MAP("command.map"),
|
||||
COMMAND_MOD("command.mod"),
|
||||
COMMAND_NO_BOOM("command.noBoom"),
|
||||
COMMAND_OPEN("command.open"),
|
||||
COMMAND_OWNER("command.owner"),
|
||||
COMMAND_OWNERLIST("command.ownerlist"),
|
||||
COMMAND_SET_PEACEFUL("command.setPeaceful"),
|
||||
COMMAND_SET_PERMANENT("command.setPermanent"),
|
||||
COMMAND_POWER("command.power"),
|
||||
COMMAND_POWER_ANY("command.power.any"),
|
||||
COMMAND_RELATION("command.relation"),
|
||||
COMMAND_RELOAD("command.reload"),
|
||||
COMMAND_SAVE("command.save"),
|
||||
COMMAND_SETHOME("command.sethome"),
|
||||
COMMAND_SETHOME_ANY("command.sethome.any"),
|
||||
COMMAND_SHOW("command.show"),
|
||||
COMMAND_TAG("command.tag"),
|
||||
COMMAND_TITLE("command.title"),
|
||||
COMMAND_UNCLAIM("command.unclaim"),
|
||||
COMMAND_VERSION("command.version"),
|
||||
;
|
||||
|
||||
public final String node;
|
||||
|
@ -163,4 +163,20 @@ public enum Relation
|
||||
return Conf.territoryDenyUseage;
|
||||
}
|
||||
}
|
||||
|
||||
public double getRelationCost()
|
||||
{
|
||||
if (isEnemy())
|
||||
{
|
||||
return Conf.econCostEnemy;
|
||||
}
|
||||
else if (isAlly())
|
||||
{
|
||||
return Conf.econCostAlly;
|
||||
}
|
||||
else
|
||||
{
|
||||
return Conf.econCostNeutral;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -79,7 +79,7 @@ public abstract class MPlugin extends JavaPlugin
|
||||
long saveTicks = 20 * 60 * 30; // Approximately every 30 min
|
||||
if (saveTask == null)
|
||||
{
|
||||
saveTask = Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new SaveTask(), saveTicks, saveTicks);
|
||||
saveTask = Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new SaveTask(this), saveTicks, saveTicks);
|
||||
}
|
||||
|
||||
return true;
|
||||
@ -220,6 +220,18 @@ public abstract class MPlugin extends JavaPlugin
|
||||
return false;
|
||||
}
|
||||
|
||||
// -------------------------------------------- //
|
||||
// HOOKS
|
||||
// -------------------------------------------- //
|
||||
public void preSaveTask()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void postSaveTask()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// -------------------------------------------- //
|
||||
// LOGGING
|
||||
|
@ -1,9 +1,19 @@
|
||||
package com.massivecraft.factions.zcore.persist;
|
||||
|
||||
import com.massivecraft.factions.zcore.MPlugin;
|
||||
|
||||
public class SaveTask implements Runnable
|
||||
{
|
||||
MPlugin p;
|
||||
public SaveTask(MPlugin p)
|
||||
{
|
||||
this.p = p;
|
||||
}
|
||||
|
||||
public void run()
|
||||
{
|
||||
p.preSaveTask();
|
||||
EM.saveAllToDisc();
|
||||
p.postSaveTask();
|
||||
}
|
||||
}
|
||||
|
@ -44,21 +44,12 @@ permissions:
|
||||
factions.create:
|
||||
description: create a new faction
|
||||
default: true
|
||||
factions.viewAnyPower:
|
||||
description: view the power level of anyone else
|
||||
default: true
|
||||
factions.viewAnyFactionBalance:
|
||||
description: view the faction bank balance for any faction
|
||||
default: true
|
||||
factions.peacefulExplosionToggle:
|
||||
description: disable explosions in your territory as a peaceful faction admin or moderator
|
||||
default: true
|
||||
factions.adminBypass:
|
||||
description: enable admin bypass mode (build/destroy anywhere)
|
||||
default: op
|
||||
factions.config:
|
||||
description: use /f config command to change conf.json options
|
||||
default: op
|
||||
factions.manageSafeZone:
|
||||
description: claim land as a safe zone and build/destroy within safe zones
|
||||
default: op
|
||||
@ -68,18 +59,7 @@ permissions:
|
||||
factions.ownershipBypass:
|
||||
description: bypass ownership restrictions within own faction's territory
|
||||
default: op
|
||||
factions.reload:
|
||||
description: use the /f reload command to reload data file(s) from disk
|
||||
default: op
|
||||
factions.saveall:
|
||||
description: use the /f saveall command to save all data to disk
|
||||
default: op
|
||||
factions.setPeaceful:
|
||||
description: designate specific factions as "peaceful" (no PvP, no land stealing, etc.)
|
||||
default: op
|
||||
factions.setPermanent:
|
||||
description: designate specific factions as permanent (not disbanded even with no members)
|
||||
default: op
|
||||
|
||||
|
||||
factions.command.admin:
|
||||
description: hand over your admin rights
|
||||
@ -96,6 +76,9 @@ permissions:
|
||||
factions.command.pay:
|
||||
description: pay another faction from your bank
|
||||
default: true
|
||||
factions.command.bypass:
|
||||
description: enable admin bypass mode
|
||||
default: op
|
||||
factions.command.chat:
|
||||
description: change chat mode
|
||||
default: true
|
||||
@ -149,4 +132,60 @@ permissions:
|
||||
default: true
|
||||
factions.command.mod:
|
||||
description: give or revoke moderator rights
|
||||
default: true
|
||||
default: true
|
||||
factions.command.noBoom:
|
||||
description: toggle explosions (peaceful factions only)
|
||||
default: true
|
||||
factions.command.open:
|
||||
description: switch if invitation is required to join
|
||||
default: true
|
||||
factions.command.owner:
|
||||
description: set ownership of claimed land
|
||||
default: true
|
||||
factions.command.ownerlist:
|
||||
description: list owner(s) of this claimed land
|
||||
default: true
|
||||
factions.command.setPeaceful:
|
||||
description: designate a faction as peaceful
|
||||
default: op
|
||||
factions.command.setPermanent:
|
||||
description: designate a faction as permanent
|
||||
default: op
|
||||
factions.command.power:
|
||||
description: show player power info
|
||||
default: true
|
||||
factions.command.power.any:
|
||||
description: view an other players power level
|
||||
default: true
|
||||
factions.command.relation:
|
||||
description: set relation wish to another faction
|
||||
default: true
|
||||
factions.command.reload:
|
||||
description: reload data file(s) from disk
|
||||
default: op
|
||||
factions.command.save:
|
||||
description: save all data to disk
|
||||
default: op
|
||||
factions.command.sethome:
|
||||
description: set the faction home
|
||||
default: true
|
||||
factions.command.sethome.any:
|
||||
description: set any faction home
|
||||
default: op
|
||||
factions.command.show:
|
||||
description: chow faction information
|
||||
default: true
|
||||
factions.command.tag:
|
||||
description: change the faction tag
|
||||
default: true
|
||||
factions.command.title:
|
||||
description: set or remove a players title
|
||||
default: true
|
||||
factions.command.version:
|
||||
description: see the version of the plugin
|
||||
default: true
|
||||
factions.command.unclaim:
|
||||
description: unclaim the land where you are standing
|
||||
default: true
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user