rebase on new update

This commit is contained in:
alexcrea 2026-06-12 19:58:46 +02:00
parent e2bbd66abf
commit 63a9b5b1c6
Signed by: alexcrea
GPG key ID: E59DF23EE2A2266C
7 changed files with 32 additions and 72 deletions

View file

@ -10,8 +10,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
@ -99,8 +97,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)
@ -115,7 +112,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)
}
@ -185,8 +182,7 @@ object AnvilMergeLogic {
}
fun doMerge(
view: InventoryView, //TODO use anvil view instead
inventory: AnvilInventory,
view: AnvilView,
player: Player,
first: ItemStack, second: ItemStack
): AnvilResult {
@ -224,7 +220,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)
}
@ -243,8 +239,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 {
@ -266,24 +261,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
@ -306,7 +299,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)
}

View file

@ -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
@ -239,19 +236,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
}
}

View file

@ -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)
val worked = extractAnvilResult(
event, player, view,
@ -123,7 +122,7 @@ class AnvilResultListener : Listener {
// Unit repair
val unitRepairResult = AnvilMergeLogic.testUnitRepair(
view, inventory, player,
view, player,
leftItem, rightItem
)
if (!unitRepairResult.isEmpty()) {
@ -185,7 +184,6 @@ class AnvilResultListener : Listener {
// Handle not creative middle click...
if (event.click != ClickType.MIDDLE &&
!handleCustomCraftClick(
event,
view,
player,
leftItem,
@ -203,7 +201,6 @@ class AnvilResultListener : Listener {
}
private fun handleCustomCraftClick(
event: InventoryClickEvent,
view: AnvilView, player: Player,
leftItem: ItemStack, rightItem: ItemStack?,
result: CustomCraftResult

View file

@ -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

View file

@ -8,6 +8,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
@ -199,7 +200,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",