diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/CustomRecipeConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/CustomRecipeConfigGui.java index c0c32471..894b36f2 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/CustomRecipeConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/CustomRecipeConfigGui.java @@ -2,6 +2,7 @@ package xyz.alexcrea.cuanvil.gui.config.global; import com.github.stefvanschie.inventoryframework.gui.GuiItem; import com.github.stefvanschie.inventoryframework.gui.type.util.Gui; +import net.kyori.adventure.text.Component; import org.bukkit.Material; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; @@ -12,12 +13,14 @@ import xyz.alexcrea.cuanvil.config.ConfigHolder; import xyz.alexcrea.cuanvil.gui.config.list.MappedGuiListConfigGui; import xyz.alexcrea.cuanvil.gui.config.list.elements.CustomRecipeSubSettingGui; import xyz.alexcrea.cuanvil.gui.util.GuiSharedConstant; +import xyz.alexcrea.cuanvil.lang.Message; import xyz.alexcrea.cuanvil.lang.MsgUI; import xyz.alexcrea.cuanvil.recipe.AnvilCustomRecipe; -import xyz.alexcrea.cuanvil.util.CasedStringUtil; +import xyz.alexcrea.cuanvil.util.ComponentUtil; import java.util.ArrayList; import java.util.Collection; +import java.util.List; public class CustomRecipeConfigGui extends MappedGuiListConfigGui> { @@ -31,7 +34,7 @@ public class CustomRecipeConfigGui extends MappedGuiListConfigGui" + CasedStringUtil.snakeToUpperSpacedCase(recipe.toString()) + " Custom recipe");//TODO MESSAGE meta.addItemFlags(ItemFlag.values()); - - meta.setLore(getRecipeLore(recipe)); + ComponentUtil.INSTANCE.setMessageName(meta, MsgUI.INSTANCE.getCUSTOM_RECIPE_NAME()); + ComponentUtil.INSTANCE.applyLore(getRecipeLore(recipe), meta); displayedItem.setItemMeta(meta); return displayedItem; } - private static @NotNull ArrayList getRecipeLore(AnvilCustomRecipe recipe) { + private static @NotNull List getRecipeLore(AnvilCustomRecipe recipe) { boolean shouldWork = recipe.validate(); - ArrayList lore = new ArrayList<>();//TODO MESSAGE - lore.add("§7Is valid: §" + (shouldWork ? "aYes" : "cNo")); - lore.add("§7Exact count: §" + (recipe.getExactCount() ? "aYes" : "cNo")); - lore.add("§7Recipe Level Cost: §e" + recipe.getLevelCostPerCraft()); - lore.add("§7Recipe Linear Xp Cost: §e" + recipe.getXpCostPerCraft()); - if (recipe.getXpCostPerCraft() != 0) { - lore.add("§7Exact Linear xp remove: §" + (recipe.getRemoveExactLinearXp() ? "aYes" : "cNo")); + var shouldWorkMsg = MsgUI.INSTANCE.booleanMessage(shouldWork); + var exactCount = MsgUI.INSTANCE.booleanMessage(recipe.getExactCount()); + + ArrayList lore = new ArrayList<>(MsgUI.INSTANCE.getCUSTOM_RECIPE_LORE_DEFAULT() + .formatted( + shouldWorkMsg, + exactCount, + recipe.getLevelCostPerCraft(), + recipe.getXpCostPerCraft() + )); + + if(recipe.getXpCostPerCraft() != 0) { + var removeExact = MsgUI.INSTANCE.booleanMessage(recipe.getRemoveExactLinearXp()); + lore.addAll(MsgUI.INSTANCE.getCUSTOM_RECIPE_LORE_LINEAR().formatted(removeExact)); } return lore; } @@ -90,8 +99,8 @@ public class CustomRecipeConfigGui extends MappedGuiListConfigGui enchantments) { + if(enchantments.size() == 1) { + return enchantments.stream().findFirst().get().getPrettyName(); + } + + return MsgUI.INSTANCE.getENCHANT_CONFIG_MULTIPLES_NAME().unformatted(); + } + public EnchantConfigGui(@NotNull Set enchantments) { super(3, - "Configuring Enchantments", + MsgUI.INSTANCE.getENCHANT_CONFIG_TITLE().textHolder(selectName(enchantments)), CustomAnvil.instance); this.enchantments = enchantments; @@ -57,7 +67,7 @@ public class EnchantConfigGui extends ChestGui implements ValueUpdatableGui { ItemMeta displayMeta = displayItemstack.getItemMeta(); assert displayMeta != null; - displayMeta.setDisplayName("§aConfiguring Enchantments:"); + ComponentUtil.INSTANCE.setMessageName(displayMeta, MsgUI.INSTANCE.getENCHANT_CONFIG_NAME(), selectName(enchantments)); displayItemstack.setItemMeta(displayMeta); // Set enchantments diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/EnchantConflictGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/EnchantConflictGui.java index 4762ce57..e566ef91 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/EnchantConflictGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/EnchantConflictGui.java @@ -14,10 +14,11 @@ import xyz.alexcrea.cuanvil.group.IncludeGroup; import xyz.alexcrea.cuanvil.gui.config.list.MappedGuiListConfigGui; import xyz.alexcrea.cuanvil.gui.config.list.elements.EnchantConflictSubSettingGui; import xyz.alexcrea.cuanvil.gui.util.GuiSharedConstant; +import xyz.alexcrea.cuanvil.lang.Message; import xyz.alexcrea.cuanvil.lang.MsgUI; import xyz.alexcrea.cuanvil.util.CasedStringUtil; +import xyz.alexcrea.cuanvil.util.ComponentUtil; -import java.util.Arrays; import java.util.Collection; public class EnchantConflictGui extends MappedGuiListConfigGui "Default (" + defaultValue + ")"; - case RESET -> String.valueOf(defaultValue); - default -> "Default"; + case CURRENT -> MsgUI.INSTANCE.getSHARED_VALUED_DEFAULT().unformatted(defaultValueStr); + case RESET -> defaultValueStr; + default -> MsgUI.INSTANCE.getSHARED_DEFAULT().unformatted(); }; } diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/GroupConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/GroupConfigGui.java index 68e06f01..2154794c 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/GroupConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/GroupConfigGui.java @@ -15,12 +15,12 @@ import xyz.alexcrea.cuanvil.group.IncludeGroup; import xyz.alexcrea.cuanvil.group.ItemGroupManager; import xyz.alexcrea.cuanvil.gui.config.list.MappedGuiListConfigGui; import xyz.alexcrea.cuanvil.gui.config.list.elements.GroupConfigSubSettingGui; +import xyz.alexcrea.cuanvil.lang.Message; import xyz.alexcrea.cuanvil.lang.MsgUI; import xyz.alexcrea.cuanvil.util.CasedStringUtil; -import xyz.alexcrea.cuanvil.util.LazyValue; +import xyz.alexcrea.cuanvil.util.ComponentUtil; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; public class GroupConfigGui extends MappedGuiListConfigGui> { @@ -56,12 +56,19 @@ public class GroupConfigGui extends MappedGuiListConfigGui extends ElementListConfig protected abstract Consumer prepareCreateItemConsumer(HumanEntity player); - protected abstract String genericDisplayedName(); + protected abstract Message genericDisplayedName(); } diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/list/MappedGuiListConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/list/MappedGuiListConfigGui.java index 5d346a43..d48ef8fe 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/list/MappedGuiListConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/list/MappedGuiListConfigGui.java @@ -123,7 +123,7 @@ public abstract class MappedGuiListConfigGui { event.setCancelled(true); MaterialSelectSettingGui selectGui = new MaterialSelectSettingGui(this, - materialSelectionName, name + materialSelectionName, name//TODO MESSAGE maybe need (%page/%max_page) , this); selectGui.show(event.getWhoClicked()); diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/settings/MaterialSelectSettingGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/settings/MaterialSelectSettingGui.java index 102e1c9f..0c378c64 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/settings/MaterialSelectSettingGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/settings/MaterialSelectSettingGui.java @@ -15,7 +15,6 @@ import org.jetbrains.annotations.NotNull; import xyz.alexcrea.cuanvil.gui.config.SelectMaterialContainer; import xyz.alexcrea.cuanvil.gui.config.ask.ConfirmActionGui; import xyz.alexcrea.cuanvil.gui.config.list.MappedElementListConfigGui; -import xyz.alexcrea.cuanvil.gui.util.GuiGlobalActions; import xyz.alexcrea.cuanvil.gui.util.GuiGlobalItems; import xyz.alexcrea.cuanvil.gui.util.GuiSharedConstant; import xyz.alexcrea.cuanvil.lang.Message; @@ -42,7 +41,7 @@ public class MaterialSelectSettingGui extends MappedElementListConfigGuiConfig was not able to be reloaded..." hard-fail: "Hard fail, plugin disabled" - config-ui.shared: no-permission: "You do not have permission to edit the config" typed-config-title: "%type Config" click-to-change: "Click Here to change the value" green-get-item: "%name" yellow-get-item: "%name" + formated-yes: "Yes" + formated-no: "No" + default: "Default" + valued-default: "Default (%value)" config-ui.global-item: item-lore-prefix: "value: %value" @@ -154,6 +157,15 @@ config-ui.unit-repair: config-ui.custom-recipe: title: "Custom Recipe Config (%page/%max_page)" + generic-name: "custom recipe" + name: "%name Custom recipe" + lore: + default: + 1: "Is valid: %should_work" + 2: "Exact count: %exact_count" + 3: "Recipe Level Cost: %per_craft_lv_cost" + 4: "Recipe Linear Xp Cost: %per_craft_xp_cost" + linear: "Exact Linear xp remove: %exact_linear" element: exact-count: "Exact count ?" linear-xp: @@ -218,6 +230,13 @@ config-ui.enchant-merge-limit: config-ui.enchant-conflict: title: "Conflict Config (%page/%max_page)" + name: "%name Conflict" + lore: + 1: "Enchantment count: %enchantment_count" + 2: "Group count: %group_count" + 3: "Min enchantments count: %min_count" + generic-name: "conflict" + default-new: "new_group" element: selected-enchantments: "%group" # likely need page and max page selected-sub-groups: "%group Groups" @@ -236,6 +255,13 @@ config-ui.enchant-conflict: config-ui.material-group: title: "Group Config (%page/%max_page)" + generic-name: "material group" + name: "%name Group" + lore: + 1: "Number of selected groups : %groups" + 2: "Number of included material : %materials" + 3: "" + 4: "Total number of included material %size" element: selected-materials: "%group Materials" selected-sub-groups: "%group Groups" @@ -252,6 +278,15 @@ config-ui.material-select: title: "Remove %name" description: "Confirm Remove %name from this list." +config-ui.enchant-config: + title: "Configuring %name" + name: "Configuring %name:" + multiples-name: "Enchantments" + +config-ui.item-config: + title: "%name Config" + name: "Configuring %name" + config-ui.basic-config: title: "Basic Config" @@ -376,4 +411,4 @@ config-ui.basic-config.work-penalty: increasing: "Increasing: will penalty be increased (in item)" additive: "Additive: will penalty be added to the cost" shared: "Shared: Vanilla, shared penalty. it will be kept from before the plugin installation." - exclusive: "Exclusive: Custom, per anvil use type penalty. it will be lost after plugin uninstallation" \ No newline at end of file + exclusive: "Exclusive: Custom, per anvil use type penalty. it will be lost after plugin uninstallation"