From bc9ac1cc138dbe232f25b70602b2f7df770f407e Mon Sep 17 00:00:00 2001 From: alexcrea Date: Wed, 1 Jul 2026 13:21:18 +0200 Subject: [PATCH] add unit repair to item config --- .../cuanvil/gui/config/global/ItemConfigGui.java | 14 ++++++++------ .../gui/config/global/UnitRepairConfigGui.java | 2 +- .../xyz/alexcrea/cuanvil/util/UnitRepairUtil.kt | 15 +++++++++++++-- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/ItemConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/ItemConfigGui.java index 3bc19d5f..35633289 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/ItemConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/ItemConfigGui.java @@ -9,8 +9,10 @@ import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import xyz.alexcrea.cuanvil.config.ConfigHolder; import xyz.alexcrea.cuanvil.gui.util.GuiGlobalActions; import xyz.alexcrea.cuanvil.gui.util.GuiGlobalItems; +import xyz.alexcrea.cuanvil.util.UnitRepairUtil; import java.util.Collections; @@ -40,7 +42,7 @@ public class ItemConfigGui extends ChestGui { displayMeta.setDisplayName("§aConfiguring " + material); displayItemstack.setItemMeta(displayMeta); - pane.bindItem('D', new GuiItem(displayItemstack, GuiGlobalActions.stayInPlace, CustomAnvil.instance)); + pane.bindItem('D', new GuiItem(displayItemstack, GuiGlobalActions.stayInPlace, CustomAnvil.instance)); // Enchantment Conflicts item ItemStack enchantConflictItemstack = new ItemStack(Material.OAK_FENCE); @@ -76,8 +78,7 @@ public class ItemConfigGui extends ChestGui { unitRepairMeta.setLore(Collections.singletonList("§7Click here to open anvil unit repair menu")); unirRepairItemstack.setItemMeta(unitRepairMeta); - //TODO - GuiItem unitRepairItem = GuiGlobalItems.goToGuiItem(unirRepairItemstack, UnitRepairConfigGui.getInstance()); + GuiItem unitRepairItem = GuiGlobalItems.goToGuiItem(unirRepairItemstack, getUnitRepairConfigGui(material)); pane.bindItem('7', unitRepairItem); // Custom recipe item @@ -118,16 +119,17 @@ public class ItemConfigGui extends ChestGui { return groupConfigGui; } - /*private UnitRepairConfigGui getUnitRepairConfigGui(NamespacedKey material) { + private UnitRepairConfigGui getUnitRepairConfigGui(NamespacedKey material) { if (unitRepairConfigGui == null) { unitRepairConfigGui = new UnitRepairConfigGui(this); unitRepairConfigGui.setFilter(otherMat -> - group.contain(material) //TODO check material & what inside + otherMat.equals(material) || UnitRepairUtil.INSTANCE.findRawRepairValue( + material, otherMat, ConfigHolder.UNIT_REPAIR_HOLDER.getConfig()) != null ); unitRepairConfigGui.init(); } return unitRepairConfigGui; - }*/ + } } diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/UnitRepairConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/UnitRepairConfigGui.java index cc4a981f..54c4ce13 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/UnitRepairConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/UnitRepairConfigGui.java @@ -60,7 +60,7 @@ public class UnitRepairConfigGui extends protected ItemStack createItemForGeneric(@NotNull NamespacedKey material) { var unitConfig = ConfigHolder.UNIT_REPAIR_HOLDER.getConfig(); var section = unitConfig.getConfigurationSection(material.toString().toLowerCase()); - var legacySection = unitConfig.getConfigurationSection(material.toString().toLowerCase()); + var legacySection = unitConfig.getConfigurationSection(material.getKey().toLowerCase()); String materialName = CasedStringUtil.snakeToUpperSpacedCase(material.getKey().toLowerCase()); diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/util/UnitRepairUtil.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/util/UnitRepairUtil.kt index 642a047d..5d059870 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/util/UnitRepairUtil.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/util/UnitRepairUtil.kt @@ -25,7 +25,7 @@ object UnitRepairUtil { if (other == null) return null val config = ConfigHolder.UNIT_REPAIR_HOLDER.config - val result = findRepairValue(this, other, config) ?: return null + val result = findRawRepairValue(this, other, config) ?: return null if(result > 0) return result @@ -36,7 +36,7 @@ object UnitRepairUtil { return userDefault } - private fun findRepairValue( + private fun findRawRepairValue( self: ItemStack, other: ItemStack, config: FileConfiguration @@ -50,6 +50,17 @@ object UnitRepairUtil { return checkSection(config, material.key, selfType) } + fun findRawRepairValue( + self: NamespacedKey, + other: NamespacedKey, + config: FileConfiguration + ): Double? { + val result = checkSection(config, other.toString(), self) + if (result != null) return result + + return checkSection(config, other.key, self) + } + fun checkSection( config: FileConfiguration, path: String,