From 0c51af6b45fc8d9f7a66bed6591c2a92f16e112b Mon Sep 17 00:00:00 2001 From: Phoenix616 Date: Sat, 27 Mar 2021 21:07:18 +0100 Subject: [PATCH] Further improve item name shortening for alias system (#425) This will correctly shorten dashes and ignore the case when comparing name starts --- src/main/java/com/Acrobot/Breeze/Utils/MaterialUtil.java | 2 +- .../ChestShop/Listeners/Modules/ItemAliasModule.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/Acrobot/Breeze/Utils/MaterialUtil.java b/src/main/java/com/Acrobot/Breeze/Utils/MaterialUtil.java index dac7b97..770f7b9 100644 --- a/src/main/java/com/Acrobot/Breeze/Utils/MaterialUtil.java +++ b/src/main/java/com/Acrobot/Breeze/Utils/MaterialUtil.java @@ -252,7 +252,7 @@ public class MaterialUtil { if (width <= maxWidth) { return itemName; } - String[] itemParts = itemName.split(" "); + String[] itemParts = itemName.split("[ \\-]"); itemName = String.join("", itemParts); width = getMinecraftStringWidth(itemName); if (width <= maxWidth) { diff --git a/src/main/java/com/Acrobot/ChestShop/Listeners/Modules/ItemAliasModule.java b/src/main/java/com/Acrobot/ChestShop/Listeners/Modules/ItemAliasModule.java index c261448..223493a 100644 --- a/src/main/java/com/Acrobot/ChestShop/Listeners/Modules/ItemAliasModule.java +++ b/src/main/java/com/Acrobot/ChestShop/Listeners/Modules/ItemAliasModule.java @@ -71,14 +71,14 @@ public class ItemAliasModule implements Listener { public void onItemParse(ItemParseEvent event) { String code = aliases.inverse().get(event.getItemString()); if (code == null) { - String[] typeParts = event.getItemString().replaceAll("(? entry : aliases.entrySet()) { - if (entry.getValue().length() < length && entry.getValue().startsWith(event.getItemString())) { + if (entry.getValue().length() < length && entry.getValue().toUpperCase(Locale.ROOT).startsWith(event.getItemString().toUpperCase(Locale.ROOT))) { length = (short) entry.getValue().length(); code = entry.getKey(); } else if (typeParts.length > 1) { - String[] nameParts = entry.getValue().toUpperCase(Locale.ROOT).split("[ _]"); + String[] nameParts = entry.getValue().toUpperCase(Locale.ROOT).split("[ _\\-]"); if (typeParts.length == nameParts.length) { boolean matched = true; for (int i = 0; i < nameParts.length; i++) {