diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdFactionsRank.java b/src/main/java/com/massivecraft/factions/cmd/CmdFactionsRank.java index ee7a4398..6f746574 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdFactionsRank.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdFactionsRank.java @@ -25,13 +25,13 @@ public class CmdFactionsRank extends FactionsCommand // -------------------------------------------- // // FIELDS // -------------------------------------------- // - //These fields are set upon perform() and unset afterwards + // These fields are set upon perform() and unset afterwards. - //Target + // Target private Faction targetFaction = null; private MPlayer target = null; - //Roles + // Roles private Rel senderRole = null; private Rel targetRole = null; private Rel rank = null; @@ -46,7 +46,7 @@ public class CmdFactionsRank extends FactionsCommand this.addAliases("r","rank"); // Args - this.addOptionalArg("player","you"); + this.addOptionalArg("player", "you"); this.addOptionalArg("action", "show"); // Requirements @@ -60,51 +60,51 @@ public class CmdFactionsRank extends FactionsCommand @Override public void perform() { - // This sets target and much other. Returns false if not succeeded - if(!registerFields()) + // This sets target and much other. Returns false if not succeeded. + if ( ! this.registerFields()) { return; } - // Sometimes we just want to show the rank - if(!this.argIsSet(1)) + // Sometimes we just want to show the rank. + if ( ! this.argIsSet(1)) { - if(!Perm.RANK_SHOW.has(sender, true)) + if ( ! Perm.RANK_SHOW.has(sender, true)) { return; } - showRank(); + this.showRank(); return; } // Permission check - if(!Perm.RANK_ACTION.has(sender, true)) + if ( ! Perm.RANK_ACTION.has(sender, true)) { return; } - // Is the player allowed or not. Method can be found later down - if(!isPlayerAllowed()) + // Is the player allowed or not. Method can be found later down. + if ( ! this.isPlayerAllowed()) { return; } // Does the change make sense. - if(!this.isChangeRequired()) + if ( ! this.isChangeRequired()) { return; } // Should we fire an event when rank is changed? - // Currently we don't + // Currently we don't. // Change the rank - changeRank(); + this.changeRank(); } - // This is always run after performing a MassiveCommand - // It might be a bit hacky, but is easier than adding a line of code at every return statement - // Sometimes it is nice to know the exact mechanics of MassiveCore + // This is always run after performing a MassiveCommand. + // It might be a bit hacky, but is easier than adding a line of code at every return statement. + // Sometimes it is nice to know the exact mechanics of MassiveCore. @Override public void unsetSenderVars() { @@ -127,10 +127,10 @@ public class CmdFactionsRank extends FactionsCommand if (this.argIsSet(1)) { rank = this.arg(1, ARRank.get(target.getRole())); - if(null == rank) return false; + if (null == rank) return false; } - //Roles/ranks + // Roles/ranks senderRole = msender.getRole(); targetRole = target.getRole(); @@ -165,14 +165,14 @@ public class CmdFactionsRank extends FactionsCommand // We can at least try to limit their powers if (targetFaction.isNone()) { - msg( "Wilderness doesn't use ranks sorry :(" ); + msg("Wilderness doesn't use ranks sorry :("); return false; } if (targetFaction != msenderFaction) { - //Don't change ranks outside of your faction - msg(Txt.parse( "%s is not in the same faction as you" ,target.describeTo(msender))); + // Don't change ranks outside of your faction + msg(Txt.parse("%s is not in the same faction as you", target.describeTo(msender))); return false; } @@ -214,47 +214,47 @@ public class CmdFactionsRank extends FactionsCommand return false; } - // If it wasn't cancelled above, player is allowe + // If it wasn't cancelled above, player is allowed. return true; } private boolean isChangeRequired() { - // Just a nice msg. It would however be caught by an if statement below + // Just a nice msg. It would however be caught by an if statement below. if (target.getRole() == Rel.RECRUIT && arg(1).equalsIgnoreCase("demote")) { msg("You can't demote a recruit"); return false; } - // Just a nice msg. It would however be caught by an if statement below + // Just a nice msg. It would however be caught by an if statement below. if (target.getRole() == Rel.LEADER && arg(1).equalsIgnoreCase("promote")) { msg("You can't promote the leader"); return false; } - // There must be a change, else it is all waste of time + // There must be a change, else it is all waste of time. if (target.getRole() == rank) { msg("Player already has that rank"); return false; } + return true; } private void changeRank() { - // In case of leadership change, we do special things not done in other rank changes + // In case of leadership change, we do special things not done in other rank changes. if (rank == Rel.LEADER) { - changeRankLeader(); + this.changeRankLeader(); } else { - changeRankOther(); + this.changeRankOther(); } - } private void changeRankLeader() @@ -265,14 +265,20 @@ public class CmdFactionsRank extends FactionsCommand { // Inform & demote the old leader targetFactionCurrentLeader.setRole(Rel.OFFICER); - if (targetFactionCurrentLeader != msender) //They kinda know if they fired the command themself + if (targetFactionCurrentLeader != msender) + { + // They kinda know if they fired the command themself targetFactionCurrentLeader.msg("You have been demoted from the position of faction leader by %s.", msender.describeTo(targetFactionCurrentLeader, true)); + } } // Inform & promote the new leader target.setRole(Rel.LEADER); - if (target != msender) //They kinda know if they fired the command themself + if (target != msender) + { + // They kinda know if they fired the command themself target.msg("You have been promoted to the position of faction leader by %s.", msender.describeTo(target, true)); + } // Inform the msg sender msg("You have promoted %s to the position of faction leader.", target.describeTo(msender, true)); @@ -288,17 +294,18 @@ public class CmdFactionsRank extends FactionsCommand private void changeRankOther() { // If the target is currently the leader and faction isn't permanent... - if(targetRole == Rel.LEADER && (!MConf.get().permanentFactionsDisableLeaderPromotion - || !targetFaction.getFlag(MFlag.ID_PERMANENT))) + if (targetRole == Rel.LEADER && (!MConf.get().permanentFactionsDisableLeaderPromotion || !targetFaction.getFlag(MFlag.ID_PERMANENT))) { // ...we must promote a new one targetFaction.promoteNewLeader(); } + // Were they demoted or promoted? String change = (rank.isLessThan(targetRole) ? "demoted" : "promoted"); - // The rank will be set before the msg, so they have the appropriate prefix + + // The rank will be set before the msg, so they have the appropriate prefix. target.setRole(rank); String rankName = Txt.getNicedEnum(rank).toLowerCase(); msenderFaction.msg("%s was %s to being %s %s in your faction.", target.describeTo(msenderFaction, true), change, Txt.aan(rankName), rankName); } -} \ No newline at end of file +} diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdFactionsRankOld.java b/src/main/java/com/massivecraft/factions/cmd/CmdFactionsRankOld.java index dd70a641..c2fa3be8 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdFactionsRankOld.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdFactionsRankOld.java @@ -10,7 +10,7 @@ public class CmdFactionsRankOld extends FactionsCommand // FIELDS // -------------------------------------------- // - final String rankName; + public final String rankName; // -------------------------------------------- // // CONSTRUCT @@ -18,6 +18,7 @@ public class CmdFactionsRankOld extends FactionsCommand public CmdFactionsRankOld(String rank) { + // Fields this.rankName = rank.toLowerCase(); // Aliases @@ -26,6 +27,7 @@ public class CmdFactionsRankOld extends FactionsCommand // Args this.addRequiredArg("player"); + // VisibilityMode this.setVisibilityMode(VisibilityMode.INVISIBLE); } @@ -36,6 +38,7 @@ public class CmdFactionsRankOld extends FactionsCommand @Override public void perform() { - Factions.get().getOuterCmdFactions().cmdFactionsRank.execute(sender, MUtil.list(arg(0),rankName)); + Factions.get().getOuterCmdFactions().cmdFactionsRank.execute(sender, MUtil.list(this.arg(0), this.rankName)); } + } diff --git a/src/main/java/com/massivecraft/factions/cmd/arg/ARRank.java b/src/main/java/com/massivecraft/factions/cmd/arg/ARRank.java index d589eac4..780ba229 100644 --- a/src/main/java/com/massivecraft/factions/cmd/arg/ARRank.java +++ b/src/main/java/com/massivecraft/factions/cmd/arg/ARRank.java @@ -12,11 +12,11 @@ import com.massivecraft.massivecore.util.Txt; public class ARRank extends ARAbstractSelect { - //----------------------------------------------// + // -------------------------------------------- // // INSTANCE & CONSTRUCT // -------------------------------------------- // - //Default constructor. Can't use promote and demote. + // Default constructor. Can't use promote and demote. private static ARRank i = new ARRank(); public static ARRank get() { return i; } @@ -25,7 +25,7 @@ public class ARRank extends ARAbstractSelect this.startRank = null; } - //Fancy constructor. Can use promote and demote + // Fancy constructor. Can use promote and demote. public static ARRank get(Rel rank) { return new ARRank(rank); } public ARRank(Rel rank) @@ -33,11 +33,12 @@ public class ARRank extends ARAbstractSelect this.startRank = rank; } - //----------------------------------------------// + // -------------------------------------------- // // FIELDS // -------------------------------------------- // - final Rel startRank; + private final Rel startRank; + public Rel getStartRank() { return this.startRank; } // -------------------------------------------- // // OVERRIDE @@ -52,67 +53,57 @@ public class ARRank extends ARAbstractSelect @Override public Rel select(String arg, CommandSender sender) { - //Default it is nothing - Rel ret = null; - // This is especially useful when one rank can have aliases. // In the case of promote/demote, // that would require 10 lines of code repeated for each alias. arg = this.prepareArg(arg); - switch(arg) + // All the normal ranks + if (arg.equals("leader")) return Rel.LEADER; + if (arg.equals("officer")) return Rel.OFFICER; + if (arg.equals("member")) return Rel.MEMBER; + if (arg.equals("recruit")) return Rel.RECRUIT; + + // No start rank? + if (startRank == null) { - // All the normal ranks - case "leader": ret = Rel.LEADER; break; - case "officer": ret = Rel.OFFICER; break; - case "member": ret = Rel.MEMBER; break; - case "recruit": ret = Rel.RECRUIT; break; - - // Promote - case "promote": - switch(startRank) - { - case LEADER : ret = Rel.LEADER; break; - case OFFICER : ret = Rel.LEADER; break; - case MEMBER : ret = Rel.OFFICER; break; - case RECRUIT : ret = Rel.MEMBER; break; - // This should not happen - default: - //This might happen of the default constrcutor is used - Mixin.msgOne(sender, Txt.parse("You can't use promote & demote")); - ret = null; break; - - } break; - - // Demote - case "demote": - switch(startRank) - { - case LEADER : ret = Rel.OFFICER; break; - case OFFICER : ret = Rel.MEMBER; break; - case MEMBER : ret = Rel.RECRUIT; break; - case RECRUIT : ret = Rel.RECRUIT; break; - // This should not happen - default: - //This might happen of the default constrcutor is used - Mixin.msgOne(sender, Txt.parse("You can't use promote & demote")); - ret = null; break; - } break; + // This might happen of the default constructor is used + Mixin.msgOne(sender, Txt.parse("You can't use promote & demote")); + return null; } - return ret; + // Promote + if (arg.equals("promote")) + { + if (Rel.LEADER.equals(startRank)) return Rel.LEADER; + if (Rel.OFFICER.equals(startRank)) return Rel.LEADER; + if (Rel.MEMBER.equals(startRank)) return Rel.OFFICER; + if (Rel.RECRUIT.equals(startRank)) return Rel.MEMBER; + } + + // Demote + if (arg.equals("demote")) + { + if (Rel.LEADER.equals(startRank)) return Rel.OFFICER; + if (Rel.OFFICER.equals(startRank)) return Rel.MEMBER; + if (Rel.MEMBER.equals(startRank)) return Rel.RECRUIT; + if (Rel.RECRUIT.equals(startRank)) return Rel.RECRUIT; + } + + return null; } @Override public Collection altNames(CommandSender sender) { return MUtil.list( - Txt.getNicedEnum(Rel.LEADER), - Txt.getNicedEnum(Rel.OFFICER), - Txt.getNicedEnum(Rel.MEMBER), - Txt.getNicedEnum(Rel.RECRUIT), - "Promote", - "Demote"); + Txt.getNicedEnum(Rel.LEADER), + Txt.getNicedEnum(Rel.OFFICER), + Txt.getNicedEnum(Rel.MEMBER), + Txt.getNicedEnum(Rel.RECRUIT), + "Promote", + "Demote" + ); } // -------------------------------------------- // @@ -121,29 +112,29 @@ public class ARRank extends ARAbstractSelect private String prepareArg(String str) { - String ret = str; + String ret = str.toLowerCase(); - if (str.startsWith("admin") || str.startsWith("lea")) + if (ret.startsWith("admin") || ret.startsWith("lea")) { ret = "leader"; } - else if (str.startsWith("mod") || str.startsWith("off")) + else if (ret.startsWith("mod") || ret.startsWith("off")) { ret = "officer"; } - else if (str.startsWith("mem")) + else if (ret.startsWith("mem")) { ret = "member"; } - else if (str.startsWith("rec")) + else if (ret.startsWith("rec")) { ret = "recruit"; } - else if (str.startsWith("+") || str.startsWith("plus")) + else if (ret.startsWith("+") || ret.startsWith("plus") || ret.startsWith("up")) { ret = "promote"; } - else if (str.startsWith("-") || str.startsWith("minus")) + else if (ret.startsWith("-") || ret.startsWith("minus") || ret.startsWith("down")) { ret = "demote"; }