mirror of
https://github.com/alexcrea/CustomAnvil.git
synced 2026-06-24 00:26:16 +02:00
fix lore edit price issue
This commit is contained in:
parent
ffd3baa886
commit
8d0d34ae77
1 changed files with 21 additions and 6 deletions
|
|
@ -6,6 +6,7 @@ import io.delilaheve.util.ItemUtil.canMergeWith
|
|||
import io.delilaheve.util.ItemUtil.unitRepair
|
||||
import org.bukkit.GameMode
|
||||
import org.bukkit.Material
|
||||
import org.bukkit.entity.HumanEntity
|
||||
import org.bukkit.entity.Player
|
||||
import org.bukkit.event.Event
|
||||
import org.bukkit.event.EventHandler
|
||||
|
|
@ -310,6 +311,20 @@ class AnvilResultListener : Listener {
|
|||
return repairCost
|
||||
}
|
||||
|
||||
private fun getFromLoreEditXpCost(
|
||||
xpCost: AtomicInteger,
|
||||
player: Player,
|
||||
inventory: AnvilInventory,
|
||||
): Int {
|
||||
if(GameMode.CREATIVE == player.gameMode) return 0
|
||||
|
||||
val repairCost = xpCost.get()
|
||||
return if ((inventory.maximumRepairCost <= repairCost)
|
||||
|| (player.level < repairCost)) Int.MIN_VALUE
|
||||
|
||||
else repairCost
|
||||
}
|
||||
|
||||
private fun handleBookLoreEdit(
|
||||
event: InventoryClickEvent,
|
||||
inventory: AnvilInventory,
|
||||
|
|
@ -341,7 +356,7 @@ class AnvilResultListener : Listener {
|
|||
event, player, inventory,
|
||||
null, 0,
|
||||
clearedBook, 0,
|
||||
output, xpCost.get()
|
||||
output, getFromLoreEditXpCost(xpCost, player, inventory)
|
||||
)
|
||||
} else {
|
||||
if (output != AnvilLoreEditUtil.handleLoreRemoveByBook(player, leftItem, xpCost)) return false
|
||||
|
|
@ -377,7 +392,7 @@ class AnvilResultListener : Listener {
|
|||
event, player, inventory,
|
||||
null, 0,
|
||||
rightCopy, 0,
|
||||
output, xpCost.get()
|
||||
output, getFromLoreEditXpCost(xpCost, player, inventory)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -415,14 +430,14 @@ class AnvilResultListener : Listener {
|
|||
event, player, inventory,
|
||||
paperCopy, 0,
|
||||
rightItem, 1,
|
||||
output, xpCost.get()
|
||||
output, getFromLoreEditXpCost(xpCost, player, inventory)
|
||||
)
|
||||
} else {
|
||||
extractAnvilResult(
|
||||
event, player, inventory,
|
||||
null, 0,
|
||||
paperCopy, 0,
|
||||
output, xpCost.get()
|
||||
output, getFromLoreEditXpCost(xpCost, player, inventory)
|
||||
)
|
||||
}
|
||||
} else {
|
||||
|
|
@ -461,14 +476,14 @@ class AnvilResultListener : Listener {
|
|||
event, player, inventory,
|
||||
rightClone, 0,
|
||||
rightItem, 1,
|
||||
output, xpCost.get()
|
||||
output, getFromLoreEditXpCost(xpCost, player, inventory)
|
||||
)
|
||||
} else {
|
||||
extractAnvilResult(
|
||||
event, player, inventory,
|
||||
null, 0,
|
||||
rightClone, 0,
|
||||
output, xpCost.get()
|
||||
output, getFromLoreEditXpCost(xpCost, player, inventory)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue