mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-03 18:43:43 +01:00 
			
		
		
		
	2.2.044 Fix copper repair and salvage
This commit is contained in:
		@@ -1,3 +1,6 @@
 | 
			
		||||
Version 2.2.044
 | 
			
		||||
    Fixed copper armor and tools not working with Repair or Salvage
 | 
			
		||||
 | 
			
		||||
Version 2.2.043
 | 
			
		||||
    Added support for the new copper tools and armor added in Minecraft 1.21.9
 | 
			
		||||
    Added many missing buttons, trapdoors, doors, fence gates, etc to the ability/tool blacklists (see notes)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								pom.xml
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								pom.xml
									
									
									
									
									
								
							@@ -2,7 +2,7 @@
 | 
			
		||||
    <modelVersion>4.0.0</modelVersion>
 | 
			
		||||
    <groupId>com.gmail.nossr50.mcMMO</groupId>
 | 
			
		||||
    <artifactId>mcMMO</artifactId>
 | 
			
		||||
    <version>2.2.044-SNAPSHOT</version>
 | 
			
		||||
    <version>2.2.044</version>
 | 
			
		||||
    <name>mcMMO</name>
 | 
			
		||||
    <url>https://github.com/mcMMO-Dev/mcMMO</url>
 | 
			
		||||
    <scm>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,20 @@
 | 
			
		||||
package com.gmail.nossr50.config.skills.repair;
 | 
			
		||||
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isCopperArmor;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isCopperTool;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isDiamondArmor;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isDiamondTool;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isGoldArmor;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isGoldTool;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isIronArmor;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isIronTool;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isLeatherArmor;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isNetheriteArmor;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isNetheriteTool;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isStoneTool;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isStringTool;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isWoodTool;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.config.BukkitConfig;
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.ItemType;
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.MaterialType;
 | 
			
		||||
@@ -63,27 +78,27 @@ public class RepairConfig extends BukkitConfig {
 | 
			
		||||
            String repairMaterialTypeString = config.getString(
 | 
			
		||||
                    "Repairables." + key + ".MaterialType", "OTHER");
 | 
			
		||||
 | 
			
		||||
            if (!config.contains("Repairables." + key + ".MaterialType") && itemMaterial != null) {
 | 
			
		||||
                ItemStack repairItem = new ItemStack(itemMaterial);
 | 
			
		||||
            if (!config.contains("Repairables." + key + ".MaterialType")) {
 | 
			
		||||
                final ItemStack repairItem = new ItemStack(itemMaterial);
 | 
			
		||||
 | 
			
		||||
                if (ItemUtils.isWoodTool(repairItem)) {
 | 
			
		||||
                if (isWoodTool(repairItem)) {
 | 
			
		||||
                    repairMaterialType = MaterialType.WOOD;
 | 
			
		||||
                } else if (ItemUtils.isStoneTool(repairItem)) {
 | 
			
		||||
                } else if (isStoneTool(repairItem)) {
 | 
			
		||||
                    repairMaterialType = MaterialType.STONE;
 | 
			
		||||
                } else if (ItemUtils.isStringTool(repairItem)) {
 | 
			
		||||
                } else if (isStringTool(repairItem)) {
 | 
			
		||||
                    repairMaterialType = MaterialType.STRING;
 | 
			
		||||
                } else if (ItemUtils.isLeatherArmor(repairItem)) {
 | 
			
		||||
                } else if (isLeatherArmor(repairItem)) {
 | 
			
		||||
                    repairMaterialType = MaterialType.LEATHER;
 | 
			
		||||
                } else if (ItemUtils.isIronArmor(repairItem) || ItemUtils.isIronTool(repairItem)) {
 | 
			
		||||
                } else if (isIronArmor(repairItem) || isIronTool(repairItem)) {
 | 
			
		||||
                    repairMaterialType = MaterialType.IRON;
 | 
			
		||||
                } else if (ItemUtils.isGoldArmor(repairItem) || ItemUtils.isGoldTool(repairItem)) {
 | 
			
		||||
                } else if (isGoldArmor(repairItem) || isGoldTool(repairItem)) {
 | 
			
		||||
                    repairMaterialType = MaterialType.GOLD;
 | 
			
		||||
                } else if (ItemUtils.isDiamondArmor(repairItem) || ItemUtils.isDiamondTool(
 | 
			
		||||
                        repairItem)) {
 | 
			
		||||
                } else if (isDiamondArmor(repairItem) || isDiamondTool(repairItem)) {
 | 
			
		||||
                    repairMaterialType = MaterialType.DIAMOND;
 | 
			
		||||
                } else if (ItemUtils.isNetheriteArmor(repairItem) || ItemUtils.isNetheriteTool(
 | 
			
		||||
                        repairItem)) {
 | 
			
		||||
                } else if (isNetheriteArmor(repairItem) || isNetheriteTool(repairItem)) {
 | 
			
		||||
                    repairMaterialType = MaterialType.NETHERITE;
 | 
			
		||||
                } else if (isCopperTool(repairItem) || isCopperArmor(repairItem)) {
 | 
			
		||||
                    repairMaterialType = MaterialType.COPPER;
 | 
			
		||||
                }
 | 
			
		||||
            } else {
 | 
			
		||||
                try {
 | 
			
		||||
@@ -105,9 +120,7 @@ public class RepairConfig extends BukkitConfig {
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Maximum Durability
 | 
			
		||||
            short maximumDurability = (itemMaterial != null ? itemMaterial.getMaxDurability()
 | 
			
		||||
                    : (short) config.getInt(
 | 
			
		||||
                            "Repairables." + key + ".MaximumDurability"));
 | 
			
		||||
            short maximumDurability = itemMaterial.getMaxDurability();
 | 
			
		||||
 | 
			
		||||
            if (maximumDurability <= 0) {
 | 
			
		||||
                maximumDurability = (short) config.getInt(
 | 
			
		||||
@@ -169,7 +182,7 @@ public class RepairConfig extends BukkitConfig {
 | 
			
		||||
        //Report unsupported
 | 
			
		||||
        StringBuilder stringBuilder = new StringBuilder();
 | 
			
		||||
 | 
			
		||||
        if (notSupported.size() > 0) {
 | 
			
		||||
        if (!notSupported.isEmpty()) {
 | 
			
		||||
            stringBuilder.append(
 | 
			
		||||
                    "mcMMO found the following materials in the Repair config that are not supported by the version of Minecraft running on this server: ");
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,21 @@
 | 
			
		||||
package com.gmail.nossr50.config.skills.salvage;
 | 
			
		||||
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isCopperArmor;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isCopperTool;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isDiamondArmor;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isDiamondTool;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isGoldArmor;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isGoldTool;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isIronArmor;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isIronTool;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isLeatherArmor;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isNetheriteArmor;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isNetheriteTool;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isPrismarineTool;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isStoneTool;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isStringTool;
 | 
			
		||||
import static com.gmail.nossr50.util.ItemUtils.isWoodTool;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.config.BukkitConfig;
 | 
			
		||||
import com.gmail.nossr50.datatypes.database.UpgradeType;
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.ItemType;
 | 
			
		||||
@@ -50,9 +66,9 @@ public class SalvageConfig extends BukkitConfig {
 | 
			
		||||
            mcMMO.p.getLogger().log(
 | 
			
		||||
                    Level.INFO,
 | 
			
		||||
                    "Fixing incorrect Salvage quantities on Netherite gear, this will only run once...");
 | 
			
		||||
            for (String namespacedkey : mcMMO.getMaterialMapStore().getNetheriteArmor()) {
 | 
			
		||||
            for (String namespacedKey : mcMMO.getMaterialMapStore().getNetheriteArmor()) {
 | 
			
		||||
                config.set(
 | 
			
		||||
                        "Salvageables." + namespacedkey.toUpperCase(Locale.ENGLISH)
 | 
			
		||||
                        "Salvageables." + namespacedKey.toUpperCase(Locale.ENGLISH)
 | 
			
		||||
                                + ".MaximumQuantity",
 | 
			
		||||
                        4); //TODO: Doesn't make sense to default to 4 for everything
 | 
			
		||||
            }
 | 
			
		||||
@@ -84,34 +100,32 @@ public class SalvageConfig extends BukkitConfig {
 | 
			
		||||
 | 
			
		||||
            // Salvage Material Type
 | 
			
		||||
            MaterialType salvageMaterialType = MaterialType.OTHER;
 | 
			
		||||
            String salvageMaterialTypeString = config.getString(
 | 
			
		||||
            final String salvageMaterialTypeString = config.getString(
 | 
			
		||||
                    "Salvageables." + key + ".MaterialType", "OTHER");
 | 
			
		||||
 | 
			
		||||
            if (!config.contains("Salvageables." + key + ".MaterialType") && itemMaterial != null) {
 | 
			
		||||
                ItemStack salvageItem = new ItemStack(itemMaterial);
 | 
			
		||||
            if (!config.contains("Salvageables." + key + ".MaterialType")) {
 | 
			
		||||
                final ItemStack salvageItem = new ItemStack(itemMaterial);
 | 
			
		||||
 | 
			
		||||
                if (ItemUtils.isWoodTool(salvageItem)) {
 | 
			
		||||
                if (isWoodTool(salvageItem)) {
 | 
			
		||||
                    salvageMaterialType = MaterialType.WOOD;
 | 
			
		||||
                } else if (ItemUtils.isStoneTool(salvageItem)) {
 | 
			
		||||
                } else if (isStoneTool(salvageItem)) {
 | 
			
		||||
                    salvageMaterialType = MaterialType.STONE;
 | 
			
		||||
                } else if (ItemUtils.isStringTool(salvageItem)) {
 | 
			
		||||
                } else if (isStringTool(salvageItem)) {
 | 
			
		||||
                    salvageMaterialType = MaterialType.STRING;
 | 
			
		||||
                } else if (ItemUtils.isPrismarineTool(salvageItem)) {
 | 
			
		||||
                } else if (isPrismarineTool(salvageItem)) {
 | 
			
		||||
                    salvageMaterialType = MaterialType.PRISMARINE;
 | 
			
		||||
                } else if (ItemUtils.isLeatherArmor(salvageItem)) {
 | 
			
		||||
                } else if (isLeatherArmor(salvageItem)) {
 | 
			
		||||
                    salvageMaterialType = MaterialType.LEATHER;
 | 
			
		||||
                } else if (ItemUtils.isIronArmor(salvageItem) || ItemUtils.isIronTool(
 | 
			
		||||
                        salvageItem)) {
 | 
			
		||||
                } else if (isIronArmor(salvageItem) || isIronTool(salvageItem)) {
 | 
			
		||||
                    salvageMaterialType = MaterialType.IRON;
 | 
			
		||||
                } else if (ItemUtils.isGoldArmor(salvageItem) || ItemUtils.isGoldTool(
 | 
			
		||||
                        salvageItem)) {
 | 
			
		||||
                } else if (isGoldArmor(salvageItem) || isGoldTool(salvageItem)) {
 | 
			
		||||
                    salvageMaterialType = MaterialType.GOLD;
 | 
			
		||||
                } else if (ItemUtils.isDiamondArmor(salvageItem) || ItemUtils.isDiamondTool(
 | 
			
		||||
                        salvageItem)) {
 | 
			
		||||
                } else if (isDiamondArmor(salvageItem) || isDiamondTool(salvageItem)) {
 | 
			
		||||
                    salvageMaterialType = MaterialType.DIAMOND;
 | 
			
		||||
                } else if (ItemUtils.isNetheriteTool(salvageItem) || ItemUtils.isNetheriteArmor(
 | 
			
		||||
                        salvageItem)) {
 | 
			
		||||
                } else if (isNetheriteTool(salvageItem) || isNetheriteArmor(salvageItem)) {
 | 
			
		||||
                    salvageMaterialType = MaterialType.NETHERITE;
 | 
			
		||||
                } else if (isCopperTool(salvageItem) || isCopperArmor(salvageItem)) {
 | 
			
		||||
                    salvageMaterialType = MaterialType.COPPER;
 | 
			
		||||
                }
 | 
			
		||||
            } else {
 | 
			
		||||
                try {
 | 
			
		||||
@@ -124,8 +138,7 @@ public class SalvageConfig extends BukkitConfig {
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Salvage Material
 | 
			
		||||
            String salvageMaterialName = config.getString(
 | 
			
		||||
                    "Salvageables." + key + ".SalvageMaterial");
 | 
			
		||||
            String salvageMaterialName = config.getString("Salvageables." + key + ".SalvageMaterial");
 | 
			
		||||
            Material salvageMaterial = (salvageMaterialName == null
 | 
			
		||||
                    ? salvageMaterialType.getDefaultMaterial()
 | 
			
		||||
                    : Material.matchMaterial(salvageMaterialName));
 | 
			
		||||
@@ -136,16 +149,14 @@ public class SalvageConfig extends BukkitConfig {
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Maximum Durability
 | 
			
		||||
            short maximumDurability = (itemMaterial != null ? itemMaterial.getMaxDurability()
 | 
			
		||||
                    : (short) config.getInt(
 | 
			
		||||
                            "Salvageables." + key + ".MaximumDurability"));
 | 
			
		||||
            short maximumDurability = itemMaterial.getMaxDurability();
 | 
			
		||||
 | 
			
		||||
            // Item Type
 | 
			
		||||
            ItemType salvageItemType = ItemType.OTHER;
 | 
			
		||||
            String salvageItemTypeString = config.getString("Salvageables." + key + ".ItemType",
 | 
			
		||||
                    "OTHER");
 | 
			
		||||
 | 
			
		||||
            if (!config.contains("Salvageables." + key + ".ItemType") && itemMaterial != null) {
 | 
			
		||||
            if (!config.contains("Salvageables." + key + ".ItemType")) {
 | 
			
		||||
                ItemStack salvageItem = new ItemStack(itemMaterial);
 | 
			
		||||
 | 
			
		||||
                if (ItemUtils.isMinecraftTool(salvageItem)) {
 | 
			
		||||
@@ -170,11 +181,11 @@ public class SalvageConfig extends BukkitConfig {
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Maximum Quantity
 | 
			
		||||
            int maximumQuantity = itemMaterial != null ? SkillUtils.getRepairAndSalvageQuantities(
 | 
			
		||||
                    itemMaterial,
 | 
			
		||||
                    salvageMaterial) : config.getInt("Salvageables." + key + ".MaximumQuantity", 1);
 | 
			
		||||
            int maximumQuantity = SkillUtils.getRepairAndSalvageQuantities(
 | 
			
		||||
                                itemMaterial,
 | 
			
		||||
                                salvageMaterial);
 | 
			
		||||
 | 
			
		||||
            if (maximumQuantity <= 0 && itemMaterial != null) {
 | 
			
		||||
            if (maximumQuantity <= 0) {
 | 
			
		||||
                maximumQuantity = config.getInt("Salvageables." + key + ".MaximumQuantity", 1);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
@@ -206,7 +217,7 @@ public class SalvageConfig extends BukkitConfig {
 | 
			
		||||
        //Report unsupported
 | 
			
		||||
        StringBuilder stringBuilder = new StringBuilder();
 | 
			
		||||
 | 
			
		||||
        if (notSupported.size() > 0) {
 | 
			
		||||
        if (!notSupported.isEmpty()) {
 | 
			
		||||
            stringBuilder.append(
 | 
			
		||||
                    "mcMMO found the following materials in the Salvage config that are not supported by the version of Minecraft running on this server: ");
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,7 @@ public enum MaterialType {
 | 
			
		||||
    WOOD,
 | 
			
		||||
    STONE,
 | 
			
		||||
    IRON,
 | 
			
		||||
    COPPER,
 | 
			
		||||
    GOLD,
 | 
			
		||||
    DIAMOND,
 | 
			
		||||
    NETHERITE,
 | 
			
		||||
@@ -45,6 +46,8 @@ public enum MaterialType {
 | 
			
		||||
                }
 | 
			
		||||
            case PRISMARINE:
 | 
			
		||||
                return Material.PRISMARINE_CRYSTALS;
 | 
			
		||||
            case COPPER:
 | 
			
		||||
                return Material.COPPER_INGOT;
 | 
			
		||||
 | 
			
		||||
            case OTHER:
 | 
			
		||||
            default:
 | 
			
		||||
 
 | 
			
		||||
@@ -380,6 +380,10 @@ public final class ItemUtils {
 | 
			
		||||
        return mcMMO.getMaterialMapStore().isIronArmor(item.getType().getKey().getKey());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static boolean isCopperArmor(ItemStack item) {
 | 
			
		||||
        return mcMMO.getMaterialMapStore().isCopperArmor(item.getType().getKey().getKey());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Checks to see if an item is a diamond armor piece.
 | 
			
		||||
     *
 | 
			
		||||
@@ -452,6 +456,10 @@ public final class ItemUtils {
 | 
			
		||||
        return mcMMO.getMaterialMapStore().isPrismarineTool(item.getType().getKey().getKey());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static boolean isCopperTool(ItemStack item) {
 | 
			
		||||
        return mcMMO.getMaterialMapStore().isCopperTool(item.getType().getKey().getKey());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Checks to see if an item is a gold tool.
 | 
			
		||||
     *
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user