Merge branch 'v1.x.x' into v2.x.x-merging

# Conflicts:
#	src/main/kotlin/xyz/alexcrea/cuanvil/listener/PrepareAnvilListener.kt
This commit is contained in:
alexcrea 2025-12-30 02:04:27 +01:00
commit 48a2f4ccaf
Signed by: alexcrea
GPG key ID: E346CD16413450E3

View file

@ -40,6 +40,10 @@ class PrepareAnvilListener : Listener {
const val ANVIL_OUTPUT_SLOT = 2 const val ANVIL_OUTPUT_SLOT = 2
} }
private fun ItemStack?.isAir(): Boolean {
return this == null || this.isEmpty
}
/** /**
* Event handler logic for when an anvil contains items to be combined * Event handler logic for when an anvil contains items to be combined
*/ */
@ -79,10 +83,11 @@ class PrepareAnvilListener : Listener {
if (testCustomRecipe(event, player, first, second)) return if (testCustomRecipe(event, player, first, second)) return
// Test rename lonely item // Test rename lonely item
if (second == null) { if (second.isAir()) {
doRenaming(event, view, player, first) doRenaming(event, view, player, first)
return return
} }
second as ItemStack // not air we know it's not null
// Test for merge // Test for merge
if (first.canMergeWith(second)) { if (first.canMergeWith(second)) {
@ -102,7 +107,7 @@ class PrepareAnvilListener : Listener {
} }
private fun isImmutable(item: ItemStack?): Boolean { private fun isImmutable(item: ItemStack?): Boolean {
if (item == null) return false if (item.isAir()) return false
val meta = item.itemMeta val meta = item.itemMeta
return meta != null && return meta != null &&
@ -153,7 +158,7 @@ class PrepareAnvilListener : Listener {
if (finalResult == null) return false if (finalResult == null) return false
event.result = finalResult.result event.result = finalResult.result
if (finalResult.result == null) return false if (finalResult.result.isAir()) return false
AnvilXpUtil.setAnvilInvXp(event.view, player, finalResult.levelCost, true) AnvilXpUtil.setAnvilInvXp(event.view, player, finalResult.levelCost, true)
return true return true
@ -179,7 +184,7 @@ class PrepareAnvilListener : Listener {
if (finalResult == null) return if (finalResult == null) return
event.result = finalResult.result event.result = finalResult.result
if (finalResult.result == null) return if (finalResult.result.isAir()) return
AnvilXpUtil.setAnvilInvXp(event.view, player, finalResult.levelCost) AnvilXpUtil.setAnvilInvXp(event.view, player, finalResult.levelCost)
} }
@ -267,7 +272,7 @@ class PrepareAnvilListener : Listener {
if (finalResult == null) return if (finalResult == null) return
event.result = finalResult.result event.result = finalResult.result
if (finalResult.result == null) return if (finalResult.result.isAir()) return
AnvilXpUtil.setAnvilInvXp(view, player, finalResult.levelCost) AnvilXpUtil.setAnvilInvXp(view, player, finalResult.levelCost)
} }
@ -312,7 +317,7 @@ class PrepareAnvilListener : Listener {
if (finalResult == null) return false if (finalResult == null) return false
event.result = finalResult.result event.result = finalResult.result
if (finalResult.result == null) return false if (finalResult.result.isAir()) return false
AnvilXpUtil.setAnvilInvXp(view, player, finalResult.levelCost) AnvilXpUtil.setAnvilInvXp(view, player, finalResult.levelCost)
return true return true
@ -332,7 +337,7 @@ class PrepareAnvilListener : Listener {
result = AnvilLoreEditUtil.tryLoreEditByPaper(player, first, second, xpCost) result = AnvilLoreEditUtil.tryLoreEditByPaper(player, first, second, xpCost)
} }
if (result == null || first == result) { if (result.isAir() || first == result) {
CustomAnvil.log("lore edit, But input is same as output") CustomAnvil.log("lore edit, But input is same as output")
event.result = null event.result = null
return false return false