diff --git a/nms/v1_20R4/src/main/kotlin/xyz/alexcrea/cuanvil/util/MaxDamageCheckerUtil.kt b/nms/v1_20R4/src/main/kotlin/xyz/alexcrea/cuanvil/util/MaxDamageCheckerUtil.kt deleted file mode 100644 index b3ce0ff..0000000 --- a/nms/v1_20R4/src/main/kotlin/xyz/alexcrea/cuanvil/util/MaxDamageCheckerUtil.kt +++ /dev/null @@ -1,18 +0,0 @@ -package xyz.alexcrea.cuanvil.util - -import org.bukkit.inventory.meta.Damageable - -// I LOVE support of old versions and needing to do modules like that -// That truly is my favorite activity -// TODO clean this one of legacy removal branch -object MaxDamageCheckerUtil { - - /** - * @return max damage or int max if not set - */ - fun getMaxDamage(meta: Damageable): Int { - if(!meta.hasMaxDamage()) return Integer.MAX_VALUE - return meta.maxDamage - } - -} \ No newline at end of file diff --git a/src/main/java/xyz/alexcrea/cuanvil/api/event/listener/CATreatAnvilResult2Event.java b/src/main/java/xyz/alexcrea/cuanvil/api/event/listener/CATreatAnvilResult2Event.java index 30c5380..5d534d9 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/api/event/listener/CATreatAnvilResult2Event.java +++ b/src/main/java/xyz/alexcrea/cuanvil/api/event/listener/CATreatAnvilResult2Event.java @@ -5,6 +5,7 @@ import org.bukkit.event.HandlerList; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryView; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.view.AnvilView; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -21,7 +22,7 @@ import xyz.alexcrea.cuanvil.anvil.AnvilUseType; *

