Browse Source

Fixing remaining NPEs with custom blocks using vanilla IDs.

Glitchfinder 12 years ago
parent
commit
cafed2d98c

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

@@ -219,7 +219,7 @@ public class Mining {
             break;
 
         default:
-            if (ModChecks.isCustomMiningBlock(block) && ModChecks.getCustomBlock(block) != null) {
+            if (ModChecks.isCustomMiningBlock(block)) {
                 CustomBlock customBlock = ModChecks.getCustomBlock(block);
                 int minimumDropAmount = customBlock.getMinimumDropAmount();
                 int maximumDropAmount = customBlock.getMaximumDropAmount();
@@ -308,7 +308,7 @@ public class Mining {
             break;
 
         default:
-            if (ModChecks.isCustomMiningBlock(block) && ModChecks.getCustomBlock(block) != null) {
+            if (ModChecks.isCustomMiningBlock(block)) {
                 xp += ModChecks.getCustomBlock(block).getXpGain();
             }
             break;
@@ -365,7 +365,7 @@ public class Mining {
         int durabilityLoss = Config.getInstance().getAbilityToolDamage();
         FakePlayerAnimationEvent armswing = new FakePlayerAnimationEvent(player);
 
-        if (ModChecks.isCustomMiningBlock(block) && ModChecks.getCustomBlock(block) != null) {
+        if (ModChecks.isCustomMiningBlock(block)) {
             if (ModChecks.getCustomBlock(block).getTier() < tier) {
                 return;
             }

+ 28 - 16
src/main/java/com/gmail/nossr50/util/ModChecks.java

@@ -76,11 +76,14 @@ public class ModChecks {
         item.setData(new MaterialData(block.getTypeId(), block.getData()));
 
         if (customBlocksEnabled && blocksInstance.customMiningBlocks.contains(item)) {
-            return true;
-        }
-        else {
-            return false;
+            for (CustomBlock b : blocksInstance.customBlocks) {
+                if ((b.getItemID() == block.getTypeId()) && (b.getDataValue() == block.getData())) {
+                    return true;
+                }
+            }
         }
+
+        return false;
     }
 
     /**
@@ -94,11 +97,14 @@ public class ModChecks {
         item.setData(new MaterialData(block.getTypeId(), block.getData()));
 
         if (blocksInstance.customLeaves.contains(item)) {
-            return true;
-        }
-        else {
-            return false;
+            for (CustomBlock b : blocksInstance.customBlocks) {
+                if ((b.getItemID() == block.getTypeId()) && (b.getDataValue() == block.getData())) {
+                    return true;
+                }
+            }
         }
+
+        return false;
     }
 
     /**
@@ -112,11 +118,14 @@ public class ModChecks {
         item.setData(new MaterialData(block.getTypeId(), block.getData()));
 
         if (blocksInstance.customLogs.contains(item)) {
-            return true;
-        }
-        else {
-            return false;
+            for (CustomBlock b : blocksInstance.customBlocks) {
+                if ((b.getItemID() == block.getTypeId()) && (b.getDataValue() == block.getData())) {
+                    return true;
+                }
+            }
         }
+
+        return false;
     }
 
     /**
@@ -130,11 +139,14 @@ public class ModChecks {
         item.setData(new MaterialData(block.getTypeId(), block.getData()));
 
         if (blocksInstance.customOres.contains(item)) {
-            return true;
-        }
-        else {
-            return false;
+            for (CustomBlock b : blocksInstance.customBlocks) {
+                if ((b.getItemID() == block.getTypeId()) && (b.getDataValue() == block.getData())) {
+                    return true;
+                }
+            }
         }
+
+        return false;
     }
 
     /**