Bläddra i källkod

Merge pull request #458 from Glitchfinder/master

Adding a bit more in the way of Dye-related backwards compatibility.
Glitchfinder 12 år sedan
förälder
incheckning
32e0be481a

+ 8 - 3
src/main/java/com/gmail/nossr50/skills/gathering/Fishing.java

@@ -403,9 +403,14 @@ public class Fishing {
                 }
                 break;
 
-            case SQUID:
-                ItemStack item = new ItemStack(Material.INK_SACK, 1);
-                item.setData(new MaterialData(Material.INK_SACK, DyeColor.BLACK.getDyeData()));
+            case SQUID:
+                ItemStack item;
+                try {
+                    item = (new MaterialData(Material.INK_SACK, DyeColor.BLACK.getDyeData())).toItemStack(1);
+                }
+		catch(Exception e) {
+                    item = (new MaterialData(Material.INK_SACK, (byte) 0)).toItemStack(1);
+                }
 
                 Misc.dropItem(location, item);
                 break;

+ 20 - 4
src/main/java/com/gmail/nossr50/skills/gathering/Herbalism.java

@@ -269,7 +269,12 @@ public class Herbalism {
             }
             else {
                 if (mat == Material.COCOA) {
-                    is = new ItemStack(Material.INK_SACK, 1, DyeColor.BROWN.getDyeData());
+                    try {
+                        is = new ItemStack(Material.INK_SACK, 1, DyeColor.BROWN.getDyeData());
+                    }
+                    catch (Exception e) {
+                        is = new ItemStack(Material.INK_SACK, 1, (short) 3);
+                    }
                 }
                 else if (mat == Material.CARROT) {
                     is = new ItemStack(Material.CARROT_ITEM, 1, (short) 0);
@@ -422,7 +427,12 @@ public class Herbalism {
             break;
         case COCOA:
             // Broken: Requires an update to bukkit to enable seaching for variable-sized ItemStacks.
-            hasSeeds = inventory.contains(new ItemStack(Material.INK_SACK, 1, DyeColor.BROWN.getDyeData()), 1);
+            try {
+                hasSeeds = inventory.contains(new ItemStack(Material.INK_SACK, 1, DyeColor.BROWN.getDyeData()), 1);
+            }
+            catch(Exception e) {
+                hasSeeds = inventory.contains(new ItemStack(Material.INK_SACK, 1, (short) 3), 1);
+            }
             break;
         case CARROT:
             hasSeeds = inventory.contains(Material.CARROT_ITEM);
@@ -456,8 +466,14 @@ public class Herbalism {
                 inventory.removeItem(new ItemStack(Material.SEEDS));
                 break;
             case COCOA:
-                Misc.dropItem(location, new ItemStack(Material.INK_SACK, 3, DyeColor.BROWN.getDyeData()));
-                inventory.removeItem(new ItemStack(Material.INK_SACK, 1, DyeColor.BROWN.getDyeData()));
+                try {
+                    Misc.dropItem(location, new ItemStack(Material.INK_SACK, 3, DyeColor.BROWN.getDyeData()));
+                    inventory.removeItem(new ItemStack(Material.INK_SACK, 1, DyeColor.BROWN.getDyeData()));
+                }
+                catch(Exception e) {
+                    Misc.dropItem(location, new ItemStack(Material.INK_SACK, 3, (short) 3));
+                    inventory.removeItem(new ItemStack(Material.INK_SACK, 1, (short) 3));
+                }
                 break;
             case CARROT:
                 Misc.dropItem(location, new ItemStack(Material.CARROT_ITEM));