mirror of
https://github.com/alexcrea/CustomAnvil.git
synced 2026-06-23 16:16:17 +02:00
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:
commit
48a2f4ccaf
1 changed files with 12 additions and 7 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue