refactor(bukkit): 重构部分代码

This commit is contained in:
2023-01-18 23:27:38 +08:00
parent 340e53d208
commit f6747bd05f
4 changed files with 18 additions and 12 deletions

View File

@@ -14,7 +14,7 @@ public class ButtonGroup {
@NotNull
private final PageConfig config;
@NotNull
private final HashMap<Character, String> buttonNameMap;
private final Map<Character, String> buttonNameMap;
/**
* 实例化这个按钮组
@@ -31,6 +31,12 @@ public class ButtonGroup {
}
}
public ButtonGroup(@NotNull String name, @NotNull PageConfig config, @NotNull Map<Character, String> buttonNameMap) {
this.name = name;
this.config = config;
this.buttonNameMap = buttonNameMap;
}
/**
* 以图形字符来获取按钮名称
* <p>
@@ -86,7 +92,7 @@ public class ButtonGroup {
* @param buttonName 按钮名称
* @return 按钮在 GUI 中全部的索引位置
*/
public ArrayList<Integer> getButtonAllIndex(String buttonName) {
public ArrayList<Integer> getButtonAllIndex(@NotNull String buttonName) {
ArrayList<Integer> 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<Character, String> 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<Character, String> getButtonNameMap() {
public Map<Character, String> getButtonNameMap() {
return buttonNameMap;
}

View File

@@ -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));
}
}

View File

@@ -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));
}
}
}

View File

@@ -107,17 +107,17 @@ public abstract class PageableHandler<E> 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));
}
}