mirror of
https://github.com/alexcrea/CustomAnvil.git
synced 2026-06-23 16:16:17 +02:00
fix lore edit price issue
This commit is contained in:
parent
b7691bf3ff
commit
74788b69af
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 io.delilaheve.util.ItemUtil.unitRepair
|
||||||
import org.bukkit.GameMode
|
import org.bukkit.GameMode
|
||||||
import org.bukkit.Material
|
import org.bukkit.Material
|
||||||
|
import org.bukkit.entity.HumanEntity
|
||||||
import org.bukkit.entity.Player
|
import org.bukkit.entity.Player
|
||||||
import org.bukkit.event.Event
|
import org.bukkit.event.Event
|
||||||
import org.bukkit.event.EventHandler
|
import org.bukkit.event.EventHandler
|
||||||
|
|
@ -310,6 +311,20 @@ class AnvilResultListener : Listener {
|
||||||
return repairCost
|
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(
|
private fun handleBookLoreEdit(
|
||||||
event: InventoryClickEvent,
|
event: InventoryClickEvent,
|
||||||
inventory: AnvilInventory,
|
inventory: AnvilInventory,
|
||||||
|
|
@ -341,7 +356,7 @@ class AnvilResultListener : Listener {
|
||||||
event, player, inventory,
|
event, player, inventory,
|
||||||
null, 0,
|
null, 0,
|
||||||
clearedBook, 0,
|
clearedBook, 0,
|
||||||
output, xpCost.get()
|
output, getFromLoreEditXpCost(xpCost, player, inventory)
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
if (output != AnvilLoreEditUtil.handleLoreRemoveByBook(player, leftItem, xpCost)) return false
|
if (output != AnvilLoreEditUtil.handleLoreRemoveByBook(player, leftItem, xpCost)) return false
|
||||||
|
|
@ -377,7 +392,7 @@ class AnvilResultListener : Listener {
|
||||||
event, player, inventory,
|
event, player, inventory,
|
||||||
null, 0,
|
null, 0,
|
||||||
rightCopy, 0,
|
rightCopy, 0,
|
||||||
output, xpCost.get()
|
output, getFromLoreEditXpCost(xpCost, player, inventory)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -415,14 +430,14 @@ class AnvilResultListener : Listener {
|
||||||
event, player, inventory,
|
event, player, inventory,
|
||||||
paperCopy, 0,
|
paperCopy, 0,
|
||||||
rightItem, 1,
|
rightItem, 1,
|
||||||
output, xpCost.get()
|
output, getFromLoreEditXpCost(xpCost, player, inventory)
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
extractAnvilResult(
|
extractAnvilResult(
|
||||||
event, player, inventory,
|
event, player, inventory,
|
||||||
null, 0,
|
null, 0,
|
||||||
paperCopy, 0,
|
paperCopy, 0,
|
||||||
output, xpCost.get()
|
output, getFromLoreEditXpCost(xpCost, player, inventory)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -461,14 +476,14 @@ class AnvilResultListener : Listener {
|
||||||
event, player, inventory,
|
event, player, inventory,
|
||||||
rightClone, 0,
|
rightClone, 0,
|
||||||
rightItem, 1,
|
rightItem, 1,
|
||||||
output, xpCost.get()
|
output, getFromLoreEditXpCost(xpCost, player, inventory)
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
extractAnvilResult(
|
extractAnvilResult(
|
||||||
event, player, inventory,
|
event, player, inventory,
|
||||||
null, 0,
|
null, 0,
|
||||||
rightClone, 0,
|
rightClone, 0,
|
||||||
output, xpCost.get()
|
output, getFromLoreEditXpCost(xpCost, player, inventory)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue