summaryrefslogtreecommitdiffstats
path: root/src/main/java/org
diff options
context:
space:
mode:
authorErik Broes <erikbroes@grum.nl>2011-01-17 01:55:53 +0100
committerErik Broes <erikbroes@grum.nl>2011-01-17 01:55:53 +0100
commit80a59397cb701e2beb1880ad1023dd09a5795a34 (patch)
tree4d2cbb23403b706cde9bddce45cb06818ce36ac9 /src/main/java/org
parent0c492912de65dcf725007bea115968311cd79dd9 (diff)
downloadcraftbukkit-80a59397cb701e2beb1880ad1023dd09a5795a34.tar
craftbukkit-80a59397cb701e2beb1880ad1023dd09a5795a34.tar.gz
craftbukkit-80a59397cb701e2beb1880ad1023dd09a5795a34.tar.lz
craftbukkit-80a59397cb701e2beb1880ad1023dd09a5795a34.tar.xz
craftbukkit-80a59397cb701e2beb1880ad1023dd09a5795a34.zip
Updated CraftInventory to make use of the proper generics in the Inventory interface.
Updated loads of return values to now return actual Craft* objects. Added a shitton of constructors to CraftItemStack so you can now finally properly make your ItemStacks.
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java32
-rw-r--r--src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java4
-rw-r--r--src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java40
3 files changed, 56 insertions, 20 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
index 26b09086..d7ad8a50 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
@@ -84,12 +84,12 @@ public class CraftInventory implements org.bukkit.inventory.Inventory {
return false;
}
- public HashMap<Integer, ItemStack> all(int materialId) {
- HashMap<Integer, ItemStack> slots = new HashMap<Integer, ItemStack>();
+ public HashMap<Integer, CraftItemStack> all(int materialId) {
+ HashMap<Integer, CraftItemStack> slots = new HashMap<Integer, CraftItemStack>();
- ItemStack[] inventory = getContents();
+ CraftItemStack[] inventory = getContents();
for (int i = 0; i < inventory.length; i++) {
- ItemStack item = inventory[i];
+ CraftItemStack item = inventory[i];
if (item.getTypeId() == materialId) {
slots.put( i, item );
}
@@ -97,24 +97,24 @@ public class CraftInventory implements org.bukkit.inventory.Inventory {
return slots;
}
- public HashMap<Integer, ItemStack> all(Material material) {
+ public HashMap<Integer, CraftItemStack> all(Material material) {
return all(material.getId());
}
- public HashMap<Integer, ItemStack> all(ItemStack item) {
- HashMap<Integer, ItemStack> slots = new HashMap<Integer, ItemStack>();
+ public HashMap<Integer, CraftItemStack> all(ItemStack item) {
+ HashMap<Integer, CraftItemStack> slots = new HashMap<Integer, CraftItemStack>();
- ItemStack[] inventory = getContents();
+ CraftItemStack[] inventory = getContents();
for (int i = 0; i < inventory.length; i++) {
if (item.equals(inventory[i])) {
- slots.put( i, item );
+ slots.put( i, inventory[i] );
}
}
return slots;
}
public int first(int materialId) {
- ItemStack[] inventory = getContents();
+ CraftItemStack[] inventory = getContents();
for (int i = 0; i < inventory.length; i++) {
if (inventory[i].getTypeId() == materialId) {
return i;
@@ -128,7 +128,7 @@ public class CraftInventory implements org.bukkit.inventory.Inventory {
}
public int first(ItemStack item) {
- ItemStack[] inventory = getContents();
+ CraftItemStack[] inventory = getContents();
for (int i = 0; i < inventory.length; i++) {
if (item.equals(inventory[i])) {
return i;
@@ -142,9 +142,9 @@ public class CraftInventory implements org.bukkit.inventory.Inventory {
}
public int firstPartial(int materialId) {
- ItemStack[] inventory = getContents();
+ CraftItemStack[] inventory = getContents();
for (int i = 0; i < inventory.length; i++) {
- ItemStack item = inventory[i];
+ CraftItemStack item = inventory[i];
if (item != null && item.getTypeId() == materialId && item.getAmount() < item.getMaxStackSize()) {
return i;
}
@@ -161,7 +161,7 @@ public class CraftInventory implements org.bukkit.inventory.Inventory {
}
public HashMap<Integer, ItemStack> addItem(ItemStack... items) {
- HashMap<Integer,ItemStack> leftover = new HashMap<Integer,ItemStack>();
+ HashMap<Integer, ItemStack> leftover = new HashMap<Integer, ItemStack>();
/* TODO: some optimization
* - Create a 'firstPartial' with a 'fromIndex'
@@ -187,7 +187,7 @@ public class CraftInventory implements org.bukkit.inventory.Inventory {
} else {
// More than a single stack!
if (item.getAmount() > getMaxItemStack()) {
- setItem( firstFree, new ItemStack(item.getTypeId(), getMaxItemStack()));
+ setItem( firstFree, new CraftItemStack(item.getTypeId(), getMaxItemStack()));
item.setAmount(item.getAmount() - getMaxItemStack());
} else {
// Just store it
@@ -197,7 +197,7 @@ public class CraftInventory implements org.bukkit.inventory.Inventory {
}
} else {
// So, apparently it might only partially fit, well lets do just that
- ItemStack partialItem = getItem(firstPartial);
+ CraftItemStack partialItem = getItem(firstPartial);
int amount = item.getAmount();
int partialAmount = partialItem.getAmount();
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java
index af222f3c..17eb8c09 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java
@@ -62,9 +62,9 @@ public class CraftInventoryPlayer extends CraftInventory implements PlayerInvent
setItem( getSize() + 3, boots );
}
- public ItemStack[] getArmorContents() {
+ public CraftItemStack[] getArmorContents() {
net.minecraft.server.ItemStack[] mcItems = getInventory().getArmorContents();
- ItemStack[] ret = new ItemStack[mcItems.length];
+ CraftItemStack[] ret = new CraftItemStack[mcItems.length];
for (int i = 0; i < mcItems.length; i++ ) {
ret[i] = new CraftItemStack(mcItems[i]);
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
index a08fa55d..b32f5566 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
@@ -7,11 +7,47 @@ public class CraftItemStack extends ItemStack {
protected net.minecraft.server.ItemStack item;
public CraftItemStack(net.minecraft.server.ItemStack item) {
- super(item != null ? item.c : 0, item != null ? item.a : 0,
- (byte)(item != null ? item.d : 0));
+ super(
+ item != null ? item.c : 0,
+ item != null ? item.a : 0,
+ (byte)(item != null ? item.d : 0)
+ );
this.item = item;
}
+ /* 'Overwritten' constructors from ItemStack, yay for Java sucking */
+ public CraftItemStack(final int type) {
+ this(type, 0);
+ }
+
+ public CraftItemStack(final Material type) {
+ this(type, 0);
+ }
+
+ public CraftItemStack(final int type, final int amount) {
+ this(type, amount, (byte) 0);
+ }
+
+ public CraftItemStack(final Material type, final int amount) {
+ this(type.getId(), amount);
+ }
+
+ public CraftItemStack(final int type, final int amount, final byte damage) {
+ this(type, amount, damage, null);
+ }
+
+ public CraftItemStack(final Material type, final int amount, final byte damage) {
+ this(type.getId(), amount, damage);
+ }
+
+ public CraftItemStack(final Material type, final int amount, final byte damage, final Byte data) {
+ this(type.getId(), amount, damage, data);
+ }
+
+ public CraftItemStack(int type, int amount, byte damage, Byte data) {
+ this(new net.minecraft.server.ItemStack(type, amount, data != null ? data : damage));
+ }
+
/*
* Unsure if we have to sync before each of these calls the values in 'item'
* are all public.