mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-26 20:46:59 +01:00
9f61759d90
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing CraftBukkit Changes: 560b65c4 #707, SPIGOT-5063, SPIGOT-5304, SPIGOT-5656, SPIGOT-3206, SPIGOT-5350, SPIGOT-5980, SPIGOT-4672: Persist the exact internal text representation where possible. Spigot Changes: ff439d1e Rebuild patches
96 lines
4.3 KiB
Diff
96 lines
4.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: MiniDigger <admin@minidigger.me>
|
|
Date: Sat, 6 Jun 2020 18:13:42 +0200
|
|
Subject: [PATCH] Support components in ItemMeta
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/IChatBaseComponent.java b/src/main/java/net/minecraft/server/IChatBaseComponent.java
|
|
index b8770066a86df25d6ba9ecf74d846c730d228c01..2eb45e8e05b1a2ad6b8fcb204f2d2b06f9861643 100644
|
|
--- a/src/main/java/net/minecraft/server/IChatBaseComponent.java
|
|
+++ b/src/main/java/net/minecraft/server/IChatBaseComponent.java
|
|
@@ -344,6 +344,7 @@ public interface IChatBaseComponent extends Message, IChatFormatted, Iterable<IC
|
|
return jsonobject;
|
|
}
|
|
|
|
+ public static String componentToJson(IChatBaseComponent ichatbasecomponent) { return a(ichatbasecomponent);} // Paper - OBFHELPER
|
|
public static String a(IChatBaseComponent ichatbasecomponent) {
|
|
return IChatBaseComponent.ChatSerializer.a.toJson(ichatbasecomponent);
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
|
index 99495722455b27ba90523c6d6dfd874aa2a8b3fe..c981568c252843c5be5ebdc2554cd172f5f4b16c 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
|
@@ -861,11 +861,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
|
|
return CraftChatMessage.fromJSONComponent(displayName);
|
|
}
|
|
|
|
+ // Paper start
|
|
+ @Override
|
|
+ public net.md_5.bungee.api.chat.BaseComponent[] getDisplayNameComponent() {
|
|
+ return net.md_5.bungee.chat.ComponentSerializer.parse(displayName);
|
|
+ }
|
|
+ // Paper end
|
|
@Override
|
|
public final void setDisplayName(String name) {
|
|
this.displayName = CraftChatMessage.fromStringOrNullToJSON(name);
|
|
}
|
|
|
|
+ // Paper start
|
|
+ @Override
|
|
+ public void setDisplayNameComponent(net.md_5.bungee.api.chat.BaseComponent[] component) {
|
|
+ this.displayName = net.md_5.bungee.chat.ComponentSerializer.toString(component);
|
|
+ }
|
|
+ // Paper end
|
|
@Override
|
|
public boolean hasDisplayName() {
|
|
return displayName != null;
|
|
@@ -996,6 +1008,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
|
|
return this.lore == null ? null : new ArrayList<String>(Lists.transform(this.lore, CraftChatMessage::fromJSONComponent));
|
|
}
|
|
|
|
+ // Paper start
|
|
+ @Override
|
|
+ public List<net.md_5.bungee.api.chat.BaseComponent[]> getLoreComponents() {
|
|
+ return this.lore == null ? null : new ArrayList<>(this.lore.stream().map(entry ->
|
|
+ net.md_5.bungee.chat.ComponentSerializer.parse(entry)
|
|
+ ).collect(java.util.stream.Collectors.toList()));
|
|
+ }
|
|
+ // Paper end
|
|
@Override
|
|
public void setLore(List<String> lore) {
|
|
if (lore == null || lore.isEmpty()) {
|
|
@@ -1010,6 +1030,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
|
|
}
|
|
}
|
|
|
|
+ // Paper start
|
|
+ @Override
|
|
+ public void setLoreComponents(List<net.md_5.bungee.api.chat.BaseComponent[]> lore) {
|
|
+ if (lore == null) {
|
|
+ this.lore = null;
|
|
+ } else {
|
|
+ if (this.lore == null) {
|
|
+ safelyAdd(lore, this.lore = new ArrayList<>(lore.size()), false);
|
|
+ } else {
|
|
+ this.lore.clear();
|
|
+ safelyAdd(lore, this.lore, false);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ // Paper end
|
|
@Override
|
|
public boolean hasCustomModelData() {
|
|
return customModelData != null;
|
|
@@ -1471,6 +1506,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
|
|
}
|
|
|
|
for (Object object : addFrom) {
|
|
+ // Paper start - support components
|
|
+ if(object instanceof net.md_5.bungee.api.chat.BaseComponent[]) {
|
|
+ addTo.add(net.md_5.bungee.chat.ComponentSerializer.toString((net.md_5.bungee.api.chat.BaseComponent[]) object));
|
|
+ } else
|
|
+ // Paper end
|
|
if (!(object instanceof String)) {
|
|
if (object != null) {
|
|
throw new IllegalArgumentException(addFrom + " cannot contain non-string " + object.getClass().getName());
|