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.craftbukkit.inventory.view.CraftAnvilView
|
||||||
import org.bukkit.entity.HumanEntity
|
import org.bukkit.entity.HumanEntity
|
||||||
import org.bukkit.event.inventory.PrepareAnvilEvent
|
import org.bukkit.event.inventory.PrepareAnvilEvent
|
||||||
import org.bukkit.inventory.InventoryView
|
|
||||||
import org.bukkit.inventory.ItemStack
|
import org.bukkit.inventory.ItemStack
|
||||||
|
import org.bukkit.inventory.view.AnvilView
|
||||||
import org.bukkit.persistence.PersistentDataType
|
import org.bukkit.persistence.PersistentDataType
|
||||||
import org.bukkit.plugin.Plugin
|
import org.bukkit.plugin.Plugin
|
||||||
import java.util.*
|
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))
|
val defaultName = itemDefaultName(view.getItem(0))
|
||||||
if (defaultName == result) {
|
if (defaultName == result) {
|
||||||
setName(player, view, "", null)
|
setName(player, view, "", null)
|
||||||
|
|
@ -129,7 +129,7 @@ class AnvilRenameDialogImpl(
|
||||||
} else setName(player, view, result, result)
|
} 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 menu = (containerField.get(view) as AnvilMenu)
|
||||||
val isSameName = menu.itemName == name
|
val isSameName = menu.itemName == name
|
||||||
menu.itemName = rename
|
menu.itemName = rename
|
||||||
|
|
|
||||||
|
|
@ -2,17 +2,18 @@ package xyz.alexcrea.cuanvil.util
|
||||||
|
|
||||||
import io.papermc.paper.threadedregions.scheduler.ScheduledTask
|
import io.papermc.paper.threadedregions.scheduler.ScheduledTask
|
||||||
import org.bukkit.entity.HumanEntity
|
import org.bukkit.entity.HumanEntity
|
||||||
import org.bukkit.inventory.InventoryView
|
import org.bukkit.inventory.view.AnvilView
|
||||||
import org.bukkit.plugin.Plugin
|
import org.bukkit.plugin.Plugin
|
||||||
import xyz.alexcrea.cuanvil.dialog.AnvilRenameDialog
|
import xyz.alexcrea.cuanvil.dialog.AnvilRenameDialog
|
||||||
import java.util.HashMap
|
import java.util.HashMap
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
|
|
||||||
|
@Suppress("UnstableApiUsage")
|
||||||
object AnvilTitleUtil {
|
object AnvilTitleUtil {
|
||||||
|
|
||||||
private val runTaskMap = HashMap<UUID, ScheduledTask>()
|
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)
|
runTaskMap.remove(player.uniqueId)
|
||||||
if (view.title == name) return
|
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
|
// 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
|
// 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()
|
runTaskMap.remove(player.uniqueId)?.cancel()
|
||||||
|
|
||||||
val task = player.scheduler.runDelayed(
|
val task = player.scheduler.runDelayed(
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ import org.bukkit.Material.ENCHANTED_BOOK
|
||||||
import org.bukkit.inventory.ItemStack
|
import org.bukkit.inventory.ItemStack
|
||||||
import org.bukkit.inventory.meta.Damageable
|
import org.bukkit.inventory.meta.Damageable
|
||||||
import xyz.alexcrea.cuanvil.update.UpdateUtils
|
import xyz.alexcrea.cuanvil.update.UpdateUtils
|
||||||
import xyz.alexcrea.cuanvil.enchant.CAEnchantment
|
|
||||||
import xyz.alexcrea.cuanvil.util.MaterialUtil.customType
|
import xyz.alexcrea.cuanvil.util.MaterialUtil.customType
|
||||||
import kotlin.math.ceil
|
import kotlin.math.ceil
|
||||||
import kotlin.math.max
|
import kotlin.math.max
|
||||||
|
|
@ -49,7 +48,6 @@ object ItemUtil {
|
||||||
val secondDurability = maxDamage - secondDamage
|
val secondDurability = maxDamage - secondDamage
|
||||||
val combinedDurability = firstDurability + secondDurability
|
val combinedDurability = firstDurability + secondDurability
|
||||||
val newDurability = min(combinedDurability, maxDamage)
|
val newDurability = min(combinedDurability, maxDamage)
|
||||||
val maxDamage = if(it.hasMaxDamage()) it.maxDamage else Int.MAX_VALUE
|
|
||||||
|
|
||||||
meta.damage = min(maxDamage - newDurability, maxDamage)
|
meta.damage = min(maxDamage - newDurability, maxDamage)
|
||||||
this.itemMeta = meta
|
this.itemMeta = meta
|
||||||
|
|
|
||||||
|
|
@ -116,7 +116,7 @@ class EnchantExecutor : CASubCommand {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun firstEnchantment(name: String): CAEnchantment? {
|
private fun firstEnchantment(name: String): CAEnchantment? {
|
||||||
val enchants = EnchantmentApi.getListByName(name.lowercase())
|
val enchants = EnchantmentApi.getByName(name.lowercase())
|
||||||
if (!enchants.isEmpty())
|
if (!enchants.isEmpty())
|
||||||
return enchants.iterator().next()
|
return enchants.iterator().next()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -334,7 +334,7 @@ object DependencyManager {
|
||||||
private val prepareAnvilConstructor =
|
private val prepareAnvilConstructor =
|
||||||
PrepareAnvilEvent::class.java.constructors.first() as Constructor<PrepareAnvilEvent>
|
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)
|
return prepareAnvilConstructor.newInstance(view, result)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
package xyz.alexcrea.cuanvil.dependency.gui
|
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.MinecraftVersionUtil
|
||||||
import xyz.alexcrea.cuanvil.dependency.util.PlatformUtil
|
import xyz.alexcrea.cuanvil.dependency.util.PlatformUtil
|
||||||
import java.lang.reflect.Method
|
import java.lang.reflect.Method
|
||||||
|
|
||||||
|
@Suppress("UnstableApiUsage")
|
||||||
class GenericExternGuiTester {
|
class GenericExternGuiTester {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
@ -21,7 +22,7 @@ class GenericExternGuiTester {
|
||||||
var testedClass: String? = null
|
var testedClass: String? = null
|
||||||
lateinit var getHandleMethod: Method
|
lateinit var getHandleMethod: Method
|
||||||
|
|
||||||
private fun getContainerClass(view: InventoryView): Class<Any>? {
|
private fun getContainerClass(view: AnvilView): Class<Any>? {
|
||||||
if(!testedClass.contentEquals(view.javaClass.name))
|
if(!testedClass.contentEquals(view.javaClass.name))
|
||||||
return null
|
return null
|
||||||
|
|
||||||
|
|
@ -64,7 +65,7 @@ class GenericExternGuiTester {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Try if were in another plugin anvil inventory
|
// 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
|
// In case we are in a test environment
|
||||||
if(isInTest()) return false
|
if(isInTest()) return false
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,15 +2,17 @@ package xyz.alexcrea.cuanvil.dependency.plugins
|
||||||
|
|
||||||
import org.bukkit.event.Event
|
import org.bukkit.event.Event
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent
|
import org.bukkit.event.inventory.InventoryClickEvent
|
||||||
|
import org.bukkit.inventory.view.AnvilView
|
||||||
import org.bukkit.plugin.Plugin
|
import org.bukkit.plugin.Plugin
|
||||||
import xyz.alexcrea.cuanvil.dependency.DependencyManager
|
import xyz.alexcrea.cuanvil.dependency.DependencyManager
|
||||||
import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener.Companion.ANVIL_INPUT_LEFT
|
import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener.Companion.ANVIL_INPUT_LEFT
|
||||||
import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener.Companion.ANVIL_OUTPUT_SLOT
|
import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener.Companion.ANVIL_OUTPUT_SLOT
|
||||||
|
|
||||||
|
@Suppress("UnstableApiUsage")
|
||||||
class EnchantedBookDependency(plugin: Plugin) : GenericPluginDependency(plugin) {
|
class EnchantedBookDependency(plugin: Plugin) : GenericPluginDependency(plugin) {
|
||||||
|
|
||||||
override fun testAnvilResult(event: InventoryClickEvent): Boolean {
|
override fun testAnvilResult(event: InventoryClickEvent): Boolean {
|
||||||
val view = event.view
|
val view = event.view as? AnvilView ?: return false
|
||||||
val inv = event.inventory
|
val inv = event.inventory
|
||||||
|
|
||||||
//TODO use view here (v2)
|
//TODO use view here (v2)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue