summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKHobbits <rob@khobbits.co.uk>2013-01-27 08:40:39 -0800
committerKHobbits <rob@khobbits.co.uk>2013-01-27 08:40:39 -0800
commitc65353350fe1e05ed737a5598b53b8099c0deac1 (patch)
tree80162425e303911ad802095a5caf20e6effdbb70
parent1ae58d05b488004c7e96ee52907a1f55a17b5a1e (diff)
parent133fdac3437ab358d9e94a2653ac2bf818c28196 (diff)
downloadEssentials-c65353350fe1e05ed737a5598b53b8099c0deac1.tar
Essentials-c65353350fe1e05ed737a5598b53b8099c0deac1.tar.gz
Essentials-c65353350fe1e05ed737a5598b53b8099c0deac1.tar.lz
Essentials-c65353350fe1e05ed737a5598b53b8099c0deac1.tar.xz
Essentials-c65353350fe1e05ed737a5598b53b8099c0deac1.zip
Merge pull request #278 from GunfighterJ/2.9
Adds vanilla syntax for /clearinventory
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandclearinventory.java115
-rw-r--r--Essentials/src/plugin.yml2
2 files changed, 103 insertions, 14 deletions
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandclearinventory.java b/Essentials/src/com/earth2me/essentials/commands/Commandclearinventory.java
index ef2502b9b..0adb7cf04 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandclearinventory.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandclearinventory.java
@@ -2,10 +2,12 @@ package com.earth2me.essentials.commands;
import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.User;
+import com.earth2me.essentials.Util;
import java.util.List;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
+import org.bukkit.inventory.ItemStack;
public class Commandclearinventory extends EssentialsCommand
@@ -22,7 +24,22 @@ public class Commandclearinventory extends EssentialsCommand
if (args.length > 0 && user.isAuthorized("essentials.clearinventory.others"))
{
//TODO: Fix fringe user match case.
- if (args[0].length() >= 3)
+ if (args[0].contentEquals("*") && user.isAuthorized("essentials.clearinventory.all"))
+ {
+ if (args.length > 1)
+ {
+ for (Player onlinePlayer : server.getOnlinePlayers())
+ {
+ clearInventory(onlinePlayer, args[1]);
+ }
+ user.sendMessage("Cleared everyone's inventory");
+ }
+ else
+ {
+ throw new NotEnoughArgumentsException();
+ }
+ }
+ else if (args[0].length() >= 3)
{
List<Player> online = server.matchPlayer(args[0]);
@@ -30,30 +47,48 @@ public class Commandclearinventory extends EssentialsCommand
{
for (Player p : online)
{
- p.getInventory().clear();
+ if (args.length > 1)
+ {
+ clearInventory(p, args[1]);
+ }
+ else
+ {
+ p.getInventory().clear();
+ }
user.sendMessage(_("inventoryClearedOthers", p.getDisplayName()));
}
- return;
}
- throw new Exception(_("playerNotFound"));
+ else
+ {
+ clearInventory(user, args[0]);
+ user.sendMessage(_("inventoryCleared"));
+ }
}
else
{
Player p = server.getPlayer(args[0]);
if (p != null)
{
- p.getInventory().clear();
+ clearInventory(p, args[1]);
user.sendMessage(_("inventoryClearedOthers", p.getDisplayName()));
}
else
{
- throw new Exception(_("playerNotFound"));
+ clearInventory(user, args[0]);
+ user.sendMessage(_("inventoryCleared"));
}
}
}
else
{
- user.getInventory().clear();
+ if (args.length > 0)
+ {
+ clearInventory(user, args[0]);
+ }
+ else
+ {
+ user.getInventory().clear();
+ }
user.sendMessage(_("inventoryCleared"));
}
}
@@ -66,7 +101,22 @@ public class Commandclearinventory extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
- if (args[0].length() >= 3)
+ if (args[0].contentEquals("*"))
+ {
+ if (args.length > 1)
+ {
+ for (Player onlinePlayer : server.getOnlinePlayers())
+ {
+ clearInventory(onlinePlayer, args[1]);
+ }
+ sender.sendMessage("Cleared everyone's inventory");
+ }
+ else
+ {
+ throw new NotEnoughArgumentsException();
+ }
+ }
+ else if (args[0].length() >= 3)
{
List<Player> online = server.matchPlayer(args[0]);
@@ -74,19 +124,28 @@ public class Commandclearinventory extends EssentialsCommand
{
for (Player p : online)
{
- p.getInventory().clear();
+ if (args.length > 1)
+ {
+ clearInventory(p, args[1]);
+ }
+ else
+ {
+ p.getInventory().clear();
+ }
sender.sendMessage(_("inventoryClearedOthers", p.getDisplayName()));
}
- return;
}
- throw new Exception(_("playerNotFound"));
+ else
+ {
+ throw new Exception(_("playerNotFound"));
+ }
}
else
{
Player u = server.getPlayer(args[0]);
if (u != null)
{
- u.getInventory().clear();
+ clearInventory(u, args[0]);
sender.sendMessage(_("inventoryClearedOthers", u.getDisplayName()));
}
else
@@ -95,4 +154,34 @@ public class Commandclearinventory extends EssentialsCommand
}
}
}
-}
+
+ public void clearInventory(Player player, String arg) throws Exception
+ {
+ final String[] split = arg.split(":");
+ if (arg.contentEquals("*"))
+ {
+ player.getInventory().clear();
+ }
+ else
+ {
+ final ItemStack item = ess.getItemDb().get(split[0]);
+ final int type = item.getTypeId();
+
+ if (split.length > 1 && Util.isInt(arg.replace(":", "")))
+ {
+ player.getInventory().clear(type, Integer.parseInt(split[1]));
+ }
+ else
+ {
+ if (Util.isInt(split[0]))
+ {
+ player.getInventory().clear(type, -1);
+ }
+ else
+ {
+ player.getInventory().clear(type, item.getDurability());
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/Essentials/src/plugin.yml b/Essentials/src/plugin.yml
index c410c53e8..0a43b2901 100644
--- a/Essentials/src/plugin.yml
+++ b/Essentials/src/plugin.yml
@@ -62,7 +62,7 @@ commands:
clearinventory:
description: Clear all items in your inventory.
usage: /<command>
- aliases: [ci,eci,clearinvent,clean,eclean,eclearinvent,eclearinventory]
+ aliases: [clear,ci,eci,clearinvent,clean,eclean,eclearinvent,eclearinventory]
compass:
description: Describes your current bearing.
usage: /<command>