From d4222546c0e433c3b216a22a453cbcec630a2730 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trysi=C5=84ski?= Date: Thu, 23 Jun 2022 19:33:44 +0200 Subject: [PATCH] GH-2015 Correct item parse (#2016) * Correct item parse, fixes #2015 * Handle improper item meta attribute --- .../dzikoysk/funnyguilds/shared/bukkit/ItemUtils.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugin/src/main/java/net/dzikoysk/funnyguilds/shared/bukkit/ItemUtils.java b/plugin/src/main/java/net/dzikoysk/funnyguilds/shared/bukkit/ItemUtils.java index 6d7538e15..462459313 100644 --- a/plugin/src/main/java/net/dzikoysk/funnyguilds/shared/bukkit/ItemUtils.java +++ b/plugin/src/main/java/net/dzikoysk/funnyguilds/shared/bukkit/ItemUtils.java @@ -115,7 +115,7 @@ public static ItemStack parseItem(String itemString) { }); Option data = Option.attempt(NumberFormatException.class, () -> Integer.parseInt(subtype)).onEmpty(() -> { - FunnyGuilds.getPluginLogger().parser("Unknown data: " + split[0]); + FunnyGuilds.getPluginLogger().parser("Unknown data: " + subtype); }); ItemBuilder item = new ItemBuilder(material, amount.orElseGet(1), data.orElseGet(0)); @@ -123,13 +123,18 @@ public static ItemStack parseItem(String itemString) { for (int index = 2; index < split.length; index++) { String[] itemAttributes = split[index].split(":", 2); + + if (itemAttributes.length != 2) { + FunnyGuilds.getPluginLogger().parser("Unknown item meta attribute: " + itemAttributes[0]); + } + String attributeName = itemAttributes[0]; String attributeValue = itemAttributes[1]; switch (attributeName.toLowerCase(Locale.ROOT)) { case "name": case "displayname": - item.setName(formatter.format(attributeName), true); + item.setName(formatter.format(attributeValue), true); continue; case "lore": List lore = PandaStream.of(attributeValue.split("#")).map(formatter::format).toList();