From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: MiniDigger <admin@benndorf.dev>
Date: Sat, 6 Jun 2020 18:13:16 +0200
Subject: [PATCH] Support components in ItemMeta


diff --git a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
index 59e1987f0f0accef369cc29dbec464185eb7c99c..afdcc2d67d55f2f07c913816e1f5b290d1415357 100644
--- a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
+++ b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
@@ -5,6 +5,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import net.kyori.adventure.text.Component;
 import org.bukkit.NamespacedKey;
 import org.bukkit.Tag;
 import org.bukkit.attribute.Attribute;
@@ -75,6 +76,20 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
     @NotNull
     String getDisplayName();
 
+    // Paper start
+    /**
+     * Gets the display name that is set.
+     * <p>
+     * Plugins should check that hasDisplayName() returns <code>true</code>
+     * before calling this method.
+     *
+     * @return the display name that is set
+     * @deprecated use {@link #displayName()}
+     */
+    @NotNull
+    @Deprecated
+    net.md_5.bungee.api.chat.BaseComponent[] getDisplayNameComponent();
+    // Paper end
     /**
      * Sets the display name.
      *
@@ -84,6 +99,16 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
     @Deprecated // Paper
     void setDisplayName(@Nullable String name);
 
+    // Paper start
+    /**
+     * Sets the display name.
+     *
+     * @param component the name component to set
+     * @deprecated use {@link #displayName(Component)}
+     */
+    @Deprecated
+    void setDisplayNameComponent(@Nullable net.md_5.bungee.api.chat.BaseComponent[] component);
+    // Paper end
     /**
      * Checks for existence of an item name.
      * <br>
@@ -220,6 +245,19 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
     @Nullable
     List<String> getLore();
 
+    /**
+     * Gets the lore that is set.
+     * <p>
+     * Plugins should check if hasLore() returns <code>true</code> before
+     * calling this method.
+     *
+     * @return a list of lore that is set
+     * @deprecated use {@link #lore()}
+     */
+    @Nullable
+    @Deprecated
+    List<net.md_5.bungee.api.chat.BaseComponent[]> getLoreComponents();
+
     /**
      * Sets the lore for this item.
      * Removes lore when given null.
@@ -230,6 +268,16 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
     @Deprecated // Paper
     void setLore(@Nullable List<String> lore);
 
+    /**
+     * Sets the lore for this item.
+     * Removes lore when given null.
+     *
+     * @param lore the lore that will be set
+     * @deprecated use {@link #lore(List)}
+     */
+    @Deprecated
+    void setLoreComponents(@Nullable List<net.md_5.bungee.api.chat.BaseComponent[]> lore);
+
     /**
      * Checks for existence of custom model data.
      * <p>