summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKHobbits <rob@khobbits.co.uk>2013-01-12 17:05:05 +0000
committerKHobbits <rob@khobbits.co.uk>2013-01-12 17:05:05 +0000
commit298ab846c126cb5a3a76ac883c614498cc4aaace (patch)
treec9301555ef459a32e4d4814c2f62687551514163
parent7fdb2ad7d32a3f22d6049cbf35cf8f3b3b9839f9 (diff)
downloadEssentials-298ab846c126cb5a3a76ac883c614498cc4aaace.tar
Essentials-298ab846c126cb5a3a76ac883c614498cc4aaace.tar.gz
Essentials-298ab846c126cb5a3a76ac883c614498cc4aaace.tar.lz
Essentials-298ab846c126cb5a3a76ac883c614498cc4aaace.tar.xz
Essentials-298ab846c126cb5a3a76ac883c614498cc4aaace.zip
Don't extend ItemStack
-rw-r--r--Essentials/src/com/earth2me/essentials/Kit.java8
-rw-r--r--Essentials/src/com/earth2me/essentials/MetaItemStack.java6
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandenchant.java11
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandgive.java13
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commanditem.java11
5 files changed, 29 insertions, 20 deletions
diff --git a/Essentials/src/com/earth2me/essentials/Kit.java b/Essentials/src/com/earth2me/essentials/Kit.java
index b2b100553..35b105612 100644
--- a/Essentials/src/com/earth2me/essentials/Kit.java
+++ b/Essentials/src/com/earth2me/essentials/Kit.java
@@ -116,24 +116,24 @@ public class Kit
final String[] parts = d.split(" ");
final ItemStack parseStack = ess.getItemDb().get(parts[0], parts.length > 1 ? Integer.parseInt(parts[1]) : 1);
- final MetaItemStack stack = new MetaItemStack(parseStack);
+ final MetaItemStack metaStack = new MetaItemStack(parseStack);
if (parts.length > 2)
{
for (int i = 2; i < parts.length; i++)
{
- stack.addStringEnchantment(null, allowUnsafe, parts[i]);
+ metaStack.addStringEnchantment(null, allowUnsafe, parts[i]);
}
}
final Map<Integer, ItemStack> overfilled;
if (user.isAuthorized("essentials.oversizedstacks"))
{
- overfilled = InventoryWorkaround.addOversizedItems(user.getInventory(), ess.getSettings().getOversizedStackSize(), stack.getBase());
+ overfilled = InventoryWorkaround.addOversizedItems(user.getInventory(), ess.getSettings().getOversizedStackSize(), metaStack.getItemStack());
}
else
{
- overfilled = InventoryWorkaround.addItems(user.getInventory(), stack.getBase());
+ overfilled = InventoryWorkaround.addItems(user.getInventory(), metaStack.getItemStack());
}
for (ItemStack itemStack : overfilled.values())
{
diff --git a/Essentials/src/com/earth2me/essentials/MetaItemStack.java b/Essentials/src/com/earth2me/essentials/MetaItemStack.java
index 9aa064590..cf4aa70ec 100644
--- a/Essentials/src/com/earth2me/essentials/MetaItemStack.java
+++ b/Essentials/src/com/earth2me/essentials/MetaItemStack.java
@@ -9,17 +9,17 @@ import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.EnchantmentStorageMeta;
-public class MetaItemStack extends ItemStack
+public class MetaItemStack
{
private final transient Pattern splitPattern = Pattern.compile("[:+',;.]");
private final ItemStack stack;
public MetaItemStack(final ItemStack stack)
{
- this.stack = stack;
+ this.stack = stack.clone();
}
- public ItemStack getBase()
+ public ItemStack getItemStack()
{
return stack;
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandenchant.java b/Essentials/src/com/earth2me/essentials/commands/Commandenchant.java
index 461631282..663652436 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandenchant.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandenchant.java
@@ -11,6 +11,7 @@ import java.util.Set;
import java.util.TreeSet;
import org.bukkit.Server;
import org.bukkit.enchantments.Enchantment;
+import org.bukkit.inventory.ItemStack;
public class Commandenchant extends EssentialsCommand
@@ -24,7 +25,7 @@ public class Commandenchant extends EssentialsCommand
@Override
protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{
- final MetaItemStack stack = new MetaItemStack(user.getItemInHand());
+ final ItemStack stack = user.getItemInHand();
if (stack == null)
{
throw new Exception(_("nothingInHand"));
@@ -58,11 +59,13 @@ public class Commandenchant extends EssentialsCommand
}
final boolean allowUnsafe = ess.getSettings().allowUnsafeEnchantments() && user.isAuthorized("essentials.enchant.allowunsafe");
- final Enchantment enchantment = stack.getEnchantment(user, args[0]);
- stack.addEnchantment(user, allowUnsafe, enchantment, level);
+
+ final MetaItemStack metaStack = new MetaItemStack(stack);
+ final Enchantment enchantment = metaStack.getEnchantment(user, args[0]);
+ metaStack.addEnchantment(user, allowUnsafe, enchantment, level);
- user.getInventory().setItemInHand(stack.getBase());
+ user.getInventory().setItemInHand(metaStack.getItemStack());
user.updateInventory();
final String enchantmentName = enchantment.getName().toLowerCase(Locale.ENGLISH);
if (level == 0)
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandgive.java b/Essentials/src/com/earth2me/essentials/commands/Commandgive.java
index 0fabf3afc..c80ff0d1b 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandgive.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandgive.java
@@ -10,6 +10,7 @@ import org.bukkit.Material;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
+import org.bukkit.inventory.ItemStack;
public class Commandgive extends EssentialsCommand
@@ -27,7 +28,7 @@ public class Commandgive extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
- final MetaItemStack stack = new MetaItemStack(ess.getItemDb().get(args[1]));
+ ItemStack stack = ess.getItemDb().get(args[1]);
final String itemname = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", "");
if (sender instanceof Player
@@ -70,7 +71,8 @@ public class Commandgive extends EssentialsCommand
if (args.length > 3)
{
- boolean allowUnsafe = ess.getSettings().allowUnsafeEnchantments();
+ MetaItemStack metaStack = new MetaItemStack(stack);
+ boolean allowUnsafe = ess.getSettings().allowUnsafeEnchantments();
if (allowUnsafe && sender instanceof Player && !ess.getUser(sender).isAuthorized("essentials.enchant.allowunsafe"))
{
allowUnsafe = false;
@@ -78,8 +80,9 @@ public class Commandgive extends EssentialsCommand
for (int i = Util.isInt(args[3]) ? 4 : 3; i < args.length; i++)
{
- stack.addStringEnchantment(null, allowUnsafe, args[i]);
+ metaStack.addStringEnchantment(null, allowUnsafe, args[i]);
}
+ stack = metaStack.getItemStack();
}
if (stack.getType() == Material.AIR)
@@ -91,11 +94,11 @@ public class Commandgive extends EssentialsCommand
sender.sendMessage(_("giveSpawn", stack.getAmount(), itemName, giveTo.getDisplayName()));
if (giveTo.isAuthorized("essentials.oversizedstacks"))
{
- InventoryWorkaround.addOversizedItems(giveTo.getInventory(), ess.getSettings().getOversizedStackSize(), stack.getBase());
+ InventoryWorkaround.addOversizedItems(giveTo.getInventory(), ess.getSettings().getOversizedStackSize(), stack);
}
else
{
- InventoryWorkaround.addItems(giveTo.getInventory(), stack.getBase());
+ InventoryWorkaround.addItems(giveTo.getInventory(), stack);
}
giveTo.updateInventory();
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commanditem.java b/Essentials/src/com/earth2me/essentials/commands/Commanditem.java
index 096da99d5..0acd1f60f 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commanditem.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commanditem.java
@@ -7,6 +7,7 @@ import com.earth2me.essentials.craftbukkit.InventoryWorkaround;
import java.util.Locale;
import org.bukkit.Material;
import org.bukkit.Server;
+import org.bukkit.inventory.ItemStack;
public class Commanditem extends EssentialsCommand
@@ -23,7 +24,7 @@ public class Commanditem extends EssentialsCommand
{
throw new NotEnoughArgumentsException();
}
- final MetaItemStack stack = new MetaItemStack(ess.getItemDb().get(args[0]));
+ ItemStack stack = ess.getItemDb().get(args[0]);
final String itemname = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", "");
if (ess.getSettings().permissionBasedItemSpawn()
@@ -56,12 +57,14 @@ public class Commanditem extends EssentialsCommand
}
if (args.length > 2)
{
+ MetaItemStack metaStack = new MetaItemStack(stack);
final boolean allowUnsafe = ess.getSettings().allowUnsafeEnchantments() && user.isAuthorized("essentials.enchant.allowunsafe");
for (int i = 2; i < args.length; i++)
{
- stack.addStringEnchantment(null, allowUnsafe, args[i]);
+ metaStack.addStringEnchantment(null, allowUnsafe, args[i]);
}
+ stack = metaStack.getItemStack();
}
@@ -74,11 +77,11 @@ public class Commanditem extends EssentialsCommand
user.sendMessage(_("itemSpawn", stack.getAmount(), displayName));
if (user.isAuthorized("essentials.oversizedstacks"))
{
- InventoryWorkaround.addOversizedItems(user.getInventory(), ess.getSettings().getOversizedStackSize(), stack.getBase());
+ InventoryWorkaround.addOversizedItems(user.getInventory(), ess.getSettings().getOversizedStackSize(), stack);
}
else
{
- InventoryWorkaround.addItems(user.getInventory(), stack.getBase());
+ InventoryWorkaround.addItems(user.getInventory(), stack);
}
user.updateInventory();
}