From bad874495b3366296e92bb739033c9db054f337b Mon Sep 17 00:00:00 2001 From: drtshock Date: Fri, 14 Nov 2014 13:27:23 -0600 Subject: [PATCH] Add command to modify a player's power specified in #133. use /f modpower name number --- .../factions/cmd/CmdModifyPower.java | 43 +++++++++++++++++++ .../massivecraft/factions/cmd/FCmdRoot.java | 2 + .../factions/struct/Permission.java | 1 + src/main/resources/plugin.yml | 5 ++- 4 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/massivecraft/factions/cmd/CmdModifyPower.java diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdModifyPower.java b/src/main/java/com/massivecraft/factions/cmd/CmdModifyPower.java new file mode 100644 index 00000000..3b886c02 --- /dev/null +++ b/src/main/java/com/massivecraft/factions/cmd/CmdModifyPower.java @@ -0,0 +1,43 @@ +package com.massivecraft.factions.cmd; + +import com.massivecraft.factions.FPlayer; +import com.massivecraft.factions.struct.Permission; + +public class CmdModifyPower extends FCommand { + + public CmdModifyPower() { + super(); + + this.aliases.add("pm"); + this.aliases.add("mp"); + this.aliases.add("modifypower"); + this.aliases.add("modpower"); + + this.requiredArgs.add("name"); + this.requiredArgs.add("power"); + + this.permission = Permission.MODIFY_POWER.node; // admin only perm. + + // Let's not require anything and let console modify this as well. + this.senderMustBeAdmin = false; + this.senderMustBePlayer = false; + this.senderMustBeMember = false; + this.senderMustBeModerator = false; + } + + @Override + public void perform() { + // /f modify # + FPlayer player = argAsBestFPlayerMatch(0); + Double number = argAsDouble(1); // returns null if not a Double. + + if (player == null || number == null) { + sender.sendMessage(getHelpShort()); + return; + } + + player.alterPower(number); + int newPower = player.getPowerRounded(); // int so we don't have super long doubles. + msg("Added %d power to %s. New total rounded power: %d", number, player.getName(), newPower); + } +} diff --git a/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java b/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java index 0f345454..7fbe8bbb 100644 --- a/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java +++ b/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java @@ -60,6 +60,7 @@ public class FCmdRoot extends FCommand { public CmdFWarp cmdFWarp = new CmdFWarp(); public CmdSetFWarp cmdSetFWarp = new CmdSetFWarp(); public CmdDelFWarp cmdDelFWarp = new CmdDelFWarp(); + public CmdModifyPower cmdModifyPower = new CmdModifyPower(); public FCmdRoot() { super(); @@ -136,6 +137,7 @@ public class FCmdRoot extends FCommand { this.addSubCommand(this.cmdFWarp); this.addSubCommand(this.cmdSetFWarp); this.addSubCommand(this.cmdDelFWarp); + this.addSubCommand(this.cmdModifyPower); } @Override diff --git a/src/main/java/com/massivecraft/factions/struct/Permission.java b/src/main/java/com/massivecraft/factions/struct/Permission.java index 27b272d1..d1b438cf 100644 --- a/src/main/java/com/massivecraft/factions/struct/Permission.java +++ b/src/main/java/com/massivecraft/factions/struct/Permission.java @@ -36,6 +36,7 @@ public enum Permission { MAP("map"), MOD("mod"), MOD_ANY("mod.any"), + MODIFY_POWER("modifypower"), MONEY_BALANCE("money.balance"), MONEY_BALANCE_ANY("money.balance.any"), MONEY_DEPOSIT("money.deposit"), diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index c4da2f2f..15e8c506 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -16,6 +16,7 @@ permissions: factions.lock: true factions.reload: true factions.save: true + factions.modifypower: true factions.*: description: This is just an alias for factions.kit.admin children: @@ -237,4 +238,6 @@ permissions: factions.setwarp: description: set a warp for your faction factions.warp: - description: access your faction warps \ No newline at end of file + description: access your faction warps + factions.modifypower: + description: modify other player's power \ No newline at end of file