Compare commits

..

No commits in common. "9fc02034567931a279a6f863d81c9381a216929a" and "37cd603575d243784ea4b43369d1d3928d1c619e" have entirely different histories.

6 changed files with 34 additions and 35 deletions

View file

@ -37,7 +37,7 @@ object PlatformUtil {
// Lore // Lore
fun ItemMeta.componentLore(): MutableList<Component> { fun ItemMeta.componentLore(): MutableList<Component> {
val lore: List<Component>? val lore: List<Component>?
if (isPaper) { if(isPaper){
lore = this.lore() lore = this.lore()
} else { } else {
val legacyLores = this.lore ?: return ArrayList() val legacyLores = this.lore ?: return ArrayList()
@ -52,41 +52,49 @@ object PlatformUtil {
} }
fun ItemMeta.setComponentLore(lore: List<Component?>) { fun ItemMeta.setComponentLore(lore: List<Component?>) {
if (isPaper) { if(isPaper){
this.lore(lore) this.lore(lore)
} else { } else {
val legacyLore = ArrayList<String?>(lore.size) val legacyLore = ArrayList<String?>(lore.size)
for (component in lore) { for (component in lore) {
legacyLore.add( legacyLore.add(if(component == null) null
if (component == null) null else legacy_mm.serialize(component))
else legacy_mm.serialize(component)
)
} }
this.lore = legacyLore this.lore = legacyLore
} }
} }
fun ItemMeta.componentDisplayName(): Component? { // Display name
if (!this.hasDisplayName()) return null private val useCustomName = hasMethod(ItemStack::class.java, "customName")
return if (isPaper) { fun ItemMeta.componentDisplayName(): Component? {
this.displayName() if(useCustomName){
if(!this.hasCustomName()) return null
return this.customName()
}else if(isPaper){
if(!this.hasDisplayName()) return null
return this.displayName()
} else { } else {
legacy_mm.deserialize(this.displayName) if(!this.hasDisplayName()) return null
val legacy = this.displayName
return legacy_mm.deserialize(legacy)
} }
} }
fun ItemMeta.setComponentDisplayName(component: Component?, fallback: String? = null) { fun ItemMeta.setComponentDisplayName(component: Component?) {
if (isPaper) { if(useCustomName){
this.customName(component)
}else if(isPaper){
this.displayName(component) this.displayName(component)
} else { } else {
if (component == null) { if(component == null){
this.setDisplayName(null) this.setDisplayName(null)
return return
} }
val legacy = fallback ?: legacy_mm.serialize(component) val legacy = legacy_mm.serialize(component)
this.setDisplayName(legacy) this.setDisplayName(legacy)
} }
} }

View file

@ -136,7 +136,7 @@ open class CustomAnvil : JavaPlugin() {
override fun onEnable() { override fun onEnable() {
instance = this instance = this
try { try {
if(legacyCheck()) return legacyCheck()
} catch (e: Exception) { } catch (e: Exception) {
logger.log(Level.SEVERE, "error trying to check for legacy system", e) logger.log(Level.SEVERE, "error trying to check for legacy system", e)
MetricsUtil.trackError(e) MetricsUtil.trackError(e)
@ -202,15 +202,14 @@ open class CustomAnvil : JavaPlugin() {
} }
} }
private fun legacyCheck(): Boolean { private fun legacyCheck() {
val currentVersion = UpdateUtils.currentMinecraftVersion() val currentVersion = UpdateUtils.currentMinecraftVersion()
if (currentVersion.greaterEqual(Version(1, 21, 0)) if (currentVersion.greaterEqual(Version(1, 21, 0))
&& !DependencyManager.inTesting && !DependencyManager.inTesting) {
&& !"true".equals(System.getenv("CUSTOM_ANVIL_BYPASS_LEGACY_CHECK"), true)) {
logger.warning("You are running a Minecraft version above or equal to 1.21.0") logger.warning("You are running a Minecraft version above or equal to 1.21.0")
logger.warning("Please use CustomAnvil v2 instead if you wish to use the plugin with this version.") logger.warning("Please use CustomAnvil v2 instead if you wish to use the plugin with this version.")
Bukkit.getPluginManager().disablePlugin(this) Bukkit.getPluginManager().disablePlugin(this)
return true return
} }
// Disable old plugin name if exist // Disable old plugin name if exist
val potentialPlugin = Bukkit.getPluginManager().getPlugin("UnsafeEnchantsPlus") val potentialPlugin = Bukkit.getPluginManager().getPlugin("UnsafeEnchantsPlus")
@ -243,7 +242,6 @@ open class CustomAnvil : JavaPlugin() {
logger.warning("An update may be available: $latestVer") logger.warning("An update may be available: $latestVer")
} }
return false
} }
private fun registerListeners() { private fun registerListeners() {

View file

@ -75,6 +75,6 @@ object ItemUtil {
* The two items should either be the same type, or, the [other] is a book * The two items should either be the same type, or, the [other] is a book
*/ */
fun ItemStack.canMergeWith( fun ItemStack.canMergeWith(
other: ItemStack other: ItemStack?
) = customType == other.customType || (other.isEnchantedBook()) ) = (other != null) && (customType == other.customType || (other.isEnchantedBook()))
} }

View file

@ -6,7 +6,6 @@ import io.delilaheve.util.EnchantmentUtil.combineWith
import io.delilaheve.util.ItemUtil.isEnchantedBook import io.delilaheve.util.ItemUtil.isEnchantedBook
import io.delilaheve.util.ItemUtil.repairFrom import io.delilaheve.util.ItemUtil.repairFrom
import io.delilaheve.util.ItemUtil.unitRepair import io.delilaheve.util.ItemUtil.unitRepair
import net.kyori.adventure.text.Component
import org.bukkit.ChatColor import org.bukkit.ChatColor
import org.bukkit.Material import org.bukkit.Material
import org.bukkit.entity.HumanEntity import org.bukkit.entity.HumanEntity
@ -18,7 +17,6 @@ import org.bukkit.inventory.meta.ItemMeta
import org.bukkit.persistence.PersistentDataType import org.bukkit.persistence.PersistentDataType
import xyz.alexcrea.cuanvil.api.EnchantmentApi import xyz.alexcrea.cuanvil.api.EnchantmentApi
import xyz.alexcrea.cuanvil.dependency.DependencyManager import xyz.alexcrea.cuanvil.dependency.DependencyManager
import xyz.alexcrea.cuanvil.dependency.util.PlatformUtil.setComponentDisplayName
import xyz.alexcrea.cuanvil.dialog.AnvilRenameDialog import xyz.alexcrea.cuanvil.dialog.AnvilRenameDialog
import xyz.alexcrea.cuanvil.enchant.CAEnchantment import xyz.alexcrea.cuanvil.enchant.CAEnchantment
import xyz.alexcrea.cuanvil.recipe.AnvilCustomRecipe import xyz.alexcrea.cuanvil.recipe.AnvilCustomRecipe
@ -141,12 +139,11 @@ object AnvilMergeLogic {
private fun handleRename(resultItem: ItemStack, inventory: AnvilInventory, player: HumanEntity): Int { private fun handleRename(resultItem: ItemStack, inventory: AnvilInventory, player: HumanEntity): Int {
// Can be null // Can be null
var renameText = ChatColor.stripColor(inventory.renameText) var renameText = ChatColor.stripColor(inventory.renameText)
var component: Component? = null
var sumCost = 0 var sumCost = 0
var useColor = false var useColor = false
if (ConfigOptions.renameColorPossible && renameText != null) { if (ConfigOptions.renameColorPossible && renameText != null) {
component = AnvilColorUtil.handleColor( val component = AnvilColorUtil.handleColor(
renameText, renameText,
AnvilColorUtil.renamePermission(player) AnvilColorUtil.renamePermission(player)
) )
@ -173,11 +170,7 @@ object AnvilMergeLogic {
renameText == CasedStringUtil.snakeToUpperSpacedCase(resultItem.type.name.lowercase()) renameText == CasedStringUtil.snakeToUpperSpacedCase(resultItem.type.name.lowercase())
) )
) { ) {
if (component == null) it.setDisplayName(renameText)
component = if (renameText == null || renameText.isEmpty()) null
else Component.text(renameText)
it.setComponentDisplayName(component, renameText)
processDialogPCD(it, player) processDialogPCD(it, player)
resultItem.itemMeta = it resultItem.itemMeta = it

View file

@ -31,7 +31,6 @@ import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener.Companion.ANVIL_INPUT_
import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener.Companion.ANVIL_INPUT_RIGHT import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener.Companion.ANVIL_INPUT_RIGHT
import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener.Companion.ANVIL_OUTPUT_SLOT import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener.Companion.ANVIL_OUTPUT_SLOT
import xyz.alexcrea.cuanvil.util.CustomRecipeUtil import xyz.alexcrea.cuanvil.util.CustomRecipeUtil
import xyz.alexcrea.cuanvil.util.MaterialUtil.isAir
import xyz.alexcrea.cuanvil.util.MiniMessageUtil import xyz.alexcrea.cuanvil.util.MiniMessageUtil
import xyz.alexcrea.cuanvil.util.anvil.AnvilLoreEditUtil import xyz.alexcrea.cuanvil.util.anvil.AnvilLoreEditUtil
import xyz.alexcrea.cuanvil.util.anvil.AnvilXpUtil import xyz.alexcrea.cuanvil.util.anvil.AnvilXpUtil
@ -93,7 +92,7 @@ class AnvilResultListener : Listener {
} }
// Rename // Rename
if (rightItem.isAir) { if (rightItem == null) {
val result = AnvilMergeLogic.doRenaming(view, inventory, player, leftItem) val result = AnvilMergeLogic.doRenaming(view, inventory, player, leftItem)
if (result.isEmpty()) return if (result.isEmpty()) return
@ -107,7 +106,7 @@ class AnvilResultListener : Listener {
} }
// Merge // Merge
val canMerge = leftItem.canMergeWith(rightItem!!) val canMerge = leftItem.canMergeWith(rightItem)
if (canMerge) { if (canMerge) {
val result = AnvilMergeLogic.doMerge(view, inventory, player, leftItem, rightItem) val result = AnvilMergeLogic.doMerge(view, inventory, player, leftItem, rightItem)

View file

@ -1,5 +1,6 @@
package xyz.alexcrea.cuanvil.util package xyz.alexcrea.cuanvil.util
import org.bukkit.Bukkit
import org.bukkit.Material import org.bukkit.Material
import org.bukkit.NamespacedKey import org.bukkit.NamespacedKey
import org.bukkit.inventory.ItemStack import org.bukkit.inventory.ItemStack