mirror of
https://github.com/alexcrea/CustomAnvil.git
synced 2026-06-23 08:14:00 +02:00
Merge branch 'v1.x.x' into v2.x.x-merging
# Conflicts: # build.gradle.kts # nms/nms-common/build.gradle.kts # nms/nms-common/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/gui/ExternGuiTester.kt # nms/nms-paper/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/datapack/DataPackTester.kt # nms/nms-paper/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/scheduler/FoliaScheduler.kt # nms/v1_20R3/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/scheduler/FoliaScheduler.kt # nms/v1_21R6/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/packet/versions/V1_21R6_PacketManager.kt # settings.gradle.kts # src/main/kotlin/xyz/alexcrea/cuanvil/dependency/gui/GuiTesterSelector.kt # src/main/kotlin/xyz/alexcrea/cuanvil/dependency/packet/PacketManager.kt # src/main/kotlin/xyz/alexcrea/cuanvil/dependency/packet/PacketManagerSelector.kt # src/main/kotlin/xyz/alexcrea/cuanvil/dependency/packet/PaperPacketManager.kt # src/main/kotlin/xyz/alexcrea/cuanvil/dependency/scheduler/FoliaScheduler.kt
This commit is contained in:
commit
ff4be622f8
19 changed files with 1523 additions and 33 deletions
|
|
@ -88,7 +88,10 @@ as low priority as I work for the plugin on my free time for free.
|
||||||
|
|
||||||
One of the configurations allow displaying price about 40 and removing Too Expensive. \
|
One of the configurations allow displaying price about 40 and removing Too Expensive. \
|
||||||
By how the minecraft client work: price above 40 can only be displayed green, even if the player does not own enough experience level.
|
By how the minecraft client work: price above 40 can only be displayed green, even if the player does not own enough experience level.
|
||||||
Minecraft version 1.17 to 1.21.7 do not need any dependency. Other version need ProtocoLib enabled on your server for this feature. \
|
Minecraft version 1.18 to latest marked as supported do not need any ProtocoLib dependency. \
|
||||||
|
Any recent paper version also are supported for this feature.
|
||||||
|
But you should wait for update for new version containing new enchantable item or new enchantments.
|
||||||
|
Other version need ProtocoLib enabled on your server for this feature. \
|
||||||
You can also wait for an update of the plugin to support a newer version.
|
You can also wait for an update of the plugin to support a newer version.
|
||||||
|
|
||||||
Please note that 1.16.5 to 1.17.1 are not officially supported. Run at your own risk.
|
Please note that 1.16.5 to 1.17.1 are not officially supported. Run at your own risk.
|
||||||
|
|
@ -100,9 +103,7 @@ For information about the API, please refer to [the Wiki](https://github.com/ale
|
||||||
---
|
---
|
||||||
|
|
||||||
### Default Plugin's Configurations
|
### 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)\
|
see [Here](https://github.com/alexcrea/CustomAnvil/tree/master/defaultconfigs)
|
||||||
For 1.21 to 1.21.8 use the [1.21 configurations](https://github.com/alexcrea/CustomAnvil/tree/master/defaultconfigs/1.21)\
|
|
||||||
From 1.21.9 use the [1.21.9 configurations](https://github.com/alexcrea/CustomAnvil/tree/master/defaultconfigs/1.21)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
Custom anvil [use bstat](https://bstats.org/plugin/bukkit/Unsafe%20Enchants%20Plus/20923) for metric. You can [disable it](https://bstats.org/getting-started) if you like.
|
Custom anvil [use bstat](https://bstats.org/plugin/bukkit/Unsafe%20Enchants%20Plus/20923) for metric. You can [disable it](https://bstats.org/getting-started) if you like.
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ plugins {
|
||||||
kotlin("jvm") version "2.1.0"
|
kotlin("jvm") version "2.1.0"
|
||||||
java
|
java
|
||||||
id("org.jetbrains.dokka").version("1.9.20")
|
id("org.jetbrains.dokka").version("1.9.20")
|
||||||
id("com.gradleup.shadow").version("9.0.0-beta16")
|
id("com.gradleup.shadow").version("9.3.0")
|
||||||
// Maven publish
|
// Maven publish
|
||||||
`maven-publish`
|
`maven-publish`
|
||||||
signing
|
signing
|
||||||
|
|
@ -31,6 +31,9 @@ repositories {
|
||||||
maven(url = "https://repo.nightexpressdev.com/releases")
|
maven(url = "https://repo.nightexpressdev.com/releases")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val reobfNMS = providers.gradleProperty("subprojects.reobfnms")
|
||||||
|
.get().split(",")
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
// Paper
|
// Paper
|
||||||
paperweight.paperDevBundle("1.21.10-R0.1-SNAPSHOT")
|
paperweight.paperDevBundle("1.21.10-R0.1-SNAPSHOT")
|
||||||
|
|
@ -154,7 +157,8 @@ tasks {
|
||||||
filesMatching("plugin.yml") {
|
filesMatching("plugin.yml") {
|
||||||
expand(
|
expand(
|
||||||
"version" to effectiveVersion,
|
"version" to effectiveVersion,
|
||||||
"libraries" to " \"org.jetbrains.kotlin:kotlin-stdlib:2.1.0\" "
|
"libraries" to " \"org.jetbrains.kotlin:kotlin-stdlib:2.1.0\" " +
|
||||||
|
", \"net.kyori:adventure-platform-bukkit:4.4.1\""
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -254,13 +258,9 @@ object Meta {
|
||||||
const val snapshot = "https://s01.oss.sonatype.org/content/repositories/snapshots/"
|
const val snapshot = "https://s01.oss.sonatype.org/content/repositories/snapshots/"
|
||||||
}
|
}
|
||||||
|
|
||||||
val disalowedDependency = setOf(
|
val disallowedDependency = HashSet<String>()
|
||||||
"nms-common", "kotlin-stdlib",
|
disallowedDependency.addAll(reobfNMS)
|
||||||
"v1_17R1",
|
disallowedDependency.addAll(listOf("nms-common", "nms-paper", "kotlin-stdlib"))
|
||||||
"v1_18R1", "v1_18R2", "v1_19R1", "v1_19R2", "v1_19R3",
|
|
||||||
"v1_20R1", "v1_20R2", "v1_20R3", "v1_20R4",
|
|
||||||
"v1_21R1", "v1_21R2", "v1_21R3", "v1_21R4", "v1_21R5"
|
|
||||||
)
|
|
||||||
|
|
||||||
publishing {
|
publishing {
|
||||||
repositories {
|
repositories {
|
||||||
|
|
@ -328,7 +328,7 @@ publishing {
|
||||||
val artifactNode = ((child as Node).get("artifactId") as NodeList)[0] as Node
|
val artifactNode = ((child as Node).get("artifactId") as NodeList)[0] as Node
|
||||||
val artifactID = artifactNode.value() as String
|
val artifactID = artifactNode.value() as String
|
||||||
|
|
||||||
if(disalowedDependency.contains(artifactID)) {
|
if(disallowedDependency.contains(artifactID)) {
|
||||||
toRemove.add(child)
|
toRemove.add(child)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
6
defaultconfigs/1.21.11/README.md
Normal file
6
defaultconfigs/1.21.11/README.md
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
### Default Plugin's Configurations For 1.21.11
|
||||||
|
- [config.yml](https://github.com/alexcrea/CustomAnvil/tree/master/defaultconfigs/1.21.11/config.yml)
|
||||||
|
- [enchant_conflict.yml](https://github.com/alexcrea/CustomAnvil/tree/master/defaultconfigs/1.21.11/enchant_conflict.yml)
|
||||||
|
- [item_groups.yml](https://github.com/alexcrea/CustomAnvil/tree/master/defaultconfigs/1.21.11/item_groups.yml)
|
||||||
|
- [unit_repair_item.yml](https://github.com/alexcrea/CustomAnvil/tree/master/defaultconfigs/1.21.11/unit_repair_item.yml)
|
||||||
|
- [custom_recipes.yml](https://github.com/alexcrea/CustomAnvil/tree/master/defaultconfigs/1.21.11/custom_recipes.yml)
|
||||||
427
defaultconfigs/1.21.11/config.yml
Normal file
427
defaultconfigs/1.21.11/config.yml
Normal file
|
|
@ -0,0 +1,427 @@
|
||||||
|
#
|
||||||
|
# It is recommended that you use /configanvil to edit theses config.
|
||||||
|
# You can still manually edit here if you like to. but if you do, don't forget to /anvilconfigreload after you changes !
|
||||||
|
#
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Allow using color code and hexadecimal color.
|
||||||
|
#
|
||||||
|
# Color code are prefixed by "&" and hexadecimal color by "#".
|
||||||
|
# Color code will not be applied if it colors nothing. "&&" can be used to write "&".
|
||||||
|
# For minimessage search for minimessage formating https://docs.papermc.io/adventure/minimessage/format/
|
||||||
|
# Note that only color and decoration tags are allowed for minimisage in the v1 version of this plugin
|
||||||
|
# but any global tag will be allowed later when v2 release
|
||||||
|
allow_color_code: false
|
||||||
|
allow_hexadecimal_color: false
|
||||||
|
allow_minimessage: false
|
||||||
|
|
||||||
|
# Toggle if color should only be applicable if the player a certain permission.
|
||||||
|
#
|
||||||
|
# permission are "ca.color.code" for use of color code and "ca.color.hex" for use of hexadecimal color.
|
||||||
|
permission_needed_for_color: true
|
||||||
|
|
||||||
|
# Xp cost if the player use color in the items name on rename.
|
||||||
|
#
|
||||||
|
# Valid values include 0 to 1000.
|
||||||
|
use_of_color_cost: 0
|
||||||
|
|
||||||
|
# Default limit to apply to any enchants missing from enchant_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:
|
||||||
|
minecraft:aqua_affinity: 1
|
||||||
|
minecraft:binding_curse: 1
|
||||||
|
minecraft:channeling: 1
|
||||||
|
minecraft:flame: 1
|
||||||
|
minecraft:infinity: 1
|
||||||
|
minecraft:mending: 1
|
||||||
|
minecraft:multishot: 1
|
||||||
|
minecraft:silk_touch: 1
|
||||||
|
minecraft:vanishing_curse: 1
|
||||||
|
minecraft:depth_strider: 3 # anything more than 3 is treated as 3 by the game
|
||||||
|
minecraft:protection: 4
|
||||||
|
minecraft:fire_protection: 4
|
||||||
|
minecraft:blast_protection: 4
|
||||||
|
minecraft:projectile_protection: 4
|
||||||
|
minecraft:feather_falling: 4
|
||||||
|
minecraft:thorns: 3
|
||||||
|
minecraft:respiration: 3
|
||||||
|
minecraft:sharpness: 5
|
||||||
|
minecraft:smite: 5
|
||||||
|
minecraft:bane_of_arthropods: 5
|
||||||
|
minecraft:knockback: 2
|
||||||
|
minecraft:fire_aspect: 2
|
||||||
|
minecraft:looting: 3
|
||||||
|
minecraft:sweeping: 3
|
||||||
|
minecraft:sweeping_edge: 3
|
||||||
|
minecraft:efficiency: 5
|
||||||
|
minecraft:unbreaking: 3
|
||||||
|
minecraft:fortune: 3
|
||||||
|
minecraft:power: 5
|
||||||
|
minecraft:punch: 2
|
||||||
|
minecraft:luck_of_the_sea: 3
|
||||||
|
minecraft:lure: 3
|
||||||
|
minecraft:frost_walker: 2
|
||||||
|
minecraft:impaling: 5
|
||||||
|
minecraft:riptide: 3
|
||||||
|
minecraft:loyalty: 3
|
||||||
|
minecraft:piercing: 4
|
||||||
|
minecraft:quick_charge: 3
|
||||||
|
minecraft:soul_speed: 3
|
||||||
|
minecraft:swift_sneak: 3
|
||||||
|
minecraft:density: 5
|
||||||
|
minecraft:breach: 4
|
||||||
|
minecraft:wind_burst: 3
|
||||||
|
minecraft:lunge: 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:
|
||||||
|
minecraft:aqua_affinity:
|
||||||
|
item: 4
|
||||||
|
book: 2
|
||||||
|
minecraft:bane_of_arthropods:
|
||||||
|
item: 2
|
||||||
|
book: 1
|
||||||
|
minecraft:binding_curse:
|
||||||
|
item: 8
|
||||||
|
book: 4
|
||||||
|
minecraft:blast_protection:
|
||||||
|
item: 4
|
||||||
|
book: 2
|
||||||
|
minecraft:channeling:
|
||||||
|
item: 8
|
||||||
|
book: 4
|
||||||
|
minecraft:depth_strider:
|
||||||
|
item: 4
|
||||||
|
book: 2
|
||||||
|
minecraft:efficiency:
|
||||||
|
item: 1
|
||||||
|
book: 1
|
||||||
|
minecraft:flame:
|
||||||
|
item: 4
|
||||||
|
book: 2
|
||||||
|
minecraft:feather_falling:
|
||||||
|
item: 2
|
||||||
|
book: 1
|
||||||
|
minecraft:fire_aspect:
|
||||||
|
item: 4
|
||||||
|
book: 2
|
||||||
|
minecraft:fire_protection:
|
||||||
|
item: 2
|
||||||
|
book: 1
|
||||||
|
minecraft:fortune:
|
||||||
|
item: 4
|
||||||
|
book: 2
|
||||||
|
minecraft:frost_walker:
|
||||||
|
item: 4
|
||||||
|
book: 2
|
||||||
|
minecraft:impaling:
|
||||||
|
item: 4
|
||||||
|
book: 2
|
||||||
|
minecraft:infinity:
|
||||||
|
item: 8
|
||||||
|
book: 4
|
||||||
|
minecraft:knockback:
|
||||||
|
item: 2
|
||||||
|
book: 1
|
||||||
|
minecraft:looting:
|
||||||
|
item: 4
|
||||||
|
book: 2
|
||||||
|
minecraft:loyalty:
|
||||||
|
item: 1
|
||||||
|
book: 1
|
||||||
|
minecraft:luck_of_the_sea:
|
||||||
|
item: 4
|
||||||
|
book: 2
|
||||||
|
minecraft:lure:
|
||||||
|
item: 4
|
||||||
|
book: 2
|
||||||
|
minecraft:mending:
|
||||||
|
item: 4
|
||||||
|
book: 2
|
||||||
|
minecraft:multishot:
|
||||||
|
item: 4
|
||||||
|
book: 2
|
||||||
|
minecraft:piercing:
|
||||||
|
item: 1
|
||||||
|
book: 1
|
||||||
|
minecraft:power:
|
||||||
|
item: 1
|
||||||
|
book: 1
|
||||||
|
minecraft:projectile_protection:
|
||||||
|
item: 2
|
||||||
|
book: 1
|
||||||
|
minecraft:protection:
|
||||||
|
item: 1
|
||||||
|
book: 1
|
||||||
|
minecraft:punch:
|
||||||
|
item: 4
|
||||||
|
book: 2
|
||||||
|
minecraft:quick_charge:
|
||||||
|
item: 2
|
||||||
|
book: 1
|
||||||
|
minecraft:respiration:
|
||||||
|
item: 4
|
||||||
|
book: 2
|
||||||
|
minecraft:riptide:
|
||||||
|
item: 4
|
||||||
|
book: 2
|
||||||
|
minecraft:silk_touch:
|
||||||
|
item: 8
|
||||||
|
book: 4
|
||||||
|
minecraft:sharpness:
|
||||||
|
item: 1
|
||||||
|
book: 1
|
||||||
|
minecraft:smite:
|
||||||
|
item: 2
|
||||||
|
book: 1
|
||||||
|
minecraft:soul_speed:
|
||||||
|
item: 8
|
||||||
|
book: 4
|
||||||
|
minecraft:swift_sneak:
|
||||||
|
item: 8
|
||||||
|
book: 4
|
||||||
|
minecraft:sweeping:
|
||||||
|
item: 4
|
||||||
|
book: 2
|
||||||
|
minecraft:sweeping_edge:
|
||||||
|
item: 4
|
||||||
|
book: 2
|
||||||
|
minecraft:thorns:
|
||||||
|
item: 8
|
||||||
|
book: 4
|
||||||
|
minecraft:unbreaking:
|
||||||
|
item: 2
|
||||||
|
book: 1
|
||||||
|
minecraft:vanishing_curse:
|
||||||
|
item: 8
|
||||||
|
book: 4
|
||||||
|
minecraft:density:
|
||||||
|
item: 2
|
||||||
|
book: 1
|
||||||
|
minecraft:breach:
|
||||||
|
item: 4
|
||||||
|
book: 2
|
||||||
|
minecraft:wind_burst:
|
||||||
|
item: 4
|
||||||
|
book: 2
|
||||||
|
minecraft:lunge:
|
||||||
|
item: 2
|
||||||
|
book: 1
|
||||||
|
|
||||||
|
# Disable enchantment merging for level above the set value
|
||||||
|
# Enchantment merging is when, for example, 2 unbreaking II book combine to give sharpness III
|
||||||
|
# But Enchantment above this value can still be applied. following the previous example, we could still apply a unbreaking III book to a sword
|
||||||
|
# Even if disable-merge-over of unbreaking is set to 2
|
||||||
|
# -1 mean enchantment merge for this enchantment is not disabled. default to -1 if absent.
|
||||||
|
disable-merge-over:
|
||||||
|
# Sharpness is set to -1. it equivalent to it not being set to anything (and work as vanilla)
|
||||||
|
minecraft:sharpness: -1
|
||||||
|
# If uncommented. 2 unbreaking II book would not give an unbreaking III book. but unbreaking III book can still be applied
|
||||||
|
# minecraft:unbreaking: 2
|
||||||
|
|
||||||
|
# The maximum number of enchantment an item can get. -1 for infinity
|
||||||
|
# Use eco enchant enchant_limit if present by default unless "default" is not equal to -1
|
||||||
|
enchantment_count_limit:
|
||||||
|
default: -1
|
||||||
|
# Limit for specific items. example bellow is an example with stick
|
||||||
|
# Per item enchantment limit override eco enchant enchant_limit and default limit
|
||||||
|
items:
|
||||||
|
stick: -1
|
||||||
|
|
||||||
|
# Settings for lore modification
|
||||||
|
lore_edit:
|
||||||
|
book_and_quil:
|
||||||
|
# Permission is ca.lore_edit.book
|
||||||
|
use_permission: true
|
||||||
|
append:
|
||||||
|
# If adding lore using book & quil is enabled
|
||||||
|
enabled: false
|
||||||
|
# Cost used every time
|
||||||
|
fixed_cost: 1
|
||||||
|
# Cost used for every lore line added
|
||||||
|
per_line_cost: 0
|
||||||
|
# Use left item vanilla cost penalty if any
|
||||||
|
shared_increase: false
|
||||||
|
# Increase shared left item cost penalty
|
||||||
|
shared_additive: false
|
||||||
|
# If adding the lore consume the book & quil
|
||||||
|
do_consume: false
|
||||||
|
# Allow using color code and hexadecimal color when editing lore via book & quil
|
||||||
|
#
|
||||||
|
# Color code are prefixed by "&" and hexadecimal color by "#"
|
||||||
|
# Color code will not be applied if it colors nothing. "&&" can be used to write "&"
|
||||||
|
# For minimessage see minimessage formating https://docs.papermc.io/adventure/minimessage/format/
|
||||||
|
#
|
||||||
|
# Note that currently minimessage would disable hex code when adding color
|
||||||
|
allow_color_code: true
|
||||||
|
allow_hexadecimal_color: false
|
||||||
|
allow_minimessage: true
|
||||||
|
use_cost: 0
|
||||||
|
|
||||||
|
remove:
|
||||||
|
# If removing lore using book & quil is enabled
|
||||||
|
enabled: false
|
||||||
|
# Cost used every time
|
||||||
|
fixed_cost: 1
|
||||||
|
# Cost used for every lore line removed
|
||||||
|
per_line_cost: 0
|
||||||
|
# Use left item vanilla cost penalty if any
|
||||||
|
shared_increase: false
|
||||||
|
# Increase shared left item cost penalty
|
||||||
|
shared_additive: false
|
||||||
|
# If removing the lore consume the book & quil
|
||||||
|
do_consume: false
|
||||||
|
# Cost of replacing colors
|
||||||
|
remove_color_cost: 0
|
||||||
|
# Allowed some color and tags to be reverted to plain text
|
||||||
|
# Custom anvil will prioritise format that result is a smaller resulting text
|
||||||
|
# Note that not allowing certain format will lead to some lost of color or tags.
|
||||||
|
# If configuration are exact as append appending this book should result in the exact same color
|
||||||
|
#
|
||||||
|
# Color code will be prefixed by "&" and hexadecimal color by "#".
|
||||||
|
# If color code is allowed, "&" in the text will get converted to "&&"
|
||||||
|
# For minimessage see minimessage formating https://docs.papermc.io/adventure/minimessage/format/
|
||||||
|
allow_color_code: true
|
||||||
|
allow_hexadecimal_color: false
|
||||||
|
allow_minimessage: true
|
||||||
|
|
||||||
|
paper:
|
||||||
|
# Permission is ca.lore_edit.paper
|
||||||
|
use_permission: true
|
||||||
|
# what order should the lines should get added/removed (start/end, if invalid or not present will be end)
|
||||||
|
order: end
|
||||||
|
|
||||||
|
append_line:
|
||||||
|
# If adding lore line using paper is enabled
|
||||||
|
enabled: false
|
||||||
|
# Cost used every time
|
||||||
|
fixed_cost: 1
|
||||||
|
# Use left item vanilla cost penalty if any
|
||||||
|
shared_increase: false
|
||||||
|
# Increase shared left item cost penalty
|
||||||
|
shared_additive: false
|
||||||
|
# If adding the lore line consume the paper
|
||||||
|
do_consume: false
|
||||||
|
# Allow using color code and hexadecimal color when editing lore via book & quil
|
||||||
|
#
|
||||||
|
# Color code are prefixed by "&" and hexadecimal color by "#"
|
||||||
|
# Color code will not be applied if it colors nothing. "&&" can be used to write "&"
|
||||||
|
# For minimessage see minimessage formating https://docs.papermc.io/adventure/minimessage/format/
|
||||||
|
#
|
||||||
|
# Note that currently minimessage would disable hex code when adding color
|
||||||
|
allow_color_code: true
|
||||||
|
allow_hexadecimal_color: false
|
||||||
|
allow_minimessage: true
|
||||||
|
color_use_cost: 0
|
||||||
|
use_cost: 0
|
||||||
|
|
||||||
|
remove_line:
|
||||||
|
# If removing lore line using paper is enabled
|
||||||
|
enabled: false
|
||||||
|
# Cost used every time
|
||||||
|
fixed_cost: 1
|
||||||
|
# Use left item vanilla cost penalty if any
|
||||||
|
shared_increase: false
|
||||||
|
# Increase shared left item cost penalty
|
||||||
|
shared_additive: false
|
||||||
|
# If removing the lore line consume the paper
|
||||||
|
do_consume: false
|
||||||
|
# Cost of replacing colors
|
||||||
|
remove_color_cost: 0
|
||||||
|
# Allowed some color and tags to be reverted to plain text
|
||||||
|
# Custom anvil will prioritise format that result is a smaller resulting text
|
||||||
|
# Note that not allowing certain format will lead to some lost of color or tags.
|
||||||
|
# If configuration are exact as append appending this paper should result in the exact same color
|
||||||
|
#
|
||||||
|
# Color code will be prefixed by "&" and hexadecimal color by "#".
|
||||||
|
# If color code is allowed, "&" in the text will get converted to "&&"
|
||||||
|
# For minimessage see minimessage formating https://docs.papermc.io/adventure/minimessage/format/
|
||||||
|
allow_color_code: true
|
||||||
|
allow_hexadecimal_color: false
|
||||||
|
allow_minimessage: true
|
||||||
|
|
||||||
|
# Whether to show debug logging
|
||||||
|
debug_log: false
|
||||||
|
|
||||||
|
# Whether to show verbose debug logging
|
||||||
|
debug_log_verbose: false
|
||||||
|
|
||||||
|
# In case something when wrong with CustomAnvil packet manager.
|
||||||
|
# If you see "missing class exception" or similar you may test this.
|
||||||
|
# If enabled and Protocolib absent or disabled "Replace to expensive" will not work.
|
||||||
|
# ProtocoLib may also be used if the server is in an "unsupported" version even if this option is disabled.
|
||||||
|
force_protocolib: false
|
||||||
|
|
||||||
|
configVersion: 1.15.5
|
||||||
|
lowMinecraftVersion: 1.21.11
|
||||||
5
defaultconfigs/1.21.11/custom_recipes.yml
Normal file
5
defaultconfigs/1.21.11/custom_recipes.yml
Normal file
|
|
@ -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
|
||||||
|
# ----------------------------------------------------
|
||||||
398
defaultconfigs/1.21.11/enchant_conflict.yml
Normal file
398
defaultconfigs/1.21.11/enchant_conflict.yml
Normal file
|
|
@ -0,0 +1,398 @@
|
||||||
|
#
|
||||||
|
# It is recommended that you use /configanvil to edit theses config.
|
||||||
|
# You can still manually edit here if you like to. but if you do, don't forget to /anvilconfigreload after you changes !
|
||||||
|
#
|
||||||
|
|
||||||
|
# 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:
|
||||||
|
- minecraft:aqua_affinity
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- helmets
|
||||||
|
|
||||||
|
restriction_bane_of_arthropods:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:bane_of_arthropods
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- melee_weapons
|
||||||
|
- mace
|
||||||
|
|
||||||
|
restriction_blast_protection:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:blast_protection
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- armors
|
||||||
|
|
||||||
|
restriction_channeling:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:channeling
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- trident
|
||||||
|
|
||||||
|
restriction_binding_curse:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:binding_curse
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- wearable
|
||||||
|
|
||||||
|
restriction_vanishing_curse:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:vanishing_curse
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- can_vanish
|
||||||
|
|
||||||
|
restriction_depth_strider:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:depth_strider
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- boots
|
||||||
|
|
||||||
|
restriction_efficiency:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:efficiency
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- tools
|
||||||
|
- shears
|
||||||
|
|
||||||
|
restriction_feather_falling:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:feather_falling
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- boots
|
||||||
|
|
||||||
|
restriction_fire_aspect:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:fire_aspect
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- swords
|
||||||
|
- mace
|
||||||
|
- spears
|
||||||
|
|
||||||
|
restriction_fire_protection:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:fire_protection
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- armors
|
||||||
|
|
||||||
|
restriction_flame:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:flame
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- bow
|
||||||
|
|
||||||
|
restriction_fortune:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:fortune
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- tools
|
||||||
|
|
||||||
|
restriction_frost_walker:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:frost_walker
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- boots
|
||||||
|
|
||||||
|
restriction_impaling:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:impaling
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- trident
|
||||||
|
|
||||||
|
restriction_infinity:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:infinity
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- bow
|
||||||
|
|
||||||
|
restriction_knockback:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:knockback
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- swords
|
||||||
|
- spears
|
||||||
|
|
||||||
|
restriction_looting:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:looting
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- swords
|
||||||
|
- spears
|
||||||
|
|
||||||
|
restriction_loyalty:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:loyalty
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- trident
|
||||||
|
|
||||||
|
restriction_luck_of_the_sea:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:luck_of_the_sea
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- fishing_rod
|
||||||
|
|
||||||
|
restriction_lure:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:lure
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- fishing_rod
|
||||||
|
|
||||||
|
restriction_mending:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:mending
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- can_unbreak
|
||||||
|
|
||||||
|
restriction_minecraft_multishot:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:multishot
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- crossbow
|
||||||
|
|
||||||
|
restriction_piercing:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:piercing
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- crossbow
|
||||||
|
|
||||||
|
restriction_power:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:power
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- bow
|
||||||
|
|
||||||
|
restriction_projectile_protection:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:projectile_protection
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- armors
|
||||||
|
|
||||||
|
restriction_protection:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:protection
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- armors
|
||||||
|
|
||||||
|
restriction_punch:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:punch
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- bow
|
||||||
|
|
||||||
|
restriction_quick_charge:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:quick_charge
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- crossbow
|
||||||
|
|
||||||
|
restriction_respiration:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:respiration
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- helmets
|
||||||
|
|
||||||
|
restriction_riptide:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:riptide
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- trident
|
||||||
|
|
||||||
|
restriction_sharpness:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:sharpness
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- melee_weapons
|
||||||
|
|
||||||
|
restriction__silk_touch:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:silk_touch
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- tools
|
||||||
|
|
||||||
|
restriction_smite:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:smite
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- melee_weapons
|
||||||
|
- mace
|
||||||
|
|
||||||
|
restriction_soul_speed:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:soul_speed
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- boots
|
||||||
|
|
||||||
|
restriction_sweeping_edge:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:sweeping
|
||||||
|
- minecraft: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:
|
||||||
|
- minecraft:swift_sneak
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- leggings
|
||||||
|
|
||||||
|
restriction_thorns:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:thorns
|
||||||
|
notAffectedGroups:
|
||||||
|
- enchanted_book
|
||||||
|
- armors
|
||||||
|
|
||||||
|
restriction__unbreaking:
|
||||||
|
enchantments:
|
||||||
|
- minecraft: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:
|
||||||
|
- minecraft:bane_of_arthropods
|
||||||
|
- minecraft:smite
|
||||||
|
- minecraft:sharpness
|
||||||
|
- minecraft:density
|
||||||
|
- minecraft:breach
|
||||||
|
notAffectedGroups: []
|
||||||
|
maxEnchantmentBeforeConflict: 1
|
||||||
|
|
||||||
|
protection_enchant_conflict:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:blast_protection
|
||||||
|
- minecraft:fire_protection
|
||||||
|
- minecraft:projectile_protection
|
||||||
|
- minecraft:protection
|
||||||
|
notAffectedGroups: []
|
||||||
|
maxEnchantmentBeforeConflict: 1
|
||||||
|
|
||||||
|
trident_conflict1:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:channeling
|
||||||
|
- minecraft:riptide
|
||||||
|
notAffectedGroups: []
|
||||||
|
maxEnchantmentBeforeConflict: 1
|
||||||
|
|
||||||
|
trident_conflict2:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:loyalty
|
||||||
|
- minecraft:riptide
|
||||||
|
notAffectedGroups: []
|
||||||
|
maxEnchantmentBeforeConflict: 1
|
||||||
|
|
||||||
|
boot_conflict:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:depth_strider
|
||||||
|
- minecraft:frost_walker
|
||||||
|
notAffectedGroups: []
|
||||||
|
maxEnchantmentBeforeConflict: 1
|
||||||
|
|
||||||
|
tool_conflict:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:fortune
|
||||||
|
- minecraft:silk_touch
|
||||||
|
notAffectedGroups: []
|
||||||
|
maxEnchantmentBeforeConflict: 1
|
||||||
|
|
||||||
|
bow_conflict:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:mending
|
||||||
|
- minecraft:infinity
|
||||||
|
notAffectedGroups: []
|
||||||
|
maxEnchantmentBeforeConflict: 1
|
||||||
|
|
||||||
|
crossbow_conflict:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:multishot
|
||||||
|
- minecraft:piercing
|
||||||
|
notAffectedGroups: []
|
||||||
|
maxEnchantmentBeforeConflict: 1
|
||||||
|
restriction_density:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:density
|
||||||
|
notAffectedGroups:
|
||||||
|
- mace
|
||||||
|
- enchanted_book
|
||||||
|
restriction_breach:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:breach
|
||||||
|
notAffectedGroups:
|
||||||
|
- mace
|
||||||
|
- enchanted_book
|
||||||
|
restriction_wind_burst:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:wind_burst
|
||||||
|
notAffectedGroups:
|
||||||
|
- mace
|
||||||
|
- enchanted_book
|
||||||
|
restriction_lunge:
|
||||||
|
enchantments:
|
||||||
|
- minecraft:lunge
|
||||||
|
notAffectedGroups:
|
||||||
|
- spears
|
||||||
|
- enchanted_book
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Bellow is for custom conflicts.
|
||||||
|
# This is also where conflict create from the gui will be placed.
|
||||||
|
# ----------------------------------------------------
|
||||||
247
defaultconfigs/1.21.11/item_groups.yml
Normal file
247
defaultconfigs/1.21.11/item_groups.yml
Normal file
|
|
@ -0,0 +1,247 @@
|
||||||
|
#
|
||||||
|
# It is recommended that you use /configanvil to edit theses config.
|
||||||
|
# You can still manually edit here if you like to. but if you do, don't forget to /anvilconfigreload after you changes !
|
||||||
|
#
|
||||||
|
|
||||||
|
# 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
|
||||||
|
- copper_sword
|
||||||
|
|
||||||
|
axes:
|
||||||
|
type: include
|
||||||
|
items:
|
||||||
|
- wooden_axe
|
||||||
|
- stone_axe
|
||||||
|
- iron_axe
|
||||||
|
- diamond_axe
|
||||||
|
- golden_axe
|
||||||
|
- netherite_axe
|
||||||
|
- copper_axe
|
||||||
|
|
||||||
|
melee_weapons:
|
||||||
|
type: include
|
||||||
|
groups:
|
||||||
|
- swords
|
||||||
|
- axes
|
||||||
|
- spears
|
||||||
|
|
||||||
|
helmets:
|
||||||
|
type: include
|
||||||
|
items:
|
||||||
|
- leather_helmet
|
||||||
|
- chainmail_helmet
|
||||||
|
- iron_helmet
|
||||||
|
- diamond_helmet
|
||||||
|
- golden_helmet
|
||||||
|
- netherite_helmet
|
||||||
|
- turtle_helmet
|
||||||
|
- copper_helmet
|
||||||
|
|
||||||
|
chestplate:
|
||||||
|
type: include
|
||||||
|
items:
|
||||||
|
- leather_chestplate
|
||||||
|
- chainmail_chestplate
|
||||||
|
- iron_chestplate
|
||||||
|
- diamond_chestplate
|
||||||
|
- golden_chestplate
|
||||||
|
- netherite_chestplate
|
||||||
|
- copper_chestplate
|
||||||
|
|
||||||
|
leggings:
|
||||||
|
type: include
|
||||||
|
items:
|
||||||
|
- leather_leggings
|
||||||
|
- chainmail_leggings
|
||||||
|
- iron_leggings
|
||||||
|
- diamond_leggings
|
||||||
|
- golden_leggings
|
||||||
|
- netherite_leggings
|
||||||
|
- copper_leggings
|
||||||
|
|
||||||
|
boots:
|
||||||
|
type: include
|
||||||
|
items:
|
||||||
|
- leather_boots
|
||||||
|
- chainmail_boots
|
||||||
|
- iron_boots
|
||||||
|
- diamond_boots
|
||||||
|
- golden_boots
|
||||||
|
- netherite_boots
|
||||||
|
- copper_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
|
||||||
|
|
||||||
|
pickaxes:
|
||||||
|
type: include
|
||||||
|
items:
|
||||||
|
- wooden_pickaxe
|
||||||
|
- stone_pickaxe
|
||||||
|
- iron_pickaxe
|
||||||
|
- diamond_pickaxe
|
||||||
|
- golden_pickaxe
|
||||||
|
- netherite_pickaxe
|
||||||
|
- copper_pickaxe
|
||||||
|
|
||||||
|
shovels:
|
||||||
|
type: include
|
||||||
|
items:
|
||||||
|
- wooden_shovel
|
||||||
|
- stone_shovel
|
||||||
|
- iron_shovel
|
||||||
|
- diamond_shovel
|
||||||
|
- golden_shovel
|
||||||
|
- netherite_shovel
|
||||||
|
- copper_shovel
|
||||||
|
|
||||||
|
hoes:
|
||||||
|
type: include
|
||||||
|
items:
|
||||||
|
- wooden_hoe
|
||||||
|
- stone_hoe
|
||||||
|
- iron_hoe
|
||||||
|
- diamond_hoe
|
||||||
|
- golden_hoe
|
||||||
|
- netherite_hoe
|
||||||
|
- copper_hoe
|
||||||
|
|
||||||
|
tools:
|
||||||
|
type: include
|
||||||
|
groups:
|
||||||
|
- pickaxes
|
||||||
|
- shovels
|
||||||
|
- hoes
|
||||||
|
- 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
|
||||||
|
spears:
|
||||||
|
type: include
|
||||||
|
items:
|
||||||
|
- wooden_spear
|
||||||
|
- golden_spear
|
||||||
|
- stone_spear
|
||||||
|
- copper_spear
|
||||||
|
- iron_spear
|
||||||
|
- diamond_spear
|
||||||
|
- netherite_spear
|
||||||
|
|
||||||
220
defaultconfigs/1.21.11/unit_repair_item.yml
Normal file
220
defaultconfigs/1.21.11/unit_repair_item.yml
Normal file
|
|
@ -0,0 +1,220 @@
|
||||||
|
#
|
||||||
|
# It is recommended that you use /configanvil to edit theses config.
|
||||||
|
# You can still manually edit here if you like to. but if you do, don't forget to /anvilconfigreload after you changes !
|
||||||
|
#
|
||||||
|
|
||||||
|
# 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
|
||||||
|
diamond_spear: 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
|
||||||
|
netherite_spear: 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
|
||||||
|
golden_spear: 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
|
||||||
|
iron_spear: 0.25
|
||||||
|
|
||||||
|
cobblestone:
|
||||||
|
stone_sword: 0.25
|
||||||
|
stone_pickaxe: 0.25
|
||||||
|
stone_axe: 0.25
|
||||||
|
stone_shovel: 0.25
|
||||||
|
stone_hoe: 0.25
|
||||||
|
stone_spear: 0.25
|
||||||
|
|
||||||
|
cobbled_deepslate:
|
||||||
|
stone_sword: 0.25
|
||||||
|
stone_pickaxe: 0.25
|
||||||
|
stone_axe: 0.25
|
||||||
|
stone_shovel: 0.25
|
||||||
|
stone_hoe: 0.25
|
||||||
|
stone_spear: 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
|
||||||
|
wooden_spear: 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
|
||||||
|
wooden_spear: 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
|
||||||
|
wooden_spear: 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
|
||||||
|
wooden_spear: 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
|
||||||
|
wooden_spear: 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
|
||||||
|
wooden_spear: 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
|
||||||
|
wooden_spear: 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
|
||||||
|
wooden_spear: 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
|
||||||
|
wooden_spear: 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
|
||||||
|
wooden_spear: 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
|
||||||
|
wooden_spear: 0.25
|
||||||
|
breeze_rod:
|
||||||
|
mace: 0.25
|
||||||
|
copper_ingot:
|
||||||
|
copper_helmet: 0.25
|
||||||
|
copper_chestplate: 0.25
|
||||||
|
copper_leggings: 0.25
|
||||||
|
copper_boots: 0.25
|
||||||
|
copper_pickaxe: 0.25
|
||||||
|
copper_shovel: 0.25
|
||||||
|
copper_hoe: 0.25
|
||||||
|
copper_axe: 0.25
|
||||||
|
copper_sword: 0.25
|
||||||
|
copper_spear: 0.25
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
### Default Plugin's Configurations
|
### 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) \
|
From 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)
|
From 1.21 to 1.21.8 use [1.21 configurations](https://github.com/alexcrea/CustomAnvil/tree/master/defaultconfigs/1.21)
|
||||||
|
From 1.21.9 to 1.21.10 use [1.21.9 configurations](https://github.com/alexcrea/CustomAnvil/tree/master/defaultconfigs/1.21.9)
|
||||||
|
From 1.21.11 use [1.21.11 configurations](https://github.com/alexcrea/CustomAnvil/tree/master/defaultconfigs/1.21.11)
|
||||||
|
|
@ -3,4 +3,7 @@ kotlin.code.style=official
|
||||||
# Signing
|
# Signing
|
||||||
signing.secretKeyRingFile=~/.gnupg/secring.gpg
|
signing.secretKeyRingFile=~/.gnupg/secring.gpg
|
||||||
|
|
||||||
kotlin.daemon.jvmargs=-Xmx8G
|
kotlin.daemon.jvmargs=-Xmx8G
|
||||||
|
|
||||||
|
# list of nms
|
||||||
|
subprojects.reobfnms=v1_17R1,v1_18R1,v1_18R2,v1_19R1,v1_19R2,v1_19R3,v1_20R1,v1_20R2,v1_20R3,v1_20R4,v1_21R1,v1_21R2,v1_21R3,v1_21R4,v1_21R5,v1_21R6,v1_21R7
|
||||||
|
|
@ -31,7 +31,8 @@ public class UpdateHandler {
|
||||||
new Version(1, 6, 7), PUpdate_1_6_7::handleUpdate,
|
new Version(1, 6, 7), PUpdate_1_6_7::handleUpdate,
|
||||||
new Version(1, 8, 0), PUpdate_1_8_0::handleUpdate,
|
new Version(1, 8, 0), PUpdate_1_8_0::handleUpdate,
|
||||||
new Version(1, 11, 0), PUpdate_1_11_0::handleUpdate,
|
new Version(1, 11, 0), PUpdate_1_11_0::handleUpdate,
|
||||||
new Version(1, 15, 5), PUpdate_1_15_5::handleUpdate
|
new Version(1, 15, 5), PUpdate_1_15_5::handleUpdate,
|
||||||
|
new Version(1, 15, 6), PUpdate_1_15_6::handleUpdate
|
||||||
);
|
);
|
||||||
|
|
||||||
private static final List<MCUpdate> mcUpdateMap = List.of(
|
private static final List<MCUpdate> mcUpdateMap = List.of(
|
||||||
|
|
@ -70,7 +71,7 @@ public class UpdateHandler {
|
||||||
|
|
||||||
boolean hadUpdate = false;
|
boolean hadUpdate = false;
|
||||||
for (MCUpdate mcUpdate : mcUpdateMap) {
|
for (MCUpdate mcUpdate : mcUpdateMap) {
|
||||||
hadUpdate |= mcUpdate.handleUpdate(current);
|
hadUpdate |= mcUpdate.handleUpdate(current, hadUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hadUpdate) {
|
if (hadUpdate) {
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ public abstract class MCUpdate {
|
||||||
this.version = version;
|
this.version = version;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean handleUpdate(Version current){
|
public boolean handleUpdate(Version current, boolean hadUpdate){
|
||||||
// Test if we are running in this update version or better
|
// Test if we are running in this update version or better
|
||||||
if(version.greaterThan(current))
|
if(version.greaterThan(current))
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -25,7 +25,9 @@ public abstract class MCUpdate {
|
||||||
if(this.version.lesserEqual(version)) return false;
|
if(this.version.lesserEqual(version)) return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
CustomAnvil.instance.getLogger().info("Updating config to support " + version +" ...");
|
if(!hadUpdate){
|
||||||
|
CustomAnvil.instance.getLogger().info("Updating config to support minecraft " + current +" ...");
|
||||||
|
}
|
||||||
doUpdate();
|
doUpdate();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ public class Update_1_21_11 extends MCUpdate{
|
||||||
var baseConfig = ConfigHolder.DEFAULT_CONFIG.getConfig();
|
var baseConfig = ConfigHolder.DEFAULT_CONFIG.getConfig();
|
||||||
var groupConfig = ConfigHolder.ITEM_GROUP_HOLDER.getConfig();
|
var groupConfig = ConfigHolder.ITEM_GROUP_HOLDER.getConfig();
|
||||||
var conflictConfig = ConfigHolder.CONFLICT_HOLDER.getConfig();
|
var conflictConfig = ConfigHolder.CONFLICT_HOLDER.getConfig();
|
||||||
|
var unitConfig = ConfigHolder.UNIT_REPAIR_HOLDER.getConfig();
|
||||||
|
|
||||||
// Create spear group
|
// Create spear group
|
||||||
groupConfig.set("spears.type", "include");
|
groupConfig.set("spears.type", "include");
|
||||||
|
|
@ -36,6 +37,28 @@ public class Update_1_21_11 extends MCUpdate{
|
||||||
addAbsentToList(conflictConfig, "restriction_knockback.notAffectedGroups", "spears");
|
addAbsentToList(conflictConfig, "restriction_knockback.notAffectedGroups", "spears");
|
||||||
addAbsentToList(conflictConfig, "restriction_fire_aspect.notAffectedGroups", "spears");
|
addAbsentToList(conflictConfig, "restriction_fire_aspect.notAffectedGroups", "spears");
|
||||||
|
|
||||||
|
// Unit repair for spears
|
||||||
|
unitConfig.set("gold_ingot.golden_spear", 0.25);
|
||||||
|
unitConfig.set("copper_ingot.copper_spear", 0.25);
|
||||||
|
unitConfig.set("iron_ingot.iron_spear", 0.25);
|
||||||
|
unitConfig.set("diamond.diamond_spear", 0.25);
|
||||||
|
unitConfig.set("netherite_ingot.netherite_spear", 0.25);
|
||||||
|
|
||||||
|
unitConfig.set("cobblestone.stone_spear", 0.25);
|
||||||
|
unitConfig.set("cobbled_deepslate.stone_spear", 0.25);
|
||||||
|
|
||||||
|
unitConfig.set("oak_planks.wooden_spear", 0.25);
|
||||||
|
unitConfig.set("spruce_planks.wooden_spear", 0.25);
|
||||||
|
unitConfig.set("birch_planks.wooden_spear", 0.25);
|
||||||
|
unitConfig.set("jungle_planks.wooden_spear", 0.25);
|
||||||
|
unitConfig.set("acacia_planks.wooden_spear", 0.25);
|
||||||
|
unitConfig.set("dark_oak_planks.wooden_spear", 0.25);
|
||||||
|
unitConfig.set("mangrove_planks.wooden_spear", 0.25);
|
||||||
|
unitConfig.set("cherry_planks.wooden_spear", 0.25);
|
||||||
|
unitConfig.set("bamboo_planks.wooden_spear", 0.25);
|
||||||
|
unitConfig.set("crimson_planks.wooden_spear", 0.25);
|
||||||
|
unitConfig.set("warped_planks.wooden_spear", 0.25);
|
||||||
|
|
||||||
// Create lunge enchant value and group
|
// Create lunge enchant value and group
|
||||||
baseConfig.set("enchant_limits.minecraft:lunge", 3);
|
baseConfig.set("enchant_limits.minecraft:lunge", 3);
|
||||||
baseConfig.set("enchant_values.minecraft:lunge.item", 2);
|
baseConfig.set("enchant_values.minecraft:lunge.item", 2);
|
||||||
|
|
@ -51,6 +74,7 @@ public class Update_1_21_11 extends MCUpdate{
|
||||||
ConfigHolder.DEFAULT_CONFIG.saveToDisk(true);
|
ConfigHolder.DEFAULT_CONFIG.saveToDisk(true);
|
||||||
ConfigHolder.ITEM_GROUP_HOLDER.saveToDisk(true);
|
ConfigHolder.ITEM_GROUP_HOLDER.saveToDisk(true);
|
||||||
ConfigHolder.CONFLICT_HOLDER.saveToDisk(true);
|
ConfigHolder.CONFLICT_HOLDER.saveToDisk(true);
|
||||||
|
ConfigHolder.UNIT_REPAIR_HOLDER.saveToDisk(true);
|
||||||
|
|
||||||
// imply reload of CONFLICT_HOLDER
|
// imply reload of CONFLICT_HOLDER
|
||||||
// We also do not need to reload base config as there is no object related to it.
|
// We also do not need to reload base config as there is no object related to it.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
package xyz.alexcrea.cuanvil.update.minecraft;
|
package xyz.alexcrea.cuanvil.update.minecraft;
|
||||||
|
|
||||||
import io.delilaheve.CustomAnvil;
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
import xyz.alexcrea.cuanvil.config.ConfigHolder;
|
import xyz.alexcrea.cuanvil.config.ConfigHolder;
|
||||||
import xyz.alexcrea.cuanvil.update.UpdateUtils;
|
import xyz.alexcrea.cuanvil.update.UpdateUtils;
|
||||||
import xyz.alexcrea.cuanvil.update.Version;
|
import xyz.alexcrea.cuanvil.update.Version;
|
||||||
|
|
@ -17,6 +17,7 @@ public class Update_1_21_9 extends MCUpdate{
|
||||||
protected void doUpdate() {
|
protected void doUpdate() {
|
||||||
var baseConfig = ConfigHolder.DEFAULT_CONFIG.getConfig();
|
var baseConfig = ConfigHolder.DEFAULT_CONFIG.getConfig();
|
||||||
var groupConfig = ConfigHolder.ITEM_GROUP_HOLDER.getConfig();
|
var groupConfig = ConfigHolder.ITEM_GROUP_HOLDER.getConfig();
|
||||||
|
var unitConfig = ConfigHolder.UNIT_REPAIR_HOLDER.getConfig();
|
||||||
|
|
||||||
// Add cooper items to groups
|
// Add cooper items to groups
|
||||||
addAbsentToList(groupConfig, "helmets.items", "copper_helmet");
|
addAbsentToList(groupConfig, "helmets.items", "copper_helmet");
|
||||||
|
|
@ -30,16 +31,34 @@ public class Update_1_21_9 extends MCUpdate{
|
||||||
addAbsentToList(groupConfig, "axes.items", "copper_axe");
|
addAbsentToList(groupConfig, "axes.items", "copper_axe");
|
||||||
addAbsentToList(groupConfig, "swords.items", "copper_sword");
|
addAbsentToList(groupConfig, "swords.items", "copper_sword");
|
||||||
|
|
||||||
|
// Add unit repair
|
||||||
|
addCopperUnitRepair(unitConfig);
|
||||||
|
|
||||||
// Set version string as current
|
// Set version string as current
|
||||||
baseConfig.set(UpdateUtils.MINECRAFT_VERSION_PATH, version.toString());
|
baseConfig.set(UpdateUtils.MINECRAFT_VERSION_PATH, version.toString());
|
||||||
|
|
||||||
// Save
|
// Save
|
||||||
ConfigHolder.DEFAULT_CONFIG.saveToDisk(true);
|
ConfigHolder.DEFAULT_CONFIG.saveToDisk(true);
|
||||||
ConfigHolder.ITEM_GROUP_HOLDER.saveToDisk(true);
|
ConfigHolder.ITEM_GROUP_HOLDER.saveToDisk(true);
|
||||||
|
ConfigHolder.UNIT_REPAIR_HOLDER.saveToDisk(true);
|
||||||
|
|
||||||
// imply reload of CONFLICT_HOLDER
|
// imply reload of CONFLICT_HOLDER
|
||||||
// We also do not need to reload base config as there is no object related to it.
|
// We also do not need to reload base config as there is no object related to it.
|
||||||
ConfigHolder.ITEM_GROUP_HOLDER.reload();
|
ConfigHolder.ITEM_GROUP_HOLDER.reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void addCopperUnitRepair(FileConfiguration unitConfig) {
|
||||||
|
// Add unit repair
|
||||||
|
unitConfig.set("copper_ingot.copper_helmet", 0.25);
|
||||||
|
unitConfig.set("copper_ingot.copper_chestplate", 0.25);
|
||||||
|
unitConfig.set("copper_ingot.copper_leggings", 0.25);
|
||||||
|
unitConfig.set("copper_ingot.copper_boots", 0.25);
|
||||||
|
|
||||||
|
unitConfig.set("copper_ingot.copper_pickaxe", 0.25);
|
||||||
|
unitConfig.set("copper_ingot.copper_shovel", 0.25);
|
||||||
|
unitConfig.set("copper_ingot.copper_hoe", 0.25);
|
||||||
|
unitConfig.set("copper_ingot.copper_axe", 0.25);
|
||||||
|
unitConfig.set("copper_ingot.copper_sword", 0.25);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
package xyz.alexcrea.cuanvil.update.plugin;
|
||||||
|
|
||||||
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
|
import xyz.alexcrea.cuanvil.config.ConfigHolder;
|
||||||
|
import xyz.alexcrea.cuanvil.update.UpdateUtils;
|
||||||
|
import xyz.alexcrea.cuanvil.update.Version;
|
||||||
|
import xyz.alexcrea.cuanvil.update.minecraft.Update_1_21_9;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
public class PUpdate_1_15_6 {
|
||||||
|
|
||||||
|
public static void handleUpdate(@Nonnull Set<ConfigHolder> toSave) {
|
||||||
|
// fix only needed for 1.21.9 and above
|
||||||
|
Version current = UpdateUtils.currentMinecraftVersion();
|
||||||
|
if (new Version(1, 21, 9).greaterThan(current)) return;
|
||||||
|
|
||||||
|
FileConfiguration unitConfig = ConfigHolder.UNIT_REPAIR_HOLDER.getConfig();
|
||||||
|
|
||||||
|
// Add unit repair
|
||||||
|
Update_1_21_9.addCopperUnitRepair(unitConfig);
|
||||||
|
|
||||||
|
toSave.add(ConfigHolder.UNIT_REPAIR_HOLDER);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,54 @@
|
||||||
|
package xyz.alexcrea.cuanvil.dependency
|
||||||
|
|
||||||
|
import xyz.alexcrea.cuanvil.update.UpdateUtils
|
||||||
|
|
||||||
|
object MinecraftVersionUtil {
|
||||||
|
|
||||||
|
val craftbukkitVersion: String?
|
||||||
|
get() {
|
||||||
|
val versionParts = UpdateUtils.currentMinecraftVersionArray()
|
||||||
|
if (versionParts[0] != 1) return null
|
||||||
|
|
||||||
|
return when (versionParts[1]) {
|
||||||
|
17 -> when (versionParts[2]) {
|
||||||
|
0, 1 -> "1_17R1"
|
||||||
|
else -> null
|
||||||
|
}
|
||||||
|
|
||||||
|
18 -> when (versionParts[2]) {
|
||||||
|
0, 1 -> "1_18R1"
|
||||||
|
2 -> "1_18R2"
|
||||||
|
else -> null
|
||||||
|
}
|
||||||
|
|
||||||
|
19 -> when (versionParts[2]) {
|
||||||
|
0, 1, 2 -> "1_19R1"
|
||||||
|
3 -> "1_19R2"
|
||||||
|
4 -> "1_19R3"
|
||||||
|
else -> null
|
||||||
|
}
|
||||||
|
|
||||||
|
20 -> when (versionParts[2]) {
|
||||||
|
0, 1 -> "1_20R1"
|
||||||
|
2 -> "1_20R2"
|
||||||
|
3, 4 -> "1_20R3"
|
||||||
|
5, 6 -> "1_20R4"
|
||||||
|
else -> null
|
||||||
|
}
|
||||||
|
|
||||||
|
21 -> when (versionParts[2]) {
|
||||||
|
0, 1 -> "1_21R1"
|
||||||
|
2, 3 -> "1_21R2"
|
||||||
|
4 -> "1_21R3"
|
||||||
|
5 -> "1_21R4"
|
||||||
|
6, 7, 8 -> "1_21R5"
|
||||||
|
9, 10 -> "1_21R6"
|
||||||
|
11 -> "1_21R7"
|
||||||
|
else -> null
|
||||||
|
}
|
||||||
|
|
||||||
|
else -> null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,61 @@
|
||||||
|
package xyz.alexcrea.cuanvil.dependency.gui
|
||||||
|
|
||||||
|
import org.bukkit.inventory.InventoryView
|
||||||
|
import java.lang.reflect.Method
|
||||||
|
|
||||||
|
class GenericExternGuiTester: ExternGuiTester {
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private const val ANVIL_CLASS_NAME = "org.bukkit.craftbukkit.inventory.view.CraftAnvilView"
|
||||||
|
private const val INV_CLASS_NAME = "org.bukkit.craftbukkit.inventory.CraftInventoryView"
|
||||||
|
private const val HANDLE_METHOD_NAME = "getHandle"
|
||||||
|
}
|
||||||
|
|
||||||
|
var testExist = false
|
||||||
|
var inTesting = false
|
||||||
|
|
||||||
|
var testedClass: String? = null
|
||||||
|
lateinit var getHandleMethod: Method
|
||||||
|
|
||||||
|
override fun getContainerClass(view: InventoryView): Class<Any>? {
|
||||||
|
// In case we are in a test environment
|
||||||
|
if(!testExist) testClassExist()
|
||||||
|
if(inTesting) return view.javaClass //TEMPORARY
|
||||||
|
|
||||||
|
if(!testedClass.contentEquals(view.javaClass.name))
|
||||||
|
return null
|
||||||
|
|
||||||
|
val container = getHandleMethod.invoke(view)
|
||||||
|
return container.javaClass
|
||||||
|
}
|
||||||
|
|
||||||
|
fun tryFromClass(className: String) {
|
||||||
|
val clazz = Class.forName(className)
|
||||||
|
testedClass = className
|
||||||
|
|
||||||
|
getHandleMethod = clazz.getMethod(HANDLE_METHOD_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun testClassExist() {
|
||||||
|
testExist = true
|
||||||
|
|
||||||
|
// We first try to get craft anvil interface,
|
||||||
|
// but is absent on old version so we try craft inventory view before
|
||||||
|
try {
|
||||||
|
tryFromClass(ANVIL_CLASS_NAME)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
catch (_: ClassNotFoundException) {}
|
||||||
|
catch (_: NoSuchMethodException) {}
|
||||||
|
|
||||||
|
try {
|
||||||
|
tryFromClass(INV_CLASS_NAME)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
catch (_: ClassNotFoundException) {}
|
||||||
|
catch (_: NoSuchMethodException) {}
|
||||||
|
|
||||||
|
inTesting = true
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -4,20 +4,12 @@ import xyz.alexcrea.cuanvil.update.UpdateUtils
|
||||||
|
|
||||||
object GuiTesterSelector {
|
object GuiTesterSelector {
|
||||||
|
|
||||||
val spigotVersionString: String?
|
val selectGuiTester: ExternGuiTester?
|
||||||
get() {
|
get() {
|
||||||
val versionParts = UpdateUtils.currentMinecraftVersionArray()
|
val versionParts = UpdateUtils.currentMinecraftVersionArray()
|
||||||
if (versionParts[0] != 1) return null
|
if (versionParts[0] != 1) return null
|
||||||
|
|
||||||
return when (versionParts[1]) {
|
return GenericExternGuiTester()
|
||||||
21 -> when (versionParts[2]) {
|
|
||||||
8 -> "1_21_R5"
|
|
||||||
9, 10 -> "1_21_R6"
|
|
||||||
else -> null
|
|
||||||
}
|
|
||||||
|
|
||||||
else -> null
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -213,7 +213,8 @@ class PrepareAnvilListener : Listener {
|
||||||
else if (useColor) it.displayName
|
else if (useColor) it.displayName
|
||||||
else ChatColor.stripColor(it.displayName)
|
else ChatColor.stripColor(it.displayName)
|
||||||
|
|
||||||
if (!displayName.contentEquals(renameText)) {
|
|
||||||
|
if (!displayName.contentEquals(renameText) && !(displayName == null && renameText == "")) {
|
||||||
it.setDisplayName(renameText)
|
it.setDisplayName(renameText)
|
||||||
resultItem.itemMeta = it
|
resultItem.itemMeta = it
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue