diff --git a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/ButtonGroup.java b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/ButtonGroup.java index aa15ff6..07e59dc 100644 --- a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/ButtonGroup.java +++ b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/ButtonGroup.java @@ -14,7 +14,7 @@ public class ButtonGroup { @NotNull private final PageConfig config; @NotNull - private final HashMap buttonNameMap; + private final Map buttonNameMap; /** * 实例化这个按钮组 @@ -31,6 +31,12 @@ public class ButtonGroup { } } + public ButtonGroup(@NotNull String name, @NotNull PageConfig config, @NotNull Map buttonNameMap) { + this.name = name; + this.config = config; + this.buttonNameMap = buttonNameMap; + } + /** * 以图形字符来获取按钮名称 *

@@ -86,7 +92,7 @@ public class ButtonGroup { * @param buttonName 按钮名称 * @return 按钮在 GUI 中全部的索引位置 */ - public ArrayList getButtonAllIndex(String buttonName) { + public ArrayList getButtonAllIndex(@NotNull String buttonName) { ArrayList list = new ArrayList<>(); Character graphicKey = getGraphicKey(buttonName); @@ -113,7 +119,7 @@ public class ButtonGroup { * @return 图形中的字符 */ @Nullable - public Character getGraphicKey(String buttonName) { + public Character getGraphicKey(@NotNull String buttonName) { for (Map.Entry entry : buttonNameMap.entrySet()) { if (entry.getValue().equalsIgnoreCase(buttonName)) { return entry.getKey(); @@ -128,8 +134,8 @@ public class ButtonGroup { * @param graphicKey 图形字符 * @return 按钮物品 */ - public ItemStack getButton(char graphicKey) { - return getButton(getButtonName(graphicKey)); + public ItemStack getButtonItem(char graphicKey) { + return getButtonItem(getButtonName(graphicKey)); } /** @@ -138,7 +144,7 @@ public class ButtonGroup { * @param buttonName 按钮名称 * @return 按钮物品 */ - public ItemStack getButton(String buttonName) { + public ItemStack getButtonItem(@NotNull String buttonName) { ItemStack stack = config.getButtons().get(buttonName); if (stack != null) { stack = stack.clone(); @@ -162,7 +168,7 @@ public class ButtonGroup { * @return 把图形字符映射到按钮名称的表 */ @NotNull - public HashMap getButtonNameMap() { + public Map getButtonNameMap() { return buttonNameMap; } diff --git a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/PageConfig.java b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/PageConfig.java index 6ae1e79..149947b 100644 --- a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/PageConfig.java +++ b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/PageConfig.java @@ -82,7 +82,7 @@ public class PageConfig implements InventoryHolder { for (int j = 0; j < chars.length; j++) { char c = chars[j]; int index = i * 9 + j; - inventory.setItem(index, group.getButton(c)); + inventory.setItem(index, group.getButtonItem(c)); } } diff --git a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/handler/FixedPageHandler.java b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/handler/FixedPageHandler.java index c932401..f109d44 100644 --- a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/handler/FixedPageHandler.java +++ b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/handler/FixedPageHandler.java @@ -37,7 +37,7 @@ public class FixedPageHandler extends PageHandler { for (int j = 0; j < chars.length; j++) { char c = chars[j]; int index = i * 9 + j; - inventory.setItem(index, group.getButton(c)); + inventory.setItem(index, group.getButtonItem(c)); } } } diff --git a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/handler/PageableHandler.java b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/handler/PageableHandler.java index a485e92..8422d8d 100644 --- a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/handler/PageableHandler.java +++ b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/handler/PageableHandler.java @@ -107,17 +107,17 @@ public abstract class PageableHandler extends FixedPageHandler { elementSlot.put(buttonIndex, element); String buttonName = getElementButtonName(element); - ItemStack buttonItem = group.getButton(buttonName); + ItemStack buttonItem = group.getButtonItem(buttonName); initElementButton(buttonIndex, element, buttonItem, variables); } if (page == 0) { // 如果页面已在首页则撤掉上一页按钮 - inventory.setItem(group.getButtonIndex(previewButtonName), group.getButton(barrierButtonName)); + inventory.setItem(group.getButtonIndex(previewButtonName), group.getButtonItem(barrierButtonName)); } if (elements.size() <= (page + 1) * pageSize) { // 如果页面显示超出已有元素数量则撤掉下一页按钮 - inventory.setItem(group.getButtonIndex(nextButtonName), group.getButton(barrierButtonName)); + inventory.setItem(group.getButtonIndex(nextButtonName), group.getButtonItem(barrierButtonName)); } }