diff --git a/Changelog.txt b/Changelog.txt
index 454180ccd..b01a34d69 100644
--- a/Changelog.txt
+++ b/Changelog.txt
@@ -1,3 +1,10 @@
+Version 2.1.77
+ Added minimum quantity back to Repair config
+
+ NOTES: I removed this last patch because I did not consider that server admins might be allowing users to repair items without crafting recipes (as of last patch mcMMO determines minimum quantity via counting ingredients in a recipe)
+ If you do not define minimum quantity in the repair config, mcMMO will grab the minimum quantity automatically as I programmed it to do as of last patch, otherwise if it is defined, mcMMO will respect that and use that for calculations.
+ The minimum quanitty should be set to the number of ingredients used to craft the recipe, for example 8 for diamond chestplate etc, you do not need to define this unless you are allowing players to repair custom items.
+
Version 2.1.76
Advanced Salvage has been renamed to Scrap Collector
Scrap Collector has 8 ranks, the first rank is unlocked at level 2 (Level 20 in RetroMode)
diff --git a/pom.xml b/pom.xml
index 85261dd01..d8d1fe306 100755
--- a/pom.xml
+++ b/pom.xml
@@ -2,7 +2,7 @@
4.0.0
com.gmail.nossr50.mcMMO
mcMMO
- 2.1.76
+ 2.1.77-SNAPSHOT
mcMMO
https://github.com/mcMMO-Dev/mcMMO
diff --git a/src/main/java/com/gmail/nossr50/config/skills/repair/RepairConfig.java b/src/main/java/com/gmail/nossr50/config/skills/repair/RepairConfig.java
index 0c88041d8..6aebb9841 100644
--- a/src/main/java/com/gmail/nossr50/config/skills/repair/RepairConfig.java
+++ b/src/main/java/com/gmail/nossr50/config/skills/repair/RepairConfig.java
@@ -6,6 +6,7 @@ import com.gmail.nossr50.datatypes.skills.MaterialType;
import com.gmail.nossr50.skills.repair.repairables.Repairable;
import com.gmail.nossr50.skills.repair.repairables.RepairableFactory;
import com.gmail.nossr50.util.ItemUtils;
+import com.gmail.nossr50.util.skills.SkillUtils;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.inventory.ItemStack;
@@ -132,8 +133,15 @@ public class RepairConfig extends ConfigLoader {
reason.add(key + " has an invalid MinimumLevel of " + minimumLevel);
}
+ // Minimum Quantity
+ int minimumQuantity = config.getInt("Repairables." + key + ".MinimumQuantity");
+
+ if(minimumQuantity == 0) {
+ minimumQuantity = -1;
+ }
+
if (noErrorsInRepairable(reason)) {
- Repairable repairable = RepairableFactory.getRepairable(itemMaterial, repairMaterial, minimumLevel, maximumDurability, repairItemType, repairMaterialType, xpMultiplier);
+ Repairable repairable = RepairableFactory.getRepairable(itemMaterial, repairMaterial, null, minimumLevel, maximumDurability, repairItemType, repairMaterialType, xpMultiplier, minimumQuantity);
repairables.add(repairable);
}
}
diff --git a/src/main/java/com/gmail/nossr50/skills/repair/repairables/RepairableFactory.java b/src/main/java/com/gmail/nossr50/skills/repair/repairables/RepairableFactory.java
index df4b8718f..85ed7d8ae 100644
--- a/src/main/java/com/gmail/nossr50/skills/repair/repairables/RepairableFactory.java
+++ b/src/main/java/com/gmail/nossr50/skills/repair/repairables/RepairableFactory.java
@@ -14,8 +14,15 @@ public class RepairableFactory {
return getRepairable(itemMaterial, repairMaterial, null, minimumLevel, maximumDurability, repairItemType, repairMaterialType, xpMultiplier);
}
- public static Repairable getRepairable(Material itemMaterial, Material repairMaterial, String repairMaterialPrettyName, int minimumLevel, short maximumDurability, ItemType repairItemType, MaterialType repairMaterialType, double xpMultiplier) {
+ public static Repairable getRepairable(Material itemMaterial, Material repairMaterial, String repairMaterialPrettyName,
+ int minimumLevel, short maximumDurability, ItemType repairItemType, MaterialType repairMaterialType, double xpMultiplier) {
// TODO: Add in loading from config what type of repairable we want.
return new SimpleRepairable(itemMaterial, repairMaterial, repairMaterialPrettyName, minimumLevel, maximumDurability, repairItemType, repairMaterialType, xpMultiplier);
}
+
+ public static Repairable getRepairable(Material itemMaterial, Material repairMaterial, String repairMaterialPrettyName,
+ int minimumLevel, short maximumDurability, ItemType repairItemType, MaterialType repairMaterialType, double xpMultiplier, int minQuantity) {
+ // TODO: Add in loading from config what type of repairable we want.
+ return new SimpleRepairable(itemMaterial, repairMaterial, repairMaterialPrettyName, minimumLevel, maximumDurability, repairItemType, repairMaterialType, xpMultiplier, minQuantity);
+ }
}
diff --git a/src/main/java/com/gmail/nossr50/skills/repair/repairables/SimpleRepairable.java b/src/main/java/com/gmail/nossr50/skills/repair/repairables/SimpleRepairable.java
index 74a8544c5..6d5472b53 100644
--- a/src/main/java/com/gmail/nossr50/skills/repair/repairables/SimpleRepairable.java
+++ b/src/main/java/com/gmail/nossr50/skills/repair/repairables/SimpleRepairable.java
@@ -15,6 +15,7 @@ public class SimpleRepairable implements Repairable {
private final ItemType repairItemType;
private final MaterialType repairMaterialType;
private final double xpMultiplier;
+ private int minQuantity = -1;
protected SimpleRepairable(Material type, Material repairMaterial, String repairMaterialPrettyName, int minimumLevel, short maximumDurability, ItemType repairItemType, MaterialType repairMaterialType, double xpMultiplier) {
this.itemMaterial = type;
@@ -27,6 +28,18 @@ public class SimpleRepairable implements Repairable {
this.xpMultiplier = xpMultiplier;
}
+ protected SimpleRepairable(Material type, Material repairMaterial, String repairMaterialPrettyName, int minimumLevel, short maximumDurability, ItemType repairItemType, MaterialType repairMaterialType, double xpMultiplier, int minQuantity) {
+ this.itemMaterial = type;
+ this.repairMaterial = repairMaterial;
+ this.repairMaterialPrettyName = repairMaterialPrettyName;
+ this.repairItemType = repairItemType;
+ this.repairMaterialType = repairMaterialType;
+ this.minimumLevel = minimumLevel;
+ this.maximumDurability = maximumDurability;
+ this.xpMultiplier = xpMultiplier;
+ this.minQuantity = minQuantity;
+ }
+
@Override
public Material getItemMaterial() {
return itemMaterial;
@@ -54,7 +67,10 @@ public class SimpleRepairable implements Repairable {
@Override
public int getMinimumQuantity() {
- return Math.max(SkillUtils.getRepairAndSalvageQuantities(itemMaterial, repairMaterial), 2);
+ if(minQuantity != -1)
+ return Math.max(SkillUtils.getRepairAndSalvageQuantities(itemMaterial, repairMaterial), 2);
+ else
+ return minQuantity;
}
@Override