update from v1.18.0

This commit is contained in:
alexcrea 2026-07-10 15:50:50 +02:00
parent 13892f73b8
commit 036f480113
Signed by: alexcrea
GPG key ID: E59DF23EE2A2266C
7 changed files with 16 additions and 14 deletions

View file

@ -18,8 +18,8 @@ import org.bukkit.craftbukkit.inventory.CraftInventoryView
import org.bukkit.craftbukkit.inventory.view.CraftAnvilView
import org.bukkit.entity.HumanEntity
import org.bukkit.event.inventory.PrepareAnvilEvent
import org.bukkit.inventory.InventoryView
import org.bukkit.inventory.ItemStack
import org.bukkit.inventory.view.AnvilView
import org.bukkit.persistence.PersistentDataType
import org.bukkit.plugin.Plugin
import java.util.*
@ -121,7 +121,7 @@ class AnvilRenameDialogImpl(
}
}
private fun setResult(player: HumanEntity, view: InventoryView, result: String?) {
private fun setResult(player: HumanEntity, view: AnvilView, result: String?) {
val defaultName = itemDefaultName(view.getItem(0))
if (defaultName == result) {
setName(player, view, "", null)
@ -129,7 +129,7 @@ class AnvilRenameDialogImpl(
} else setName(player, view, result, result)
}
private fun setName(player: HumanEntity, view: InventoryView, name: String?, rename: String?) {
private fun setName(player: HumanEntity, view: AnvilView, name: String?, rename: String?) {
val menu = (containerField.get(view) as AnvilMenu)
val isSameName = menu.itemName == name
menu.itemName = rename

View file

@ -2,17 +2,18 @@ package xyz.alexcrea.cuanvil.util
import io.papermc.paper.threadedregions.scheduler.ScheduledTask
import org.bukkit.entity.HumanEntity
import org.bukkit.inventory.InventoryView
import org.bukkit.inventory.view.AnvilView
import org.bukkit.plugin.Plugin
import xyz.alexcrea.cuanvil.dialog.AnvilRenameDialog
import java.util.HashMap
import java.util.UUID
@Suppress("UnstableApiUsage")
object AnvilTitleUtil {
private val runTaskMap = HashMap<UUID, ScheduledTask>()
private fun actualRename(view: InventoryView, name: String, player: HumanEntity, anvilDialog: AnvilRenameDialog) {
private fun actualRename(view: AnvilView, name: String, player: HumanEntity, anvilDialog: AnvilRenameDialog) {
runTaskMap.remove(player.uniqueId)
if (view.title == name) return
@ -24,7 +25,7 @@ object AnvilTitleUtil {
// We don't want to rename instantly it is causing issue with rename text
// especially as it can "override" current ui when it is rename ui time but rename ui also need some delay
fun rename(view: InventoryView, name: String, player: HumanEntity, anvilDialog: AnvilRenameDialog, plugin: Plugin) {
fun rename(view: AnvilView, name: String, player: HumanEntity, anvilDialog: AnvilRenameDialog, plugin: Plugin) {
runTaskMap.remove(player.uniqueId)?.cancel()
val task = player.scheduler.runDelayed(

View file

@ -5,7 +5,6 @@ import org.bukkit.Material.ENCHANTED_BOOK
import org.bukkit.inventory.ItemStack
import org.bukkit.inventory.meta.Damageable
import xyz.alexcrea.cuanvil.update.UpdateUtils
import xyz.alexcrea.cuanvil.enchant.CAEnchantment
import xyz.alexcrea.cuanvil.util.MaterialUtil.customType
import kotlin.math.ceil
import kotlin.math.max
@ -49,7 +48,6 @@ object ItemUtil {
val secondDurability = maxDamage - secondDamage
val combinedDurability = firstDurability + secondDurability
val newDurability = min(combinedDurability, maxDamage)
val maxDamage = if(it.hasMaxDamage()) it.maxDamage else Int.MAX_VALUE
meta.damage = min(maxDamage - newDurability, maxDamage)
this.itemMeta = meta

View file

@ -116,7 +116,7 @@ class EnchantExecutor : CASubCommand {
}
private fun firstEnchantment(name: String): CAEnchantment? {
val enchants = EnchantmentApi.getListByName(name.lowercase())
val enchants = EnchantmentApi.getByName(name.lowercase())
if (!enchants.isEmpty())
return enchants.iterator().next()

View file

@ -334,7 +334,7 @@ object DependencyManager {
private val prepareAnvilConstructor =
PrepareAnvilEvent::class.java.constructors.first() as Constructor<PrepareAnvilEvent>
fun createFakeEvent(view: InventoryView, result: ItemStack?): PrepareAnvilEvent {
fun createFakeEvent(view: AnvilView, result: ItemStack?): PrepareAnvilEvent {
return prepareAnvilConstructor.newInstance(view, result)
}

View file

@ -1,10 +1,11 @@
package xyz.alexcrea.cuanvil.dependency.gui
import org.bukkit.inventory.InventoryView
import org.bukkit.inventory.view.AnvilView
import xyz.alexcrea.cuanvil.dependency.MinecraftVersionUtil
import xyz.alexcrea.cuanvil.dependency.util.PlatformUtil
import java.lang.reflect.Method
@Suppress("UnstableApiUsage")
class GenericExternGuiTester {
companion object {
@ -21,7 +22,7 @@ class GenericExternGuiTester {
var testedClass: String? = null
lateinit var getHandleMethod: Method
private fun getContainerClass(view: InventoryView): Class<Any>? {
private fun getContainerClass(view: AnvilView): Class<Any>? {
if(!testedClass.contentEquals(view.javaClass.name))
return null
@ -64,7 +65,7 @@ class GenericExternGuiTester {
}
// Try if were in another plugin anvil inventory
fun testIfGui(view: InventoryView): Boolean {
fun testIfGui(view: AnvilView): Boolean {
// In case we are in a test environment
if(isInTest()) return false

View file

@ -2,15 +2,17 @@ package xyz.alexcrea.cuanvil.dependency.plugins
import org.bukkit.event.Event
import org.bukkit.event.inventory.InventoryClickEvent
import org.bukkit.inventory.view.AnvilView
import org.bukkit.plugin.Plugin
import xyz.alexcrea.cuanvil.dependency.DependencyManager
import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener.Companion.ANVIL_INPUT_LEFT
import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener.Companion.ANVIL_OUTPUT_SLOT
@Suppress("UnstableApiUsage")
class EnchantedBookDependency(plugin: Plugin) : GenericPluginDependency(plugin) {
override fun testAnvilResult(event: InventoryClickEvent): Boolean {
val view = event.view
val view = event.view as? AnvilView ?: return false
val inv = event.inventory
//TODO use view here (v2)