Skip to content
This repository was archived by the owner on Mar 8, 2022. It is now read-only.

Commit 3bde3c7

Browse files
committed
prevent EncoderException
1 parent 2e915f0 commit 3bde3c7

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

src/main/java/cat/nyaa/utils/Message.java

+13-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
import org.bukkit.Bukkit;
88
import org.bukkit.entity.Player;
99
import org.bukkit.inventory.ItemStack;
10+
import org.bukkit.inventory.meta.BookMeta;
11+
12+
import java.util.ArrayList;
1013

1114
public final class Message {
1215
public final BaseComponent inner;
@@ -32,7 +35,16 @@ public Message append(ItemStack item, String display) {
3235
boolean rawName = !(item.hasItemMeta() && item.getItemMeta().hasDisplayName());
3336
BaseComponent nameComponent = rawName ? I16rItemName.getUnlocalizedName(item) : new TextComponent(item.getItemMeta().getDisplayName());
3437
BaseComponent result;
35-
String itemJson = ReflectionUtil.convertItemStackToJson(item);
38+
String itemJson = "";
39+
if (item.hasItemMeta() && item.getItemMeta() instanceof BookMeta) {
40+
ItemStack itemStack = item.clone();
41+
BookMeta meta = (BookMeta) itemStack.getItemMeta();
42+
meta.setPages(new ArrayList<String>());
43+
itemStack.setItemMeta(meta);
44+
itemJson = ReflectionUtil.convertItemStackToJson(itemStack);
45+
} else {
46+
itemJson = ReflectionUtil.convertItemStackToJson(item);
47+
}
3648
HoverEvent ev = new HoverEvent(HoverEvent.Action.SHOW_ITEM, new BaseComponent[]{new TextComponent(itemJson)});
3749
nameComponent.setHoverEvent(ev);
3850

0 commit comments

Comments
 (0)