diff --git a/README.md b/README.md index 1e498b9..3e23b4e 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,7 @@ It is expected to work on 1.18 to 1.21 minecraft servers running spigot or paper (the plugin support of 1.16.5 to 1.17.1 is experimental an may encounter issues) **Custom Anvil** was previously named **Unsafe Enchants+**. -It was renamed because it now affects every anvil aspect and not only unsafe enchants - +It was renamed because it now affects every anvil aspect and not only unsafe enchants\ **Custom Anvil** is based on [Unsafe Enchants](https://github.com/DelilahEve/UnsafeEnchants) by DelilahEve. ### Download Locations: @@ -43,14 +42,10 @@ anvilconfigreload or carl: Reload every config of this plugin customanvilconfig: open a menu for administrator to edit plugin's config in game ``` --- -### Default Configuration: +### Default Plugin's Configurations +For 1.18 to 1.20.6 use the [1.18 configurations](https://github.com/alexcrea/CustomAnvil/tree/master/defaultconfigs/1.18)\ +For 1.21 use the [1.21 configurations](https://github.com/alexcrea/CustomAnvil/tree/master/defaultconfigs/1.21) -Default configuration can be found on following links: -- [config.yml](https://github.com/alexcrea/CustomAnvil/blob/master/src/main/resources/config.yml) -- [enchant_conflict.yml](https://github.com/alexcrea/CustomAnvil/blob/master/src/main/resources/enchant_conflict.yml) -- [item_groups.yml](https://github.com/alexcrea/CustomAnvil/blob/master/src/main/resources/item_groups.yml) -- [unit_repair_item.yml](https://github.com/alexcrea/CustomAnvil/blob/master/src/main/resources/unit_repair_item.yml) -- [custom_recipes.yml](https://github.com/alexcrea/CustomAnvil/blob/master/src/main/resources/custom_recipes.yml) --- ### Known issue: There is non known issue, if you find one please report the issue. diff --git a/defaultconfigs/1.18/README.md b/defaultconfigs/1.18/README.md new file mode 100644 index 0000000..d390f3f --- /dev/null +++ b/defaultconfigs/1.18/README.md @@ -0,0 +1,6 @@ +### Default Plugin's Configurations For 1.18 to 1.20.6 +- [config.yml](https://github.com/alexcrea/CustomAnvil/blob/master/defaultconfigs/1.18/config.yml) +- [enchant_conflict.yml](https://github.com/alexcrea/CustomAnvil/blob/master/defaultconfigs/1.18/enchant_conflict.yml) +- [item_groups.yml](https://github.com/alexcrea/CustomAnvil/blob/master/defaultconfigs/1.18/item_groups.yml) +- [unit_repair_item.yml](https://github.com/alexcrea/CustomAnvil/blob/master/defaultconfigs/1.18/unit_repair_item.yml) +- [custom_recipes.yml](https://github.com/alexcrea/CustomAnvil/blob/master/defaultconfigs/1.18/custom_recipes.yml) diff --git a/defaultconfigs/1.18/config.yml b/defaultconfigs/1.18/config.yml new file mode 100644 index 0000000..aa09cf4 --- /dev/null +++ b/defaultconfigs/1.18/config.yml @@ -0,0 +1,246 @@ +# All anvil cost will be capped to limit_repair_value if enabled. +# +# In other words: +# For any anvil cost greater than limit_repair_value, Cost will be set to limit_repair_value. +limit_repair_cost: false + +# Max cost value the Anvil can get to. +# +# Valid values include 0 to 1000. +# Cost will be displayed as "Too Expensive": +# - If Cost is above 39 +# - And replace_too_expensive is disabled (false) +limit_repair_value: 39 + +# Whether the anvil's cost limit should be removed entirely. +# +# The anvil will still visually display "Too Expensive" if "replace_too_expensive" is disabled +# However, the action will be completable if xp requirement is meet. +remove_repair_limit: false + +# Whenever anvil cost is above 39 should display the true price and not "Too Expensive". +# +# However, when bypassing "Too Expensive", anvil price will be displayed as Green. +# If the action is not completable, the cost will still be displayed as "Too expensive". +# That mean you also need to change other settings like remove_repair_limit or limit_repair_cost. +# +# Require ProtocoLib. +replace_too_expensive: false + +# XP Level amount added to the anvil when the item is repaired by another item of the same type +# +# Valid values include 0 to 1000 +item_repair_cost: 2 + +# XP Level amount added to the anvil when the item is renamed +# +# Valid values include 0 to 1000 +item_rename_cost: 1 + +# XP Level amount added to the anvil when the item is repaired by an "unit" +# For example: a Diamond on a Diamond Sword +# What's considered unit for what can be edited on the unit repair configuration. +# +# Valid values include 0 to 1000 +unit_repair_cost: 1 + +# XP Level amount added to the anvil when a sacrifice enchantment +# conflict with one of the left item enchantment +# +# Valid values include 0 to 1000 +sacrifice_illegal_enchant_cost: 1 + +# Default limit to apply to any enchants missing from override_limits +# +# Valid values include 1 to 1000 +default_limit: 5 + +# Override limits for specific enchants +# +# Enchantments not listed here will use the value of default_limit +# +# Overrides provided default from aqua_affinity to depth_strider won't change effect with extra levels +# +# Valid range of 1 - 255 for each enchantment +enchant_limits: + aqua_affinity: 1 + binding_curse: 1 + channeling: 1 + flame: 1 + infinity: 1 + mending: 1 + multishot: 1 + silk_touch: 1 + vanishing_curse: 1 + depth_strider: 3 # anything more than 3 is treated as 3 by the game + protection: 4 + fire_protection: 4 + blast_protection: 4 + projectile_protection: 4 + feather_falling: 4 + thorns: 3 + respiration: 3 + sharpness: 5 + smite: 5 + bane_of_arthropods: 5 + knockback: 2 + fire_aspect: 2 + looting: 3 + sweeping: 3 + sweeping_edge: 3 + efficiency: 5 + unbreaking: 3 + fortune: 3 + power: 5 + punch: 2 + luck_of_the_sea: 3 + lure: 3 + frost_walker: 2 + impaling: 5 + riptide: 3 + loyalty: 3 + piercing: 4 + quick_charge: 3 + soul_speed: 3 + swift_sneak: 3 + +# Multipliers used to calculate the enchantment's value in repair/combining +# +# Values here are pulled from the fandom wiki: +# https://minecraft.fandom.com/wiki/Anvil_mechanics#Costs_for_combining_enchantments +# +# If an enchantment is missing values here, or is less than 0, it will default to 0 +# +# Calculated as: [Enchantment lvl] * [multiplier] +# +# With default values protection 4 would have a value of 4 when +# coming from either a book (4 * 1) or an item (4 * 1) +enchant_values: + aqua_affinity: + item: 4 + book: 2 + bane_of_arthropods: + item: 2 + book: 1 + binding_curse: + item: 8 + book: 4 + blast_protection: + item: 4 + book: 2 + channeling: + item: 8 + book: 4 + depth_strider: + item: 4 + book: 2 + efficiency: + item: 1 + book: 1 + flame: + item: 4 + book: 2 + feather_falling: + item: 2 + book: 1 + fire_aspect: + item: 4 + book: 2 + fire_protection: + item: 2 + book: 1 + fortune: + item: 4 + book: 2 + frost_walker: + item: 4 + book: 2 + impaling: + item: 4 + book: 2 + infinity: + item: 8 + book: 4 + knockback: + item: 2 + book: 1 + looting: + item: 4 + book: 2 + loyalty: + item: 1 + book: 1 + luck_of_the_sea: + item: 4 + book: 2 + lure: + item: 4 + book: 2 + mending: + item: 4 + book: 2 + multishot: + item: 4 + book: 2 + piercing: + item: 1 + book: 1 + power: + item: 1 + book: 1 + projectile_protection: + item: 2 + book: 1 + protection: + item: 1 + book: 1 + punch: + item: 4 + book: 2 + quick_charge: + item: 2 + book: 1 + respiration: + item: 4 + book: 2 + riptide: + item: 4 + book: 2 + silk_touch: + item: 8 + book: 4 + sharpness: + item: 1 + book: 1 + smite: + item: 2 + book: 1 + soul_speed: + item: 8 + book: 4 + swift_sneak: + item: 8 + book: 4 + sweeping: + item: 4 + book: 2 + sweeping_edge: + item: 4 + book: 2 + thorns: + item: 8 + book: 4 + unbreaking: + item: 2 + book: 1 + vanishing_curse: + item: 8 + book: 4 + +# Whether to show debug logging +debug_log: false + +# Whether to show verbose debug logging +debug_log_verbose: false + +configVersion: 1.4.5 diff --git a/defaultconfigs/1.18/custom_recipes.yml b/defaultconfigs/1.18/custom_recipes.yml new file mode 100644 index 0000000..57c2220 --- /dev/null +++ b/defaultconfigs/1.18/custom_recipes.yml @@ -0,0 +1,5 @@ +# ---------------------------------------------------- +# This config file is to store custom craft +# It is recommended to use the in game config editor for this configuration. +# /customanvilconfig With ca.config.edit permission +# ---------------------------------------------------- diff --git a/defaultconfigs/1.18/enchant_conflict.yml b/defaultconfigs/1.18/enchant_conflict.yml new file mode 100644 index 0000000..387fc90 --- /dev/null +++ b/defaultconfigs/1.18/enchant_conflict.yml @@ -0,0 +1,238 @@ +# material conflicts +# +# If you want to edit this file: +# - A conflict will apply to every item except if in one of the notAffectedGroups group +# - the conflict will count only if the user try to combine at least as +# many conflicting enchantment as "maxEnchantmentBeforeConflict" +# +# +# ---------------------------------------------------- +# These restriction are about not allowing enchantment +# on illegal items +# ---------------------------------------------------- + +restriction_aqua_affinity: + enchantments: [ aqua_affinity ] + notAffectedGroups: [ enchanted_book, helmets ] + +restriction_bane_of_arthropods: + enchantments: [ bane_of_arthropods ] + notAffectedGroups: [ enchanted_book, melee_weapons ] + +restriction_blast_protection: + enchantments: [ blast_protection ] + notAffectedGroups: [ enchanted_book, armors ] + +restriction_channeling: + enchantments: [ channeling ] + notAffectedGroups: [ enchanted_book, trident ] + +restriction_binding_curse: + enchantments: [ binding_curse ] + notAffectedGroups: [ enchanted_book, wearable ] + +restriction_vanishing_curse: + enchantments: [ vanishing_curse ] + notAffectedGroups: [ enchanted_book, can_vanish ] + +restriction_depth_strider: + enchantments: [ depth_strider ] + notAffectedGroups: [ enchanted_book, boots ] + +restriction_efficiency: + enchantments: [ efficiency ] + notAffectedGroups: [ enchanted_book, tools, shears ] + +restriction_feather_falling: + enchantments: [ feather_falling ] + notAffectedGroups: [ enchanted_book, boots ] + +restriction_fire_aspect: + enchantments: [ fire_aspect ] + notAffectedGroups: [ enchanted_book, swords ] + +restriction_fire_protection: + enchantments: [ fire_protection ] + notAffectedGroups: [ enchanted_book, armors ] + +restriction_flame: + enchantments: [ flame ] + notAffectedGroups: [ enchanted_book, bow ] + +restriction_fortune: + enchantments: [ fortune ] + notAffectedGroups: [ enchanted_book, tools ] + +restriction_frost_walker: + enchantments: [ frost_walker ] + notAffectedGroups: [ enchanted_book, boots ] + +restriction_impaling: + enchantments: [ impaling ] + notAffectedGroups: [ enchanted_book, trident ] + +restriction_infinity: + enchantments: [ infinity ] + notAffectedGroups: [ enchanted_book, bow ] + +restriction_knockback: + enchantments: [ knockback ] + notAffectedGroups: [ enchanted_book, swords ] + +restriction_looting: + enchantments: [ looting ] + notAffectedGroups: [ enchanted_book, swords ] + +restriction_loyalty: + enchantments: [ loyalty ] + notAffectedGroups: [ enchanted_book, trident ] + +restriction_lure: + enchantments: [ lure ] + notAffectedGroups: [ enchanted_book, fishing_rod ] + +restriction_mending: + enchantments: [ mending ] + notAffectedGroups: [ enchanted_book, can_unbreak ] + +restriction_multishot: + enchantments: [ multishot ] + notAffectedGroups: [ enchanted_book, crossbow ] + +restriction_piercing: + enchantments: [ piercing ] + notAffectedGroups: [ enchanted_book, crossbow ] + +restriction_power: + enchantments: [ power ] + notAffectedGroups: [ enchanted_book, bow ] + +restriction_projectile_protection: + enchantments: [ projectile_protection ] + notAffectedGroups: [ enchanted_book, armors ] + +restriction_protection: + enchantments: [ protection ] + notAffectedGroups: [ enchanted_book, armors ] + +restriction_punch: + enchantments: [ punch ] + notAffectedGroups: [ enchanted_book, bow ] + +restriction_quick_charge: + enchantments: [ quick_charge ] + notAffectedGroups: [ enchanted_book, crossbow ] + +restriction_respiration: + enchantments: [ respiration ] + notAffectedGroups: [ enchanted_book, helmets ] + +restriction_riptide: + enchantments: [ riptide ] + notAffectedGroups: [ enchanted_book, trident ] + +restriction_sharpness: + enchantments: [ sharpness ] + notAffectedGroups: [ enchanted_book, melee_weapons ] + +restriction_silk_touch: + enchantments: [ silk_touch ] + notAffectedGroups: [ enchanted_book, tools ] + +restriction_smite: + enchantments: [ smite ] + notAffectedGroups: [ enchanted_book, melee_weapons ] + +restriction_soul_speed: + enchantments: [ soul_speed ] + notAffectedGroups: [ enchanted_book, boots ] + +restriction_sweeping_edge: + enchantments: [ sweeping, sweeping_edge ] + notAffectedGroups: [ enchanted_book, swords ] + +# Do not exist in 1.18, that mean useInFuture will be set to true +# useInFuture set to true also mean it will not warn if there is an issue +restriction_swift_sneak: + useInFuture: true + enchantments: [ swift_sneak ] + notAffectedGroups: [ enchanted_book, leggings ] + +restriction_thorns: + enchantments: [ thorns ] + notAffectedGroups: [ enchanted_book, armors ] + +restriction_unbreaking: + enchantments: [ unbreaking ] + notAffectedGroups: [ enchanted_book, can_unbreak ] + +# ---------------------------------------------------- +# Now we have conflicts about enchantment Incompatibility +# We just filtered what item enchantments can be applied +# notAffectedGroups is empty as we don't want anything to not respect theses rules +# maxEnchantmentBeforeConflict is set to 1 to only have 1 on those enchantment available +# ---------------------------------------------------- + +sword_enchant_conflict: + enchantments: + - bane_of_arthropods + - smite + - sharpness + notAffectedGroups: [ ] + maxEnchantmentBeforeConflict: 1 + +protection_enchant_conflict: + enchantments: + - blast_protection + - fire_protection + - projectile_protection + - protection + notAffectedGroups: [ ] + maxEnchantmentBeforeConflict: 1 + +trident_conflict1: + enchantments: + - channeling + - riptide + notAffectedGroups: [ ] + maxEnchantmentBeforeConflict: 1 + +trident_conflict2: + enchantments: + - loyalty + - riptide + notAffectedGroups: [ ] + maxEnchantmentBeforeConflict: 1 + +boot_conflict: + enchantments: + - depth_strider + - frost_walker + notAffectedGroups: [ ] + maxEnchantmentBeforeConflict: 1 + +tool_conflict: + enchantments: + - fortune + - silk_touch + notAffectedGroups: [ ] + maxEnchantmentBeforeConflict: 1 + +bow_conflict: + enchantments: + - mending + - infinity + notAffectedGroups: [ ] + maxEnchantmentBeforeConflict: 1 + +crossbow_conflict: + enchantments: + - multishot + - piercing + notAffectedGroups: [ ] + maxEnchantmentBeforeConflict: 1 + +# ---------------------------------------------------- +# Bellow is for custom conflicts. +# This is also where conflict create from the gui will be placed. +# ---------------------------------------------------- diff --git a/defaultconfigs/1.18/item_groups.yml b/defaultconfigs/1.18/item_groups.yml new file mode 100644 index 0000000..2e222aa --- /dev/null +++ b/defaultconfigs/1.18/item_groups.yml @@ -0,0 +1,205 @@ +# Please note this config use spigot material names. +# It should match minecraft name in most case, maybe every case, but I can't be sure +# In case there an issue with material name, you can found them here: +# https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html + +# An empty Exclude group exclude nothing, so it contain everything +everything: + type: exclude + +# An empty include group will include nothing +nothing: + type: include + +# This group is an example of a group including only stone and polished granite +example_include: + type: include + items: + - stone + - polished_granite + +# This group contain everything except polished granite and elements of example_include +example_exclude: + type: exclude + items: + - polished_granite + groups: + - example_include + +# Default configuration should be vanilla enchantment conflict group +# there may have error, if you find one you can fix it ! +# https://minecraft.fandom.com/wiki/Enchanting + +swords: + type: include + items: + - wooden_sword + - stone_sword + - iron_sword + - diamond_sword + - golden_sword + - netherite_sword + +axes: + type: include + items: + - wooden_axe + - stone_axe + - iron_axe + - diamond_axe + - golden_axe + - netherite_axe + +melee_weapons: + type: include + groups: + - swords + - axes + +helmets: + type: include + items: + - leather_helmet + - chainmail_helmet + - iron_helmet + - diamond_helmet + - golden_helmet + - netherite_helmet + - turtle_helmet + +chestplate: + type: include + items: + - leather_chestplate + - chainmail_chestplate + - iron_chestplate + - diamond_chestplate + - golden_chestplate + - netherite_chestplate + +leggings: + type: include + items: + - leather_leggings + - chainmail_leggings + - iron_leggings + - diamond_leggings + - golden_leggings + - netherite_leggings + +boots: + type: include + items: + - leather_boots + - chainmail_boots + - iron_boots + - diamond_boots + - golden_boots + - netherite_boots + +armors: + type: include + groups: + - helmets + - chestplate + - leggings + - boots + +wearable: + type: include + items: + - elytra + - carved_pumpkin + - skeleton_skull + - wither_skeleton_skull + - zombie_head + - player_head + - creeper_head + - dragon_head + # do not exist in 1.18 but exist in future update + - piglin_head + groups: + - armors + +tools: + type: include + items: + - wooden_pickaxe + - stone_pickaxe + - iron_pickaxe + - diamond_pickaxe + - golden_pickaxe + - netherite_pickaxe + - wooden_shovel + - stone_shovel + - iron_shovel + - diamond_shovel + - golden_shovel + - netherite_shovel + - wooden_hoe + - stone_hoe + - iron_hoe + - diamond_hoe + - golden_hoe + - netherite_hoe + groups: + - axes + +enchanted_book: + type: include + items: + - enchanted_book + +trident: + type: include + items: + - trident + +bow: + type: include + items: + - bow + +crossbow: + type: include + items: + - crossbow + +fishing_rod: + type: include + items: + - fishing_rod + +shears: + type: include + items: + - shears + +can_unbreak: + type: include + items: + - elytra + - flint_and_steel + - shield + - carrot_on_a_stick + - warped_fungus_on_a_stick + # do not exist in 1.18 but exist in future update + - brush + groups: + - melee_weapons + - tools + - armors + - trident + - bow + - crossbow + - fishing_rod + - shears + +can_vanish: + type: include + items: + - compass + groups: + - wearable + - can_unbreak + diff --git a/defaultconfigs/1.18/unit_repair_item.yml b/defaultconfigs/1.18/unit_repair_item.yml new file mode 100644 index 0000000..0e96878 --- /dev/null +++ b/defaultconfigs/1.18/unit_repair_item.yml @@ -0,0 +1,185 @@ +# Unit repair configuration +# +# This configuration is to make custom unit repair +# A unit repair is, for example, a diamond to repair a diamond sword +# In vanilla, a unit repair 25% of object durability +# you can make a custom value here +# +# Item name should NOT combine caps and no caps (example: Stone) + +# Default value if the config is an invalid value (value <= 0 ) +# If value > 1 it will be treated as being = 1 +default_repair_amount: 0.25 + +# You can add custom unit repair +# The example bellow make a shield repaired by 10% by sticks + +#stick: +# shield: 0.10 + + +# Vanilla unit repair group is bellow +diamond: + diamond_helmet: 0.25 + diamond_chestplate: 0.25 + diamond_leggings: 0.25 + diamond_boots: 0.25 + diamond_sword: 0.25 + diamond_pickaxe: 0.25 + diamond_axe: 0.25 + diamond_shovel: 0.25 + diamond_hoe: 0.25 + +netherite_ingot: + netherite_helmet: 0.25 + netherite_chestplate: 0.25 + netherite_leggings: 0.25 + netherite_boots: 0.25 + netherite_sword: 0.25 + netherite_pickaxe: 0.25 + netherite_axe: 0.25 + netherite_shovel: 0.25 + netherite_hoe: 0.25 + +gold_ingot: + golden_helmet: 0.25 + golden_chestplate: 0.25 + golden_leggings: 0.25 + golden_boots: 0.25 + golden_sword: 0.25 + golden_pickaxe: 0.25 + golden_axe: 0.25 + golden_shovel: 0.25 + golden_hoe: 0.25 + +iron_ingot: + iron_helmet: 0.25 + iron_chestplate: 0.25 + iron_leggings: 0.25 + iron_boots: 0.25 + iron_sword: 0.25 + iron_pickaxe: 0.25 + iron_axe: 0.25 + iron_shovel: 0.25 + iron_hoe: 0.25 + +cobblestone: + stone_sword: 0.25 + stone_pickaxe: 0.25 + stone_axe: 0.25 + stone_shovel: 0.25 + stone_hoe: 0.25 + +cobbled_deepslate: + stone_sword: 0.25 + stone_pickaxe: 0.25 + stone_axe: 0.25 + stone_shovel: 0.25 + stone_hoe: 0.25 + +blackstone: + stone_sword: 0.25 + stone_pickaxe: 0.25 + stone_axe: 0.25 + stone_shovel: 0.25 + stone_hoe: 0.25 + +leather: + leather_helmet: 0.25 + leather_chestplate: 0.25 + leather_leggings: 0.25 + leather_boots: 0.25 + +phantom_membrane: + elytra: 0.25 + +scute: + turtle_helmet: 0.25 + +oak_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 + +spruce_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 + +birch_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 + +jungle_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 + +acacia_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 + +dark_oak_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 + +mangrove_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 + +cherry_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 + +bamboo_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 + +crimson_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 + +warped_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 diff --git a/defaultconfigs/1.21/README.md b/defaultconfigs/1.21/README.md new file mode 100644 index 0000000..7105d8a --- /dev/null +++ b/defaultconfigs/1.21/README.md @@ -0,0 +1,6 @@ +### Default Plugin's Configurations For 1.21 +- [config.yml](https://github.com/alexcrea/CustomAnvil/tree/master/defaultconfigs/1.21/config.yml) +- [enchant_conflict.yml](https://github.com/alexcrea/CustomAnvil/tree/master/defaultconfigs/1.21/enchant_conflict.yml) +- [item_groups.yml](https://github.com/alexcrea/CustomAnvil/tree/master/defaultconfigs/1.21/item_groups.yml) +- [unit_repair_item.yml](https://github.com/alexcrea/CustomAnvil/tree/master/defaultconfigs/1.21/unit_repair_item.yml) +- [custom_recipes.yml](https://github.com/alexcrea/CustomAnvil/tree/master/defaultconfigs/1.21/custom_recipes.yml) diff --git a/defaultconfigs/1.21/config.yml b/defaultconfigs/1.21/config.yml new file mode 100644 index 0000000..aaf35f1 --- /dev/null +++ b/defaultconfigs/1.21/config.yml @@ -0,0 +1,259 @@ +# All anvil cost will be capped to limit_repair_value if enabled. +# +# In other words: +# For any anvil cost greater than limit_repair_value, Cost will be set to limit_repair_value. +limit_repair_cost: false + +# Max cost value the Anvil can get to. +# +# Valid values include 0 to 1000. +# Cost will be displayed as "Too Expensive": +# - If Cost is above 39 +# - And replace_too_expensive is disabled (false) +limit_repair_value: 39 + +# Whether the anvil's cost limit should be removed entirely. +# +# The anvil will still visually display "Too Expensive" if "replace_too_expensive" is disabled +# However, the action will be completable if xp requirement is meet. +remove_repair_limit: false + +# Whenever anvil cost is above 39 should display the true price and not "Too Expensive". +# +# However, when bypassing "Too Expensive", anvil price will be displayed as Green. +# If the action is not completable, the cost will still be displayed as "Too expensive". +# That mean you also need to change other settings like remove_repair_limit or limit_repair_cost. +# +# Require ProtocoLib. +replace_too_expensive: false + +# XP Level amount added to the anvil when the item is repaired by another item of the same type +# +# Valid values include 0 to 1000 +item_repair_cost: 2 + +# XP Level amount added to the anvil when the item is renamed +# +# Valid values include 0 to 1000 +item_rename_cost: 1 + +# XP Level amount added to the anvil when the item is repaired by an "unit" +# For example: a Diamond on a Diamond Sword +# What's considered unit for what can be edited on the unit repair configuration. +# +# Valid values include 0 to 1000 +unit_repair_cost: 1 + +# XP Level amount added to the anvil when a sacrifice enchantment +# conflict with one of the left item enchantment +# +# Valid values include 0 to 1000 +sacrifice_illegal_enchant_cost: 1 + +# Default limit to apply to any enchants missing from override_limits +# +# Valid values include 1 to 1000 +default_limit: 5 + +# Override limits for specific enchants +# +# Enchantments not listed here will use the value of default_limit +# +# Overrides provided default from aqua_affinity to depth_strider won't change effect with extra levels +# +# Valid range of 1 - 255 for each enchantment +enchant_limits: + aqua_affinity: 1 + binding_curse: 1 + channeling: 1 + flame: 1 + infinity: 1 + mending: 1 + multishot: 1 + silk_touch: 1 + vanishing_curse: 1 + depth_strider: 3 # anything more than 3 is treated as 3 by the game + protection: 4 + fire_protection: 4 + blast_protection: 4 + projectile_protection: 4 + feather_falling: 4 + thorns: 3 + respiration: 3 + sharpness: 5 + smite: 5 + bane_of_arthropods: 5 + knockback: 2 + fire_aspect: 2 + looting: 3 + sweeping: 3 + sweeping_edge: 3 + efficiency: 5 + unbreaking: 3 + fortune: 3 + power: 5 + punch: 2 + luck_of_the_sea: 3 + lure: 3 + frost_walker: 2 + impaling: 5 + riptide: 3 + loyalty: 3 + piercing: 4 + quick_charge: 3 + soul_speed: 3 + swift_sneak: 3 + density: 5 + breach: 4 + wind_burst: 3 + +# Multipliers used to calculate the enchantment's value in repair/combining +# +# Values here are pulled from the fandom wiki: +# https://minecraft.fandom.com/wiki/Anvil_mechanics#Costs_for_combining_enchantments +# +# If an enchantment is missing values here, or is less than 0, it will default to 0 +# +# Calculated as: [Enchantment lvl] * [multiplier] +# +# With default values protection 4 would have a value of 4 when +# coming from either a book (4 * 1) or an item (4 * 1) +enchant_values: + aqua_affinity: + item: 4 + book: 2 + bane_of_arthropods: + item: 2 + book: 1 + binding_curse: + item: 8 + book: 4 + blast_protection: + item: 4 + book: 2 + channeling: + item: 8 + book: 4 + depth_strider: + item: 4 + book: 2 + efficiency: + item: 1 + book: 1 + flame: + item: 4 + book: 2 + feather_falling: + item: 2 + book: 1 + fire_aspect: + item: 4 + book: 2 + fire_protection: + item: 2 + book: 1 + fortune: + item: 4 + book: 2 + frost_walker: + item: 4 + book: 2 + impaling: + item: 4 + book: 2 + infinity: + item: 8 + book: 4 + knockback: + item: 2 + book: 1 + looting: + item: 4 + book: 2 + loyalty: + item: 1 + book: 1 + luck_of_the_sea: + item: 4 + book: 2 + lure: + item: 4 + book: 2 + mending: + item: 4 + book: 2 + multishot: + item: 4 + book: 2 + piercing: + item: 1 + book: 1 + power: + item: 1 + book: 1 + projectile_protection: + item: 2 + book: 1 + protection: + item: 1 + book: 1 + punch: + item: 4 + book: 2 + quick_charge: + item: 2 + book: 1 + respiration: + item: 4 + book: 2 + riptide: + item: 4 + book: 2 + silk_touch: + item: 8 + book: 4 + sharpness: + item: 1 + book: 1 + smite: + item: 2 + book: 1 + soul_speed: + item: 8 + book: 4 + swift_sneak: + item: 8 + book: 4 + sweeping: + item: 4 + book: 2 + sweeping_edge: + item: 4 + book: 2 + thorns: + item: 8 + book: 4 + unbreaking: + item: 2 + book: 1 + vanishing_curse: + item: 8 + book: 4 + density: + item: 1 + book: 1 + breach: + item: 4 + book: 2 + wind_burst: + item: 4 + book: 2 + +# Whether to show debug logging +debug_log: false + +# Whether to show verbose debug logging +debug_log_verbose: false + +configVersion: 1.4.5 +lowMinecraftVersion: 1.21 diff --git a/defaultconfigs/1.21/custom_recipes.yml b/defaultconfigs/1.21/custom_recipes.yml new file mode 100644 index 0000000..57c2220 --- /dev/null +++ b/defaultconfigs/1.21/custom_recipes.yml @@ -0,0 +1,5 @@ +# ---------------------------------------------------- +# This config file is to store custom craft +# It is recommended to use the in game config editor for this configuration. +# /customanvilconfig With ca.config.edit permission +# ---------------------------------------------------- diff --git a/defaultconfigs/1.21/enchant_conflict.yml b/defaultconfigs/1.21/enchant_conflict.yml new file mode 100644 index 0000000..77e7fef --- /dev/null +++ b/defaultconfigs/1.21/enchant_conflict.yml @@ -0,0 +1,379 @@ +# material conflicts +# +# If you want to edit this file: +# - A conflict will apply to every item except if in one of the notAffectedGroups group +# - the conflict will count only if the user try to combine at least as +# many conflicting enchantment as "maxEnchantmentBeforeConflict" +# +# +# ---------------------------------------------------- +# These restriction are about not allowing enchantment +# on illegal items +# ---------------------------------------------------- + +restriction_aqua_affinity: + enchantments: + - aqua_affinity + notAffectedGroups: + - enchanted_book + - helmets + +restriction_bane_of_arthropods: + enchantments: + - bane_of_arthropods + notAffectedGroups: + - enchanted_book + - melee_weapons + - mace + +restriction_blast_protection: + enchantments: + - blast_protection + notAffectedGroups: + - enchanted_book + - armors + +restriction_channeling: + enchantments: + - channeling + notAffectedGroups: + - enchanted_book + - trident + +restriction_binding_curse: + enchantments: + - binding_curse + notAffectedGroups: + - enchanted_book + - wearable + +restriction_vanishing_curse: + enchantments: + - vanishing_curse + notAffectedGroups: + - enchanted_book + - can_vanish + +restriction_depth_strider: + enchantments: + - depth_strider + notAffectedGroups: + - enchanted_book + - boots + +restriction_efficiency: + enchantments: + - efficiency + notAffectedGroups: + - enchanted_book + - tools + - shears + +restriction_feather_falling: + enchantments: + - feather_falling + notAffectedGroups: + - enchanted_book + - boots + +restriction_fire_aspect: + enchantments: + - fire_aspect + notAffectedGroups: + - enchanted_book + - swords + - mace + +restriction_fire_protection: + enchantments: + - fire_protection + notAffectedGroups: + - enchanted_book + - armors + +restriction_flame: + enchantments: + - flame + notAffectedGroups: + - enchanted_book + - bow + +restriction_fortune: + enchantments: + - fortune + notAffectedGroups: + - enchanted_book + - tools + +restriction_frost_walker: + enchantments: + - frost_walker + notAffectedGroups: + - enchanted_book + - boots + +restriction_impaling: + enchantments: + - impaling + notAffectedGroups: + - enchanted_book + - trident + +restriction_infinity: + enchantments: + - infinity + notAffectedGroups: + - enchanted_book + - bow + +restriction_knockback: + enchantments: + - knockback + notAffectedGroups: + - enchanted_book + - swords + +restriction_looting: + enchantments: + - looting + notAffectedGroups: + - enchanted_book + - swords + +restriction_loyalty: + enchantments: + - loyalty + notAffectedGroups: + - enchanted_book + - trident + +restriction_lure: + enchantments: + - lure + notAffectedGroups: + - enchanted_book + - fishing_rod + +restriction_mending: + enchantments: + - mending + notAffectedGroups: + - enchanted_book + - can_unbreak + +restriction_multishot: + enchantments: + - multishot + notAffectedGroups: + - enchanted_book + - crossbow + +restriction_piercing: + enchantments: + - piercing + notAffectedGroups: + - enchanted_book + - crossbow + +restriction_power: + enchantments: + - power + notAffectedGroups: + - enchanted_book + - bow + +restriction_projectile_protection: + enchantments: + - projectile_protection + notAffectedGroups: + - enchanted_book + - armors + +restriction_protection: + enchantments: + - protection + notAffectedGroups: + - enchanted_book + - armors + +restriction_punch: + enchantments: + - punch + notAffectedGroups: + - enchanted_book + - bow + +restriction_quick_charge: + enchantments: + - quick_charge + notAffectedGroups: + - enchanted_book + - crossbow + +restriction_respiration: + enchantments: + - respiration + notAffectedGroups: + - enchanted_book + - helmets + +restriction_riptide: + enchantments: + - riptide + notAffectedGroups: + - enchanted_book + - trident + +restriction_sharpness: + enchantments: + - sharpness + notAffectedGroups: + - enchanted_book + - melee_weapons + +restriction_silk_touch: + enchantments: + - silk_touch + notAffectedGroups: + - enchanted_book + - tools + +restriction_smite: + enchantments: + - smite + notAffectedGroups: + - enchanted_book + - melee_weapons + - mace + +restriction_soul_speed: + enchantments: + - soul_speed + notAffectedGroups: + - enchanted_book + - boots + +restriction_sweeping_edge: + enchantments: + - sweeping + - sweeping_edge + notAffectedGroups: + - enchanted_book + - swords + +# Do not exist in 1.18, that mean useInFuture will be set to true +# useInFuture set to true also mean it will not warn if there is an issue +restriction_swift_sneak: + useInFuture: true + enchantments: + - swift_sneak + notAffectedGroups: + - enchanted_book + - leggings + +restriction_thorns: + enchantments: + - thorns + notAffectedGroups: + - enchanted_book + - armors + +restriction_unbreaking: + enchantments: + - unbreaking + notAffectedGroups: + - enchanted_book + - can_unbreak + +# ---------------------------------------------------- +# Now we have conflicts about enchantment Incompatibility +# We just filtered what item enchantments can be applied +# notAffectedGroups is empty as we don't want anything to not respect theses rules +# maxEnchantmentBeforeConflict is set to 1 to only have 1 on those enchantment available +# ---------------------------------------------------- + +sword_enchant_conflict: + enchantments: + - bane_of_arthropods + - smite + - sharpness + notAffectedGroups: [] + maxEnchantmentBeforeConflict: 1 + +protection_enchant_conflict: + enchantments: + - blast_protection + - fire_protection + - projectile_protection + - protection + notAffectedGroups: [] + maxEnchantmentBeforeConflict: 1 + +trident_conflict1: + enchantments: + - channeling + - riptide + notAffectedGroups: [] + maxEnchantmentBeforeConflict: 1 + +trident_conflict2: + enchantments: + - loyalty + - riptide + notAffectedGroups: [] + maxEnchantmentBeforeConflict: 1 + +boot_conflict: + enchantments: + - depth_strider + - frost_walker + notAffectedGroups: [] + maxEnchantmentBeforeConflict: 1 + +tool_conflict: + enchantments: + - fortune + - silk_touch + notAffectedGroups: [] + maxEnchantmentBeforeConflict: 1 + +bow_conflict: + enchantments: + - mending + - infinity + notAffectedGroups: [] + maxEnchantmentBeforeConflict: 1 + +crossbow_conflict: + enchantments: + - multishot + - piercing + notAffectedGroups: [] + maxEnchantmentBeforeConflict: 1 +restriction_density: + enchantments: + - density + notAffectedGroups: + - mace +restriction_breach: + enchantments: + - breach + notAffectedGroups: + - mace +restriction_wind_burst: + enchantments: + - wind_burst + notAffectedGroups: + - mace +mace_enchant_conflict: + enchantments: + - density + - breach + - smite + - bane_of_arthropods + maxEnchantmentBeforeConflict: 1 + +# ---------------------------------------------------- +# Bellow is for custom conflicts. +# This is also where conflict create from the gui will be placed. +# ---------------------------------------------------- diff --git a/defaultconfigs/1.21/item_groups.yml b/defaultconfigs/1.21/item_groups.yml new file mode 100644 index 0000000..2703bec --- /dev/null +++ b/defaultconfigs/1.21/item_groups.yml @@ -0,0 +1,208 @@ +# Please note this config use spigot material names. +# It should match minecraft name in most case, maybe every case, but I can't be sure +# In case there an issue with material name, you can found them here: +# https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html + +# An empty Exclude group exclude nothing, so it contain everything +everything: + type: exclude + +# An empty include group will include nothing +nothing: + type: include + +# This group is an example of a group including only stone and polished granite +example_include: + type: include + items: + - stone + - polished_granite + +# This group contain everything except polished granite and elements of example_include +example_exclude: + type: exclude + items: + - polished_granite + groups: + - example_include + +# Default configuration should be vanilla enchantment conflict group +# there may have error, if you find one you can fix it ! +# https://minecraft.fandom.com/wiki/Enchanting + +swords: + type: include + items: + - wooden_sword + - stone_sword + - iron_sword + - diamond_sword + - golden_sword + - netherite_sword + +axes: + type: include + items: + - wooden_axe + - stone_axe + - iron_axe + - diamond_axe + - golden_axe + - netherite_axe + +melee_weapons: + type: include + groups: + - swords + - axes + +helmets: + type: include + items: + - leather_helmet + - chainmail_helmet + - iron_helmet + - diamond_helmet + - golden_helmet + - netherite_helmet + - turtle_helmet + +chestplate: + type: include + items: + - leather_chestplate + - chainmail_chestplate + - iron_chestplate + - diamond_chestplate + - golden_chestplate + - netherite_chestplate + +leggings: + type: include + items: + - leather_leggings + - chainmail_leggings + - iron_leggings + - diamond_leggings + - golden_leggings + - netherite_leggings + +boots: + type: include + items: + - leather_boots + - chainmail_boots + - iron_boots + - diamond_boots + - golden_boots + - netherite_boots + +armors: + type: include + groups: + - helmets + - chestplate + - leggings + - boots + +wearable: + type: include + items: + - elytra + - carved_pumpkin + - skeleton_skull + - wither_skeleton_skull + - zombie_head + - player_head + - creeper_head + - dragon_head + - piglin_head + groups: + - armors + +tools: + type: include + items: + - wooden_pickaxe + - stone_pickaxe + - iron_pickaxe + - diamond_pickaxe + - golden_pickaxe + - netherite_pickaxe + - wooden_shovel + - stone_shovel + - iron_shovel + - diamond_shovel + - golden_shovel + - netherite_shovel + - wooden_hoe + - stone_hoe + - iron_hoe + - diamond_hoe + - golden_hoe + - netherite_hoe + groups: + - axes + +enchanted_book: + type: include + items: + - enchanted_book + +trident: + type: include + items: + - trident + +bow: + type: include + items: + - bow + +crossbow: + type: include + items: + - crossbow + +fishing_rod: + type: include + items: + - fishing_rod + +shears: + type: include + items: + - shears + +can_unbreak: + type: include + items: + - elytra + - flint_and_steel + - shield + - carrot_on_a_stick + - warped_fungus_on_a_stick + - brush + groups: + - melee_weapons + - tools + - armors + - trident + - bow + - crossbow + - fishing_rod + - shears + - mace + +can_vanish: + type: include + items: + - compass + groups: + - wearable + - can_unbreak +mace: + type: include + items: + - mace + diff --git a/defaultconfigs/1.21/unit_repair_item.yml b/defaultconfigs/1.21/unit_repair_item.yml new file mode 100644 index 0000000..0e96878 --- /dev/null +++ b/defaultconfigs/1.21/unit_repair_item.yml @@ -0,0 +1,185 @@ +# Unit repair configuration +# +# This configuration is to make custom unit repair +# A unit repair is, for example, a diamond to repair a diamond sword +# In vanilla, a unit repair 25% of object durability +# you can make a custom value here +# +# Item name should NOT combine caps and no caps (example: Stone) + +# Default value if the config is an invalid value (value <= 0 ) +# If value > 1 it will be treated as being = 1 +default_repair_amount: 0.25 + +# You can add custom unit repair +# The example bellow make a shield repaired by 10% by sticks + +#stick: +# shield: 0.10 + + +# Vanilla unit repair group is bellow +diamond: + diamond_helmet: 0.25 + diamond_chestplate: 0.25 + diamond_leggings: 0.25 + diamond_boots: 0.25 + diamond_sword: 0.25 + diamond_pickaxe: 0.25 + diamond_axe: 0.25 + diamond_shovel: 0.25 + diamond_hoe: 0.25 + +netherite_ingot: + netherite_helmet: 0.25 + netherite_chestplate: 0.25 + netherite_leggings: 0.25 + netherite_boots: 0.25 + netherite_sword: 0.25 + netherite_pickaxe: 0.25 + netherite_axe: 0.25 + netherite_shovel: 0.25 + netherite_hoe: 0.25 + +gold_ingot: + golden_helmet: 0.25 + golden_chestplate: 0.25 + golden_leggings: 0.25 + golden_boots: 0.25 + golden_sword: 0.25 + golden_pickaxe: 0.25 + golden_axe: 0.25 + golden_shovel: 0.25 + golden_hoe: 0.25 + +iron_ingot: + iron_helmet: 0.25 + iron_chestplate: 0.25 + iron_leggings: 0.25 + iron_boots: 0.25 + iron_sword: 0.25 + iron_pickaxe: 0.25 + iron_axe: 0.25 + iron_shovel: 0.25 + iron_hoe: 0.25 + +cobblestone: + stone_sword: 0.25 + stone_pickaxe: 0.25 + stone_axe: 0.25 + stone_shovel: 0.25 + stone_hoe: 0.25 + +cobbled_deepslate: + stone_sword: 0.25 + stone_pickaxe: 0.25 + stone_axe: 0.25 + stone_shovel: 0.25 + stone_hoe: 0.25 + +blackstone: + stone_sword: 0.25 + stone_pickaxe: 0.25 + stone_axe: 0.25 + stone_shovel: 0.25 + stone_hoe: 0.25 + +leather: + leather_helmet: 0.25 + leather_chestplate: 0.25 + leather_leggings: 0.25 + leather_boots: 0.25 + +phantom_membrane: + elytra: 0.25 + +scute: + turtle_helmet: 0.25 + +oak_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 + +spruce_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 + +birch_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 + +jungle_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 + +acacia_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 + +dark_oak_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 + +mangrove_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 + +cherry_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 + +bamboo_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 + +crimson_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 + +warped_planks: + wooden_sword: 0.25 + wooden_pickaxe: 0.25 + wooden_axe: 0.25 + wooden_shovel: 0.25 + wooden_hoe: 0.25 + shield: 0.25 diff --git a/defaultconfigs/README.md b/defaultconfigs/README.md new file mode 100644 index 0000000..646724e --- /dev/null +++ b/defaultconfigs/README.md @@ -0,0 +1,3 @@ +### Default Plugin's Configurations +For 1.18 to 1.20.6 use [1.18 configurations](https://github.com/alexcrea/CustomAnvil/tree/master/defaultconfigs/1.18) +For 1.21 use [1.21 configurations](https://github.com/alexcrea/CustomAnvil/tree/master/defaultconfigs/1.21) \ No newline at end of file