1
mirror of https://github.com/CarmJos/EasyPlugin.git synced 2026-06-05 00:58:17 +08:00

Compare commits

..

3 Commits

Author SHA1 Message Date
carm 1d279a16a8 fix(gui): 修复GUI使用问题。 2024-02-08 02:16:54 +08:00
LSeng 17b7c23c54 feat(gui): 为GUI提供更多方法 (#10)
* feat(gui): 为GUI提供更多方法

* feat(gui): 修复翻页按钮消失的bug
2024-02-08 02:12:58 +08:00
carm 1b7f60fe43 feat(gui): 重构部分GUI代码,补全缺失的获取接口 2023-11-12 02:03:03 +08:00
22 changed files with 82 additions and 46 deletions
+1 -1
View File
@@ -6,7 +6,7 @@
<parent>
<groupId>cc.carm.lib</groupId>
<artifactId>easyplugin-parent</artifactId>
<version>1.5.10</version>
<version>1.5.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<properties>
@@ -22,29 +22,4 @@ public class ColorParseTest {
System.out.println(clear("&f测试&<#AAAAAA>清理颜色代码&<#111111> &&这样应该&(#666666)不被影响 &f。"));
}
@Test
public void formatReadTest() {
LinkedHashMap<Integer, String> formats = new LinkedHashMap<>();
String text = "&k&l &m&1我&k爱你爱你爱你&o吗?";
Matcher matcher = ColorParser.FORMAT_PATTERN.matcher(text);
while (matcher.find()) {
String code = matcher.group();
formats.put(matcher.start(), code);
text = matcher.replaceFirst("");
matcher.reset(text);
}
formats.forEach((index, code) -> System.out.println(index + " -> " + code));
String[] parts = text.split("");
StringBuilder builder = new StringBuilder();
for (int i = 0; i < parts.length; i++) {
String format = formats.get(i);
if (format != null) builder.append(ColorParser.parseBaseColor(format));
builder.append(parts[i]);
}
System.out.println(builder);
}
}
+1 -1
View File
@@ -6,7 +6,7 @@
<parent>
<groupId>cc.carm.lib</groupId>
<artifactId>easyplugin-parent</artifactId>
<version>1.5.10</version>
<version>1.5.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<properties>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.5.10</version>
<version>1.5.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.5.10</version>
<version>1.5.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -81,6 +81,19 @@ public class GUI {
}
}
/**
* 设置GUI上方(箱子部分)
* @param row 行数,1为第1行
* @param column 列数,1为第1列
* @param item GUIItem
*/
public void setItem(int row, int column, @NotNull GUIItem item){
if(row <= 0 || column <= 0) throw new IllegalArgumentException("行数和列数都不能小于等于零");
if(row > type.getLines()) throw new IllegalArgumentException("行数("+row+")大于GUI大小限制("+type.getLines()+")");
if(column > 9) throw new IllegalArgumentException("列数("+column+")不能大于9");
setItem(9*(row-1)+column-1, item);
}
public GUIItem getItem(int index) {
return this.items.get(index);
}
@@ -78,6 +78,14 @@ public class GUIItem {
}
public Set<GUIClickAction> getActions() {
return actions;
}
public Set<GUIClickAction> getActionsIgnoreActive() {
return actionsIgnoreActive;
}
public abstract static class GUIClickAction {
public abstract void run(ClickType type, Player player);
}
@@ -77,7 +77,14 @@ public class AutoPagedGUI extends CommonPagedGUI {
public void openGUI(Player user) {
if (previousPageSlot >= 0) {
if (hasPreviousPage()) {
setItem(previousPageSlot, new GUIItem(Optional.ofNullable(defaultPreviousPage).map(d -> d.apply(user)).orElse(previousPageUI)) {
ItemStack finalPreviousPageUI;
if(previousPageUI != null)
finalPreviousPageUI = previousPageUI;
else if (defaultPreviousPage != null)
finalPreviousPageUI = defaultPreviousPage.apply(user);
else
finalPreviousPageUI = null;
setItem(previousPageSlot, new GUIItem(finalPreviousPageUI) {
@Override
public void onClick(Player clicker, ClickType type) {
if (type == ClickType.RIGHT) {
@@ -95,7 +102,14 @@ public class AutoPagedGUI extends CommonPagedGUI {
if (nextPageSlot >= 0) {
if (hasNextPage()) {
setItem(nextPageSlot, new GUIItem(Optional.ofNullable(defaultNextPage).map(d -> d.apply(user)).orElse(nextPageUI)) {
ItemStack finalNextPageUI;
if(previousPageUI != null)
finalNextPageUI = nextPageUI;
else if (defaultNextPage != null)
finalNextPageUI = defaultNextPage.apply(user);
else
finalNextPageUI = null;
setItem(nextPageSlot, new GUIItem(finalNextPageUI) {
@Override
public void onClick(Player clicker, ClickType type) {
if (type == ClickType.RIGHT) {
@@ -80,8 +80,9 @@ public class CommonPagedGUI extends PagedGUI {
*
* @return 最后一页的页码
*/
@Override
public int getLastPageNumber() {
return (this.container.size() / range.length) + ((this.container.size() % range.length) == 0 ? 0 : 1);
return getLastPageNumber(range.length);
}
/**
@@ -100,6 +101,8 @@ public class CommonPagedGUI extends PagedGUI {
super.openGUI(player);
return;
}
if(page > getLastPageNumber())
page = getLastPageNumber();
List<GUIItem> list = new ArrayList<>();
int start = (page - 1) * range.length;
for (int i = start; i < start + range.length; i++) {
@@ -19,6 +19,29 @@ public abstract class PagedGUI extends GUI {
super(type, title);
}
public int setCurrentPage(int page) {
this.page = Math.max(1, page);
return this.page;
}
public int getCurrentPage() {
return page;
}
public int getLastPageNumber() {
return getLastPageNumber(getGUIType().getSize());
}
/**
* 得到最后一页的页码
*
* @return 最后一页的页码
*/
public int getLastPageNumber(int size) {
return (this.container.size() / size) + ((this.container.size() % size) == 0 ? 0 : 1);
}
public int addItem(@NotNull GUIItem i) {
container.add(i);
return container.size() - 1;
@@ -66,7 +89,7 @@ public abstract class PagedGUI extends GUI {
*/
public void goPreviousPage() {
if (hasPreviousPage()) {
page--;
this.page--;
this.onPageChange(this.page);
} else throw new IndexOutOfBoundsException();
}
@@ -77,7 +100,7 @@ public abstract class PagedGUI extends GUI {
*/
public void goNextPage() {
if (hasNextPage()) {
page++;
this.page++;
this.onPageChange(this.page);
} else throw new IndexOutOfBoundsException();
}
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.5.10</version>
<version>1.5.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -6,7 +6,7 @@
<parent>
<groupId>cc.carm.lib</groupId>
<artifactId>easyplugin-parent</artifactId>
<version>1.5.10</version>
<version>1.5.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<properties>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.5.10</version>
<version>1.5.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -6,7 +6,7 @@
<parent>
<groupId>cc.carm.lib</groupId>
<artifactId>easyplugin-parent</artifactId>
<version>1.5.10</version>
<version>1.5.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<properties>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.5.10</version>
<version>1.5.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.5.10</version>
<version>1.5.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.5.10</version>
<version>1.5.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.5.10</version>
<version>1.5.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.5.10</version>
<version>1.5.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.5.10</version>
<version>1.5.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.5.10</version>
<version>1.5.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -15,7 +15,7 @@
<groupId>cc.carm.lib</groupId>
<artifactId>easyplugin-parent</artifactId>
<packaging>pom</packaging>
<version>1.5.10</version>
<version>1.5.12</version>
<modules>
<module>base/color</module>
<module>base/utils</module>