* A null result will cancel this event */ -@SuppressWarnings("unused") +@SuppressWarnings({"unused", "UnstableApiUsage"}) public class CATreatAnvilResult2Event extends Event { private static final HandlerList HANDLERS = new HandlerList(); @@ -36,7 +37,7 @@ public class CATreatAnvilResult2Event extends Event { } @NotNull - private final InventoryView view; + private final AnvilView view; private final AnvilUseType useType; @@ -50,32 +51,26 @@ public class CATreatAnvilResult2Event extends Event { private final AnvilCost cost; - @ApiStatus.Internal public CATreatAnvilResult2Event( - @NotNull InventoryView view, - Inventory inv, + @NotNull AnvilView view, AnvilUseType useType, @Nullable ItemStack result, AnvilCost cost) { this.view = view; this.useType = useType; - this.left = inv.getItem(0); // TODO use view here - this.right = inv.getItem(1); + this.left = view.getItem(0); + this.right = view.getItem(1); this.result = result; this.cost = cost; } /** * Get the bukkit inventory view. - *

- * Temporarily marked as internal as it will get changed to anvil view on legacy removal - * so signature will change * * @return The inventory view of this event. */ - @ApiStatus.Internal - public @NotNull InventoryView getView() { + public @NotNull AnvilView getView() { return view; } diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/anvil/AnvilMergeLogic.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/anvil/AnvilMergeLogic.kt index ce9adf6..63ac334 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/anvil/AnvilMergeLogic.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/anvil/AnvilMergeLogic.kt @@ -12,8 +12,6 @@ import org.bukkit.ChatColor import org.bukkit.Material import org.bukkit.entity.HumanEntity import org.bukkit.entity.Player -import org.bukkit.inventory.AnvilInventory -import org.bukkit.inventory.InventoryView import org.bukkit.inventory.ItemStack import org.bukkit.inventory.meta.ItemMeta import org.bukkit.inventory.view.AnvilView @@ -100,8 +98,7 @@ object AnvilMergeLogic { } fun doRenaming( - view: InventoryView, //TODO use anvil view - inventory: AnvilInventory, + view: AnvilView, player: Player, first: ItemStack ): AnvilResult { val resultItem = DependencyManager.cloneItem(player, first) @@ -116,7 +113,7 @@ object AnvilMergeLogic { cost.workPenalty = AnvilXpUtil.calculatePenalty(first, null, resultItem, AnvilUseType.RENAME_ONLY) val result = - DependencyManager.tryTreatAnvilResult(view, inventory, player, resultItem, AnvilUseType.RENAME_ONLY, cost) + DependencyManager.tryTreatAnvilResult(view, player, resultItem, AnvilUseType.RENAME_ONLY, cost) return AnvilResult(result, cost) } @@ -186,8 +183,7 @@ object AnvilMergeLogic { } fun doMerge( - view: InventoryView, //TODO use anvil view instead - inventory: AnvilInventory, + view: AnvilView, player: Player, first: ItemStack, second: ItemStack ): AnvilResult { @@ -222,7 +218,7 @@ object AnvilMergeLogic { cost.rename = handleRename(resultItem, view, player) val result = - DependencyManager.tryTreatAnvilResult(view, inventory, player, resultItem, AnvilUseType.MERGE, cost) + DependencyManager.tryTreatAnvilResult(view, player, resultItem, AnvilUseType.MERGE, cost) return AnvilResult(result, cost) } @@ -241,8 +237,7 @@ object AnvilMergeLogic { // return true if a custom recipe exist with these ingredients fun testCustomRecipe( - view: InventoryView, //TODO use anvil view instead - inventory: AnvilInventory, + view: AnvilView, player: Player, first: ItemStack, second: ItemStack? ): CustomCraftResult { @@ -264,24 +259,22 @@ object AnvilMergeLogic { else AnvilXpUtil.calculateLevelForXp(xpCost) val result = - DependencyManager.tryTreatAnvilResult(view, inventory, player, resultItem, AnvilUseType.CUSTOM_CRAFT, cost) + DependencyManager.tryTreatAnvilResult(view, player, resultItem, AnvilUseType.CUSTOM_CRAFT, cost) return CustomCraftResult(result, cost, amount, recipe) } fun testUnitRepair( - view: InventoryView, //TODO use anvil view - inventory: AnvilInventory, + view: AnvilView, player: Player, first: ItemStack, second: ItemStack ): UnitRepairResult { val unitRepairAmount = first.getRepair(second) ?: return UnitRepairResult.EMPTY - return testUnitRepair(view, inventory, player, first, second, unitRepairAmount) + return testUnitRepair(view, player, first, second, unitRepairAmount) } fun testUnitRepair( - view: InventoryView, //TODO use anvil view instead - inventory: AnvilInventory, + view: AnvilView, player: Player, first: ItemStack, second: ItemStack, unitRepairAmount: Double @@ -304,7 +297,7 @@ object AnvilMergeLogic { } val result = - DependencyManager.tryTreatAnvilResult(view, inventory, player, resultItem, AnvilUseType.UNIT_REPAIR, cost) + DependencyManager.tryTreatAnvilResult(view, player, resultItem, AnvilUseType.UNIT_REPAIR, cost) return UnitRepairResult(result, cost, repairAmount) } diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt index 3139fc5..3558bcf 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt @@ -9,9 +9,6 @@ import org.bukkit.entity.HumanEntity import org.bukkit.entity.Player import org.bukkit.event.inventory.InventoryClickEvent import org.bukkit.event.inventory.PrepareAnvilEvent -import org.bukkit.inventory.AnvilInventory -import org.bukkit.inventory.Inventory -import org.bukkit.inventory.InventoryView import org.bukkit.inventory.ItemStack import xyz.alexcrea.cuanvil.anvil.AnvilCost import org.bukkit.inventory.view.AnvilView @@ -234,19 +231,18 @@ object DependencyManager { // Return null if there was an issue fun tryTreatAnvilResult( - view: InventoryView, - inventory: Inventory, // TODO REMOVE, use view instead on legacy removal + view: AnvilView, player: HumanEntity, result: ItemStack, useType: AnvilUseType, cost: AnvilCost ): ItemStack? { - val treatEvent = CATreatAnvilResult2Event(view, inventory, useType, result, cost) + val treatEvent = CATreatAnvilResult2Event(view, useType, result, cost) try { unsafeTryTreatAnvilResult(treatEvent) return treatEvent.result } catch (e: Exception) { - logExceptionAndClear(player, inventory, e) + logExceptionAndClear(view, e) return null } } diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/listener/AnvilResultListener.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/listener/AnvilResultListener.kt index 7ff3a03..99ff8ff 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/listener/AnvilResultListener.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/listener/AnvilResultListener.kt @@ -52,7 +52,6 @@ class AnvilResultListener : Listener { fun anvilExtractionCheck(event: InventoryClickEvent) { val player = event.whoClicked as? Player ?: return val view = event.view as? AnvilView ?: return - val view = event.view if (event.rawSlot != ANVIL_OUTPUT_SLOT) { return @@ -74,7 +73,7 @@ class AnvilResultListener : Listener { } // Test custom recipe - val customRecipeResult = AnvilMergeLogic.testCustomRecipe(view, inventory, player, leftItem, rightItem) + val customRecipeResult = AnvilMergeLogic.testCustomRecipe(view, player, leftItem, rightItem) if (!customRecipeResult.isEmpty()) { onCustomCraft( event, player, view, @@ -90,7 +89,7 @@ class AnvilResultListener : Listener { // Rename if (rightItem == null) { - val result = AnvilMergeLogic.doRenaming(view, inventory, player, leftItem) + val result = AnvilMergeLogic.doRenaming(view, player, leftItem) if (result.isEmpty()) return extractAnvilResult( @@ -105,7 +104,7 @@ class AnvilResultListener : Listener { // Merge val canMerge = leftItem.canMergeWith(rightItem) if (canMerge) { - val result = AnvilMergeLogic.doMerge(view, inventory, player, leftItem, rightItem) + val result = AnvilMergeLogic.doMerge(view, player, leftItem, rightItem) extractAnvilResult( event, player, view, @@ -118,7 +117,7 @@ class AnvilResultListener : Listener { // Unit repair val unitRepairResult = AnvilMergeLogic.testUnitRepair( - view, inventory, player, + view, player, leftItem, rightItem ) if (!unitRepairResult.isEmpty()) { @@ -180,7 +179,6 @@ class AnvilResultListener : Listener { // Handle not creative middle click... if (event.click != ClickType.MIDDLE && !handleCustomCraftClick( - event, view, player, leftItem, @@ -198,7 +196,6 @@ class AnvilResultListener : Listener { } private fun handleCustomCraftClick( - event: InventoryClickEvent, view: AnvilView, player: Player, leftItem: ItemStack, rightItem: ItemStack?, result: CustomCraftResult diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/listener/PrepareAnvilListener.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/listener/PrepareAnvilListener.kt index 4207503..9668297 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/listener/PrepareAnvilListener.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/listener/PrepareAnvilListener.kt @@ -9,8 +9,6 @@ import org.bukkit.event.EventHandler import org.bukkit.event.EventPriority import org.bukkit.event.Listener import org.bukkit.event.inventory.PrepareAnvilEvent -import org.bukkit.inventory.AnvilInventory -import org.bukkit.inventory.InventoryView import org.bukkit.inventory.ItemStack import org.bukkit.inventory.meta.EnchantmentStorageMeta import org.bukkit.inventory.meta.ItemMeta @@ -92,13 +90,12 @@ class PrepareAnvilListener : Listener { if (!player.hasPermission(CustomAnvil.affectedByPluginPermission)) return - val result = getResult(view, inventory, player, first, second) + val result = getResult(view, player, first, second) applyResult(event, player, result) } fun getResult( - view: InventoryView, //TODO use anvil view - inventory: AnvilInventory, + view: AnvilView, player: Player, first: ItemStack?, second: ItemStack? ): AnvilResult { @@ -106,7 +103,7 @@ class PrepareAnvilListener : Listener { return AnvilResult.EMPTY // Test custom recipe - var result: AnvilResult = testCustomRecipe(view, inventory, player, first, second) + var result: AnvilResult = testCustomRecipe(view, player, first, second) if (!result.isEmpty()) return result @@ -114,14 +111,14 @@ class PrepareAnvilListener : Listener { val shouldTryRename = second.isAir CustomAnvil.verboseLog("checking air in main logic: $shouldTryRename") if (shouldTryRename) - return doRenaming(view, inventory, player, first) + return doRenaming(view, player, first) // Test for merge if (first.canMergeWith(second!!)) - return doMerge(view, inventory, player, first, second) + return doMerge(view, player, first, second) // Test for unit repair - result = testUnitRepair(view, inventory, player, first, second) + result = testUnitRepair(view, player, first, second) if (!result.isEmpty()) return result diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/util/anvil/AnvilXpUtil.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/util/anvil/AnvilXpUtil.kt index a0e9e05..d863981 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/util/anvil/AnvilXpUtil.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/util/anvil/AnvilXpUtil.kt @@ -9,6 +9,7 @@ import org.bukkit.GameMode import org.bukkit.NamespacedKey import org.bukkit.entity.HumanEntity import org.bukkit.entity.Player +import org.bukkit.inventory.AnvilInventory import org.bukkit.inventory.InventoryView import org.bukkit.inventory.ItemStack import org.bukkit.inventory.meta.Repairable @@ -180,7 +181,7 @@ object AnvilXpUtil { return resultSum } - fun onNoResult(player: HumanEntity, view: InventoryView) { + fun onNoResult(player: HumanEntity, view: AnvilView) { if (ConfigOptions.shouldUseMoney(player)) AnvilTitleUtil.rename( view, "Repair & Name",