Compare commits

..

No commits in common. "460114ac0159ed82679df93904ada3b302bdf4dd" and "0ab7abd6b422fba704b3505ae57bb03a3a5d868f" have entirely different histories.

32 changed files with 108 additions and 204 deletions

View file

@ -17,7 +17,7 @@ These plugins have compatibility handled by custom anvil. seek help on custom an
Also use ExcellentEnchant max enchant limit
- [EcoEnchant](https://www.spigotmc.org/resources/ecoenchants-%E2%AD%95-250-enchantments-%E2%9C%85-create-custom-enchants-%E2%9C%A8-essentials-cmi-support.79573/) by Auxilor:
Need to use /ca reload or a server restart to add newly added enchantment.
Need to use /anvilconfigreload or a server restart to add newly added enchantment.
Use EcoEnchant restriction system but new restriction can be added in custom anvil
- [Enchantment²](https://www.spigotmc.org/resources/enchants-squared-the-enchantsplus-rewrite-custom-enchantments-that-act-like-vanilla-ones.86747/) by Athlaeos:

View file

@ -22,7 +22,7 @@ plugins {
}
group = "xyz.alexcrea"
version = "1.17.7"
version = "1.17.6"
val isDevBuild = System.getenv("SMALL_COMMIT_HASH") != null
val isPreRelease = System.getenv("IS_GITHUB_PRERELEASE") == "true"

View file

@ -1,6 +1,6 @@
#
# 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 /ca reload after you changes !
# You can still manually edit here if you like to. but if you do, don't forget to /anvilconfigreload after you changes !
#
# What service of metric should custom anvil use

View file

@ -1,6 +1,6 @@
#
# 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 /ca reload after you changes !
# You can still manually edit here if you like to. but if you do, don't forget to /anvilconfigreload after you changes !
#
# material conflicts

View file

@ -1,6 +1,6 @@
#
# 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 /ca reload after you changes !
# 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.

View file

@ -1,6 +1,6 @@
#
# 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 /ca reload after you changes !
# 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

View file

@ -1,6 +1,6 @@
#
# 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 /ca reload after you changes !
# You can still manually edit here if you like to. but if you do, don't forget to /anvilconfigreload after you changes !
#
# What service of metric should custom anvil use
@ -154,6 +154,7 @@ enchant_limits:
minecraft:knockback: 2
minecraft:fire_aspect: 2
minecraft:looting: 3
minecraft:sweeping: 3
minecraft:sweeping_edge: 3
minecraft:efficiency: 5
minecraft:unbreaking: 3
@ -292,6 +293,9 @@ enchant_values:
minecraft:swift_sneak:
item: 8
book: 4
minecraft:sweeping:
item: 4
book: 2
minecraft:sweeping_edge:
item: 4
book: 2
@ -485,5 +489,5 @@ debug_log_verbose: false
# Whether to show inside the console or require to run /ca debug get
display_debug_in_console: false
configVersion: 1.17.7
configVersion: 1.15.5
lowMinecraftVersion: 1.21.11

View file

@ -1,6 +1,6 @@
#
# 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 /ca reload after you changes !
# You can still manually edit here if you like to. but if you do, don't forget to /anvilconfigreload after you changes !
#
# material conflicts
@ -270,6 +270,7 @@ restriction_soul_speed:
restriction_sweeping_edge:
enchantments:
- minecraft:sweeping
- minecraft:sweeping_edge
notAffectedGroups:
- enchanted_book

View file

@ -1,6 +1,6 @@
#
# 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 /ca reload after you changes !
# 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.

View file

@ -1,6 +1,6 @@
#
# 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 /ca reload after you changes !
# 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
@ -104,7 +104,7 @@ leather:
phantom_membrane:
elytra: 0.25
turtle_scute:
scute:
turtle_helmet: 0.25
oak_planks:

View file

@ -1,6 +1,6 @@
#
# 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 /ca reload after you changes !
# You can still manually edit here if you like to. but if you do, don't forget to /anvilconfigreload after you changes !
#
# What service of metric should custom anvil use
@ -152,6 +152,7 @@ enchant_limits:
minecraft:knockback: 2
minecraft:fire_aspect: 2
minecraft:looting: 3
minecraft:sweeping: 3
minecraft:sweeping_edge: 3
minecraft:efficiency: 5
minecraft:unbreaking: 3
@ -289,6 +290,9 @@ enchant_values:
minecraft:swift_sneak:
item: 8
book: 4
minecraft:sweeping:
item: 4
book: 2
minecraft:sweeping_edge:
item: 4
book: 2

View file

@ -1,6 +1,6 @@
#
# 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 /ca reload after you changes !
# You can still manually edit here if you like to. but if you do, don't forget to /anvilconfigreload after you changes !
#
# material conflicts
@ -267,6 +267,7 @@ restriction_soul_speed:
restriction_sweeping_edge:
enchantments:
- minecraft:sweeping
- minecraft:sweeping_edge
notAffectedGroups:
- enchanted_book

View file

@ -1,6 +1,6 @@
#
# 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 /ca reload after you changes !
# 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.

View file

@ -1,6 +1,6 @@
#
# 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 /ca reload after you changes !
# 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
@ -98,7 +98,7 @@ leather:
phantom_membrane:
elytra: 0.25
turtle_scute:
scute:
turtle_helmet: 0.25
oak_planks:

View file

@ -1,6 +1,6 @@
#
# 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 /ca reload after you changes !
# You can still manually edit here if you like to. but if you do, don't forget to /anvilconfigreload after you changes !
#
# What service of metric should custom anvil use
@ -152,6 +152,7 @@ enchant_limits:
minecraft:knockback: 2
minecraft:fire_aspect: 2
minecraft:looting: 3
minecraft:sweeping: 3
minecraft:sweeping_edge: 3
minecraft:efficiency: 5
minecraft:unbreaking: 3
@ -286,6 +287,9 @@ enchant_values:
minecraft:swift_sneak:
item: 8
book: 4
minecraft:sweeping:
item: 4
book: 2
minecraft:sweeping_edge:
item: 4
book: 2

View file

@ -1,6 +1,6 @@
#
# 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 /ca reload after you changes !
# You can still manually edit here if you like to. but if you do, don't forget to /anvilconfigreload after you changes !
#
# material conflicts
@ -157,10 +157,13 @@ restriction_soul_speed:
notAffectedGroups: [ enchanted_book, boots ]
restriction_sweeping_edge:
enchantments: [ minecraft: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 ]

View file

@ -1,6 +1,6 @@
#
# 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 /ca reload after you changes !
# 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.

View file

@ -1,6 +1,6 @@
#
# 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 /ca reload after you changes !
# 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
@ -98,7 +98,7 @@ leather:
phantom_membrane:
elytra: 0.25
turtle_scute:
scute:
turtle_helmet: 0.25
oak_planks:

View file

@ -285,14 +285,14 @@ public class EnchantCostSettingsGui extends IntSettingsGui {
*/
@Override
public int getConfiguredValue() {
return ConfigOptions.INSTANCE.enchantmentValue(enchantment, false, false);
return ConfigOptions.INSTANCE.enchantmentValue(enchantment, false);
}
/**
* @return The configured value for the enchant setting book value.
*/
public int getConfiguredBookValue() {
return ConfigOptions.INSTANCE.enchantmentValue(enchantment, false, true);
return ConfigOptions.INSTANCE.enchantmentValue(enchantment, true);
}
@Override

View file

@ -2,7 +2,10 @@ package xyz.alexcrea.cuanvil.update;
import io.delilaheve.CustomAnvil;
import xyz.alexcrea.cuanvil.config.ConfigHolder;
import xyz.alexcrea.cuanvil.update.minecraft.*;
import xyz.alexcrea.cuanvil.update.minecraft.MCUpdate;
import xyz.alexcrea.cuanvil.update.minecraft.Update_1_21;
import xyz.alexcrea.cuanvil.update.minecraft.Update_1_21_11;
import xyz.alexcrea.cuanvil.update.minecraft.Update_1_21_9;
import xyz.alexcrea.cuanvil.update.plugin.*;
import javax.annotation.Nonnull;
@ -29,12 +32,10 @@ public class UpdateHandler {
new Version(1, 8, 0), PUpdate_1_8_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, 6), PUpdate_1_15_6::handleUpdate,
new Version(1, 17, 7), PUpdate_1_17_7::handleUpdate
new Version(1, 15, 6), PUpdate_1_15_6::handleUpdate
);
private static final List<MCUpdate> mcUpdateMap = List.of(
new Update_1_20_5(),
new Update_1_21(),
new Update_1_21_9(),
new Update_1_21_11()

View file

@ -1,7 +1,6 @@
package xyz.alexcrea.cuanvil.update;
import org.bukkit.Bukkit;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import java.util.ArrayList;
@ -34,20 +33,4 @@ public class UpdateUtils {
}
public static boolean removeFromList(FileConfiguration config, String path, String toRemove) {
List<String> groups = new ArrayList<>(config.getStringList(path));
if (!groups.remove(toRemove)) return false;
config.set(path, groups);
return true;
}
public static void mergeSections(ConfigurationSection source, ConfigurationSection target) {
for (String key : source.getKeys(false)) {
if(target.contains(key)) continue;
target.set(key, source.get(key));
}
}
}

View file

@ -1,98 +0,0 @@
package xyz.alexcrea.cuanvil.update.minecraft;
import org.bukkit.configuration.file.FileConfiguration;
import org.jetbrains.annotations.NotNull;
import xyz.alexcrea.cuanvil.config.ConfigHolder;
import xyz.alexcrea.cuanvil.update.Version;
import java.util.HashSet;
import java.util.Set;
import static xyz.alexcrea.cuanvil.update.UpdateUtils.*;
public class Update_1_20_5 extends MCUpdate {
public Update_1_20_5() {
super(new Version(1, 20, 5));
}
@Override
protected void doUpdate() {
var tosave = new HashSet<ConfigHolder>();
updateName(tosave);
for (ConfigHolder holder : tosave) {
holder.saveToDisk(true);
}
}
private static String SWEEPING_ENCHANTS = "restriction_sweeping_edge.enchantments";
public static void updateName(@NotNull Set<ConfigHolder> tosave) {
var config = ConfigHolder.DEFAULT_CONFIG.getConfig();
var unitConfig = ConfigHolder.UNIT_REPAIR_HOLDER.getConfig();
var conflict = ConfigHolder.CONFLICT_HOLDER.getConfig();
// Rename sweeping to sweeping_edge
migrateEnchantLimit(config, "minecraft:sweeping");
migrateEnchantLimit(config, "sweeping");
migrateEnchantValues(config, "minecraft:sweeping");
migrateEnchantValues(config, "sweeping");
if (removeFromList(conflict, SWEEPING_ENCHANTS, "minecraft:sweeping"))
addAbsentToList(conflict, SWEEPING_ENCHANTS, "minecraft:sweeping_edge");
if (removeFromList(conflict, SWEEPING_ENCHANTS, "sweeping"))
addAbsentToList(conflict, SWEEPING_ENCHANTS, "minecraft:sweeping_edge");
// Rename scute to turtle_scute
migrateUnitRepair(unitConfig, "minecraft:scute");
migrateUnitRepair(unitConfig, "scute");
ConfigHolder.ITEM_GROUP_HOLDER.reload();
tosave.add(ConfigHolder.DEFAULT_CONFIG);
tosave.add(ConfigHolder.UNIT_REPAIR_HOLDER);
tosave.add(ConfigHolder.CONFLICT_HOLDER);
}
private static void migrateEnchantLimit(FileConfiguration config, String path) {
var finalPath = "enchant_limits." + path;
if (!config.isInt(finalPath)) return;
var value = config.getInt(finalPath);
config.set(finalPath, null);
if (!config.contains("enchant_limits.minecraft:sweeping_edge")) return;
if (!config.contains("enchant_limits.sweeping_edge")) return;
config.set("enchant_limits.minecraft:sweeping_edge", value);
}
private static void migrateEnchantValues(FileConfiguration config, String path) {
migrateEnchantValues(config, path, "item");
migrateEnchantValues(config, path, "book");
}
private static void migrateEnchantValues(FileConfiguration config, String path, String child) {
var finalPath = "enchant_values." + path + "." + child;
if (config.isInt(finalPath)) return;
var value = config.getInt(finalPath);
config.set(finalPath, null);
if (!config.contains("enchant_values.minecraft:sweeping_edge." + child)) return;
if (!config.contains("enchant_values.sweeping_edge." + child)) return;
config.set("enchant_values.minecraft:sweeping_edge." + child, value);
}
private static void migrateUnitRepair(FileConfiguration config, String path) {
var section = config.getConfigurationSection(path);
if (section == null) return;
config.set(path, null);
var turtle_scute = config.getConfigurationSection("minecraft:turtle_scute");
if (turtle_scute == null) config.set("minecraft:turtle_scute", section);
else mergeSections(section, turtle_scute);
}
}

View file

@ -1,21 +0,0 @@
package xyz.alexcrea.cuanvil.update.plugin;
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_20_5;
import javax.annotation.Nonnull;
import java.util.Set;
public class PUpdate_1_17_7 {
public static void handleUpdate(@Nonnull Set<ConfigHolder> toSave) {
// fix only needed for 1.20.5 and above
Version current = UpdateUtils.currentMinecraftVersion();
if (new Version(1, 20, 5).greaterThan(current)) return;
Update_1_20_5.updateName(toSave);
}
}

View file

@ -86,7 +86,6 @@ object ConfigOptions {
// Keys for specific enchantment values
private const val KEY_BOOK = "book"
private const val KEY_BOOK_ON_BOOK = "book_on_book"
private const val KEY_ITEM = "item"
// Debug flag
@ -579,15 +578,14 @@ object ConfigOptions {
*/
fun enchantmentValue(
enchantment: CAEnchantment,
isToBook: Boolean,
isFromBook: Boolean,
isFromBook: Boolean
): Int {
// Test namespace
var limit = enchantmentValue(enchantment.key.toString(), isToBook, isFromBook)
var limit = enchantmentValue(enchantment.key.toString(), isFromBook)
if (limit != null) return limit
// Test legacy (name only)
limit = enchantmentValue(enchantment.enchantmentName, isToBook, isFromBook)
limit = enchantmentValue(enchantment.enchantmentName, isFromBook)
if (limit != null) return limit
// get default (and test old legacy if present)
@ -601,22 +599,13 @@ object ConfigOptions {
*/
private fun enchantmentValue(
enchantmentName: String,
isToBook: Boolean,
isFromBook: Boolean,
isFromBook: Boolean
): Int? {
val typeKey = if (isFromBook) KEY_BOOK else KEY_ITEM
val path = "${ENCHANT_VALUES_ROOT}.${enchantmentName}.$typeKey"
val config = ConfigHolder.DEFAULT_CONFIG.config
if(isFromBook && isToBook) {
val specialPath = "${ENCHANT_VALUES_ROOT}.${enchantmentName}.$KEY_BOOK_ON_BOOK"
if(config.isInt(specialPath))
return config.getInt(specialPath)
.takeIf { it >= DEFAULT_ENCHANT_VALUE }
}
return config.getInt(path, DEFAULT_ENCHANT_VALUE - 1)
return CustomAnvil.instance
.config
.getInt(path, DEFAULT_ENCHANT_VALUE - 1)
.takeIf { it >= DEFAULT_ENCHANT_VALUE }
}
@ -624,9 +613,20 @@ object ConfigOptions {
* Get default value if enchantment do not exist on config
*/
private fun getDefaultValue(
enchantment: CAEnchantment,
enchantment: CAEnchantment, // compatibility with 1.20.5. TODO better update system
isFromBook: Boolean
): Int {
val enchantmentName = enchantment.key.toString()
if (enchantmentName == "minecraft:sweeping_edge") {
var limit = enchantmentValue("minecraft:sweeping", isFromBook)
if (limit != null) return limit
// legacy name
limit = enchantmentValue("sweeping", isFromBook)
if (limit != null) return limit
}
val rarity = enchantment.defaultRarity()
return if (isFromBook)
rarity.bookValue
@ -648,6 +648,15 @@ object ConfigOptions {
value = maxBeforeMergeDisabled(legacy)
if (value >= 0) return value
if (key == "minecraft:sweeping_edge") {
value = maxBeforeMergeDisabled("minecraft:sweeping")
if (value >= 0) return value
// legacy name of legacy enchantment name
value = maxBeforeMergeDisabled("sweeping")
if (value >= 0) return value
}
return DEFAULT_MAX_BEFORE_MERGE_DISABLED
}

View file

@ -25,7 +25,7 @@ class EditConfigExecutor: CASubCommand() {
sender.sendMessage("§eIt is may come in a future version.")
sender.sendMessage("")
sender.sendMessage("§eCurrently you need to edit manually the config or copy from another server (spigot or better)")
sender.sendMessage("§eThen /ca reload after config file is edited")
sender.sendMessage("§eThen /anvilconfigreload after config file is edited")
return false
}

View file

@ -39,6 +39,13 @@ class EnchantConflictManager {
// Default name for a joining group
const val DEFAULT_GROUP_NAME = "joinedGroup"
// 1.20.5 compatibility TODO better update system
private val SWEEPING_EDGE_ENCHANT = Collections.singletonList<CAEnchantment>(
CAEnchantment.getByKey(NamespacedKey.minecraft("sweeping_edge"))
?: CAEnchantment.getByKey(Enchantment.SWEEPING_EDGE.key)
)
}
lateinit var conflictList: ArrayList<EnchantConflictGroup>
@ -165,6 +172,14 @@ class EnchantConflictManager {
}
// Temporary solution for 1.20.5
when (enchantName) {
"minecraft:sweeping", "sweeping",
"minecraft:sweeping_edge", "sweeping_edge" -> {
return SWEEPING_EDGE_ENCHANT
}
}
return CAEnchantment.getListByName(enchantName)
}

View file

@ -23,7 +23,6 @@ import xyz.alexcrea.cuanvil.dependency.economy.EconomyManager
import xyz.alexcrea.cuanvil.group.ConflictType
import xyz.alexcrea.cuanvil.util.AnvilTitleUtil
import xyz.alexcrea.cuanvil.util.dialog.AnvilRenameDialogUtil
import kotlin.math.sqrt
object AnvilXpUtil {
@ -36,9 +35,8 @@ object AnvilXpUtil {
inventory: AnvilInventory,
view: InventoryView,
player: Player,
result: AnvilResult
) {
if (result.item == null) {
result: AnvilResult) {
if(result.item == null) {
onNoResult(player, view)
return
}
@ -248,8 +246,7 @@ object AnvilXpUtil {
fun getRightValues(left: ItemStack, right: ItemStack, result: ItemStack, cost: AnvilCost) {
// Calculate right value and illegal enchant penalty
val isToBook = left.isEnchantedBook()
val isFromBook = right.isEnchantedBook()
val rightIsFormBook = right.isEnchantedBook()
val rightEnchs = EnchantmentApi.getEnchantments(right)
val resultEnchs = EnchantmentApi.getEnchantments(result)
val resultEnchsKeys = HashMap(resultEnchs)
@ -277,21 +274,22 @@ object AnvilXpUtil {
// We know "enchantment.key in resultEnchs" true
val resultLevel = resultEnchs[enchantment.key]!!
val enchantmentMultiplier = ConfigOptions.enchantmentValue(enchantment.key, isFromBook, isToBook)
val enchantmentMultiplier = ConfigOptions.enchantmentValue(enchantment.key, rightIsFormBook)
val value = resultLevel * enchantmentMultiplier
CustomAnvil.log("Value for sacrifice item ${enchantment.key.enchantmentName} level ${enchantment.value} is $value ($resultLevel * $enchantmentMultiplier)")
rightValue += value
}
if (ConfigOptions.includeLeftEnchantmentForCost) {
if(ConfigOptions.includeLeftEnchantmentForCost) {
val leftIsFormBook = left.isEnchantedBook()
val leftEnchs = EnchantmentApi.getEnchantments(left)
for (enchantment in leftEnchs) {
// Do not process enchantment that are present on the sacrifice
if (rightEnchs.contains(enchantment.key)) continue
if(rightEnchs.contains(enchantment.key)) continue
val resultLevel = resultEnchs.getOrDefault(enchantment.key, 0)
val enchantmentMultiplier = ConfigOptions.enchantmentValue(enchantment.key, isFromBook, isToBook)
val enchantmentMultiplier = ConfigOptions.enchantmentValue(enchantment.key, leftIsFormBook)
val value = resultLevel * enchantmentMultiplier
CustomAnvil.log("Value for left item ${enchantment.key.enchantmentName} level ${enchantment.value} is $value ($resultLevel * $enchantmentMultiplier)")
leftValue += value
@ -314,15 +312,15 @@ object AnvilXpUtil {
*/
fun calculateLevelForXp(xp: Int): Int {
return when {
xp <= 352 -> (sqrt((xp + 9).toDouble()) - 3).toInt()
xp <= 352 -> (Math.sqrt((xp + 9).toDouble()) - 3).toInt()
xp <= 1507 -> {
val inner = (2.0 / 5.0) * (xp - 7839.0 / 40.0)
(81.0 / 10.0 + sqrt(inner)).toInt()
(81.0 / 10.0 + Math.sqrt(inner)).toInt()
}
else -> {
val inner = (2.0 / 9.0) * (xp - 54215.0 / 72.0)
(325.0 / 18.0 + sqrt(inner)).toInt()
(325.0 / 18.0 + Math.sqrt(inner)).toInt()
}
}
}

View file

@ -1,6 +1,6 @@
#
# It is recommended that you use /configanvil to edit most of these config.
# You can still manually edit here if you like to. but if you do, don't forget to /ca reload after you changes !
# You can still manually edit here if you like to. but if you do, don't forget to /anvilconfigreload after you changes !
#
# What service of metric should custom anvil use

View file

@ -1,6 +1,6 @@
#
# 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 /ca reload after you changes !
# You can still manually edit here if you like to. but if you do, don't forget to /anvilconfigreload after you changes !
#
# material conflicts

View file

@ -1,6 +1,6 @@
#
# 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 /ca reload after you changes !
# 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.

View file

@ -1,6 +1,6 @@
#
# 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 /ca reload after you changes !
# 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

View file

@ -49,8 +49,8 @@ public class DefaultConfigTests extends SharedCustomAnvilTest {
CAEnchantment enchantment = CAEnchantmentRegistry.getInstance().getByKey(key);
Assertions.assertNotNull(enchantment, "Enchantment was somehow not found");
int itemValue = ConfigOptions.INSTANCE.enchantmentValue(enchantment, false, false);
int bookValue = ConfigOptions.INSTANCE.enchantmentValue(enchantment, false, true);
int itemValue = ConfigOptions.INSTANCE.enchantmentValue(enchantment, false);
int bookValue = ConfigOptions.INSTANCE.enchantmentValue(enchantment, true);
EnchantmentRarity rarity = enchantment.defaultRarity();