mirror of
https://github.com/alexcrea/CustomAnvil.git
synced 2026-08-28 08:25:56 +02:00
update from v1.18.0
This commit is contained in:
parent
13892f73b8
commit
036f480113
7 changed files with 16 additions and 14 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue