From 20509faed4a8002119da2916e02debd079965343 Mon Sep 17 00:00:00 2001 From: alexcrea Date: Mon, 2 Mar 2026 19:44:24 +0100 Subject: [PATCH] add enchantment data --- .../cuanvil/command/DiagnosticExecutor.kt | 38 ++++++++++++++++--- 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/command/DiagnosticExecutor.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/command/DiagnosticExecutor.kt index e30b6fc..9459444 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/command/DiagnosticExecutor.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/command/DiagnosticExecutor.kt @@ -22,12 +22,12 @@ import org.bukkit.inventory.ItemStack import org.bukkit.inventory.meta.Damageable import org.bukkit.inventory.meta.EnchantmentStorageMeta import org.bukkit.plugin.Plugin -import org.bukkit.plugin.PluginManager import org.bukkit.plugin.RegisteredListener import xyz.alexcrea.cuanvil.dependency.DependencyManager import xyz.alexcrea.cuanvil.dependency.packet.NoPacketManager import xyz.alexcrea.cuanvil.dependency.packet.ProtocoLibWrapper import xyz.alexcrea.cuanvil.dependency.packet.versions.PaperPacketManager +import xyz.alexcrea.cuanvil.enchant.CAEnchantmentRegistry import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener import java.util.* import java.util.stream.Collectors @@ -42,8 +42,8 @@ class DiagnosticExecutor: CASubCommand() { enum class DiagParams(val value: String) { OS_PRIVACY("os_privacy"), PLUGIN_PRIVACY("plugin_privacy"), - NO_MERGE_TEST("no_merge_test"); - // TODO enchant list + NO_MERGE_TEST("no_merge_test"), + FULL_ENCHANTMENT_DATA("full_enchantment_data"), } private fun fetchParameters(args: Array): EnumSet { @@ -142,9 +142,13 @@ class DiagnosticExecutor: CASubCommand() { prepareAnvilListeners(stb) if(!params.contains(DiagParams.NO_MERGE_TEST)){ - if(sender is Player) { - testMerge(sender, stb) - } + if(sender is Player) testMerge(sender, stb) + } + + stb.append("\n\nEnchantments data:") + partialEnchantmentData(stb) + if(params.contains(DiagParams.FULL_ENCHANTMENT_DATA)){ + fullEnchantmentData(stb) } } @@ -291,4 +295,26 @@ class DiagnosticExecutor: CASubCommand() { player.closeInventory() } + private fun fullEnchantmentData(stb: StringBuilder) { + for (enchantment in CAEnchantmentRegistry.getInstance().values()) { + stb.append("\n- ").append(enchantment.key.toString()) + .append(" ").append(enchantment.name) + .append(" ").append(enchantment.defaultMaxLevel()) + } + } + + private fun partialEnchantmentData(stb: StringBuilder) { + val map = HashMap() + for (enchant in CAEnchantmentRegistry.getInstance().values()) { + map[enchant.key.namespace] = map.getOrDefault(enchant.key.namespace, 0) + 1 + } + + stb.append("\nNamespaces: ${ + map.entries.stream() + .map { (key, value) -> "$key ($value)" } + .reduce { a, b -> "$a, $b" }.get() + }") + + } + } \ No newline at end of file