Browse Source

Remove debug message, use recipe method for salvage.

GJ 11 years ago
parent
commit
566a381e95

+ 50 - 22
src/main/java/com/gmail/nossr50/skills/repair/Repair.java

@@ -2,7 +2,11 @@ package com.gmail.nossr50.skills.repair;
 
 import org.bukkit.Material;
 import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.Recipe;
+import org.bukkit.inventory.ShapedRecipe;
+import org.bukkit.inventory.ShapelessRecipe;
 
+import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.config.AdvancedConfig;
 import com.gmail.nossr50.config.Config;
 import com.gmail.nossr50.locale.LocaleLoader;
@@ -79,29 +83,53 @@ public class Repair {
     }
 
     protected static int getSalvagedAmount(ItemStack inHand) {
-        if (ItemUtils.isPickaxe(inHand) || ItemUtils.isAxe(inHand) || inHand.getType() == Material.BOW || inHand.getType() == Material.BUCKET) {
-            return 3;
+        // Temporary workaround until they get their stuff fixed.
+        if (mcMMO.p.getServer().getName().equals("MCPC+")) {
+            if (ItemUtils.isPickaxe(inHand) || ItemUtils.isAxe(inHand) || inHand.getType() == Material.BOW || inHand.getType() == Material.BUCKET) {
+                return 3;
+            }
+            else if (ItemUtils.isShovel(inHand) || inHand.getType() == Material.FLINT_AND_STEEL) {
+                return 1;
+            }
+            else if (ItemUtils.isSword(inHand) || ItemUtils.isHoe(inHand) || inHand.getType() == Material.CARROT_STICK || inHand.getType() == Material.FISHING_ROD || inHand.getType() == Material.SHEARS) {
+                return 2;
+            }
+            else if (ItemUtils.isHelmet(inHand)) {
+                return 5;
+            }
+            else if (ItemUtils.isChestplate(inHand)) {
+                return 8;
+            }
+            else if (ItemUtils.isLeggings(inHand)) {
+                return 7;
+            }
+            else if (ItemUtils.isBoots(inHand)) {
+                return 4;
+            }
+            else {
+                return 0;
+            }
         }
-        else if (ItemUtils.isShovel(inHand) || inHand.getType() == Material.FLINT_AND_STEEL) {
-            return 1;
-        }
-        else if (ItemUtils.isSword(inHand) || ItemUtils.isHoe(inHand) || inHand.getType() == Material.CARROT_STICK || inHand.getType() == Material.FISHING_ROD || inHand.getType() == Material.SHEARS) {
-            return 2;
-        }
-        else if (ItemUtils.isHelmet(inHand)) {
-            return 5;
-        }
-        else if (ItemUtils.isChestplate(inHand)) {
-            return 8;
-        }
-        else if (ItemUtils.isLeggings(inHand)) {
-            return 7;
-        }
-        else if (ItemUtils.isBoots(inHand)) {
-            return 4;
-        }
-        else {
-            return 0;
+
+        Recipe recipe = mcMMO.p.getServer().getRecipesFor(inHand).get(0);
+        int salvageAmount = 0;
+        Material salvageMaterial = getSalvagedItem(inHand);
+
+        if (recipe instanceof ShapelessRecipe) {
+            for (ItemStack ingredient : ((ShapelessRecipe) recipe).getIngredientList()) {
+                if (ingredient != null && ingredient.getType() == salvageMaterial) {
+                    salvageAmount += ingredient.getAmount();
+                }
+            }
+        }
+        else if (recipe instanceof ShapedRecipe) {
+            for (ItemStack ingredient : ((ShapedRecipe) recipe).getIngredientMap().values()) {
+                if (ingredient != null && ingredient.getType() == salvageMaterial) {
+                    salvageAmount += ingredient.getAmount();
+                }
+            }
         }
+
+        return salvageAmount;
     }
 }

+ 0 - 2
src/main/java/com/gmail/nossr50/skills/repair/config/RepairConfig.java

@@ -164,8 +164,6 @@ public class RepairConfig extends ConfigLoader {
                 }
             }
 
-            System.out.println("Minimum quantity of " + key + ": " + minimumQuantity);
-
             if (minimumQuantity <= 0) {
                 reason.add("Minimum quantity of " + key + " must be greater than 0!");
             }