From 313c420af8ffcf6b568fa63a3e461fdf3379fc46 Mon Sep 17 00:00:00 2001
From: "version-bump[github-action]"
<41898282+version-bump[github-action]@users.noreply.github.com>
Date: Thu, 13 Mar 2025 21:06:29 +0000
Subject: [PATCH 01/17] Bump version from 5.0.14 to 5.0.14-SNAPSHOT0
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index fadabde0..dfe4bd94 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
plugily.projects
buildbattle
- 5.0.14
+ 5.0.14-SNAPSHOT0
BuildBattle
From d1230e197167019337e87c25b814a329d0300e4b Mon Sep 17 00:00:00 2001
From: Tigerpanzer_02 <37453987+Tigerpanzer02@users.noreply.github.com>
Date: Mon, 24 Mar 2025 20:47:12 +0100
Subject: [PATCH 02/17] Allowing by default 20 places placeholder for summary
list
---
.../projects/buildbattle/boot/PlaceholderInitializer.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/main/java/plugily/projects/buildbattle/boot/PlaceholderInitializer.java b/src/main/java/plugily/projects/buildbattle/boot/PlaceholderInitializer.java
index 1f3e4dcd..f06e5a84 100644
--- a/src/main/java/plugily/projects/buildbattle/boot/PlaceholderInitializer.java
+++ b/src/main/java/plugily/projects/buildbattle/boot/PlaceholderInitializer.java
@@ -447,8 +447,8 @@ private String getSummary(IPluginArena arena) {
return null;
}
int places = pluginArena.getPlotManager().getTopPlotsOrder().size();
- if(places > 16) {
- places = 16;
+ if(places > 20) {
+ places = 20;
}
StringBuilder placeSummary = new StringBuilder();
for(int i = 1; i <= places; i++) {
From e59581dbac0d6da94221d2132741c10b07e9a483 Mon Sep 17 00:00:00 2001
From: "version-bump[github-action]"
<41898282+version-bump[github-action]@users.noreply.github.com>
Date: Mon, 24 Mar 2025 19:47:13 +0000
Subject: [PATCH 03/17] Bump version from 5.0.14-SNAPSHOT0 to 5.0.14-SNAPSHOT1
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index dfe4bd94..8ff0c956 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
plugily.projects
buildbattle
- 5.0.14-SNAPSHOT0
+ 5.0.14-SNAPSHOT1
BuildBattle
From bc55ac2980a7eff1c012d19d4ac068a6343ad93c Mon Sep 17 00:00:00 2001
From: Tigerpanzer_02 <37453987+Tigerpanzer02@users.noreply.github.com>
Date: Mon, 24 Mar 2025 21:40:30 +0100
Subject: [PATCH 04/17] Check every 10 seconds if OPTIONS_MENU item is still in
builders inventory!
---
.../buildbattle/arena/states/build/InGameState.java | 12 ++++++++++--
.../buildbattle/arena/states/guess/InGameState.java | 11 +++++++++++
2 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/src/main/java/plugily/projects/buildbattle/arena/states/build/InGameState.java b/src/main/java/plugily/projects/buildbattle/arena/states/build/InGameState.java
index 3c99e3e4..5d1f000c 100644
--- a/src/main/java/plugily/projects/buildbattle/arena/states/build/InGameState.java
+++ b/src/main/java/plugily/projects/buildbattle/arena/states/build/InGameState.java
@@ -77,12 +77,11 @@ public void handleCall(PluginArena arena) {
break;
case BUILD_TIME:
handleBuildTime(pluginArena);
+ handleOptionsMenu(pluginArena);
if(arena.getTimer() <= 0) {
for(Player player : pluginArena.getPlayersLeft()) {
IUser user = getPlugin().getUserManager().getUser(player);
- if(user.isSpectator()) continue;
-
Plot playerPlot = pluginArena.getPlotFromPlayer(player);
if(!pluginArena.getQueue().contains(playerPlot)) {
pluginArena.getQueue().add(playerPlot);
@@ -198,6 +197,15 @@ private void handleBuildTime(BuildArena pluginArena) {
pluginArena.checkPlayerOutSidePlot();
}
+ private void handleOptionsMenu(BuildArena pluginArena) {
+ if(pluginArena.getTimer() % 10 != 0) {
+ return;
+ }
+ for(Player player : pluginArena.getPlayersLeft()) {
+ pluginArena.getPlugin().getSpecialItemManager().getSpecialItem("OPTIONS_MENU").setItem(player);
+ }
+ }
+
private void handlePlotVoting(BuildArena pluginArena) {
}
diff --git a/src/main/java/plugily/projects/buildbattle/arena/states/guess/InGameState.java b/src/main/java/plugily/projects/buildbattle/arena/states/guess/InGameState.java
index 103085c3..5581746e 100644
--- a/src/main/java/plugily/projects/buildbattle/arena/states/guess/InGameState.java
+++ b/src/main/java/plugily/projects/buildbattle/arena/states/guess/InGameState.java
@@ -26,6 +26,7 @@
import org.bukkit.entity.HumanEntity;
import org.bukkit.entity.Player;
import plugily.projects.buildbattle.arena.BaseArena;
+import plugily.projects.buildbattle.arena.BuildArena;
import plugily.projects.buildbattle.arena.GuessArena;
import plugily.projects.buildbattle.arena.managers.plots.Plot;
import plugily.projects.buildbattle.handlers.themes.BBTheme;
@@ -102,6 +103,7 @@ public void handleCall(PluginArena arena) {
}
//}
handleBuildTime(pluginArena);
+ handleOptionsMenu(pluginArena);
break;
case PLOT_VOTING:
if(pluginArena.getRound() + 1 > pluginArena.getPlotList().size() * pluginArena.getArenaOption("GTB_ROUNDS_PER_PLOT")) {
@@ -189,6 +191,15 @@ private void forceSetTheme(GuessArena pluginArena) {
setChosenTheme(pluginArena, getThemeByDifficulty(pluginArena, difficulty));
}
+ private void handleOptionsMenu(GuessArena pluginArena) {
+ if(pluginArena.getTimer() % 10 != 0) {
+ return;
+ }
+ for(Player player : pluginArena.getCurrentBuilders()) {
+ pluginArena.getPlugin().getSpecialItemManager().getSpecialItem("OPTIONS_MENU").setItem(player);
+ }
+ }
+
private void setChosenTheme(GuessArena pluginArena, BBTheme bbTheme) {
setTheme(pluginArena, bbTheme);
pluginArena.getCurrentBuilders().forEach(HumanEntity::closeInventory);
From 22942e374b5b2633ccaa84b2f744be1e0c93d617 Mon Sep 17 00:00:00 2001
From: "version-bump[github-action]"
<41898282+version-bump[github-action]@users.noreply.github.com>
Date: Mon, 24 Mar 2025 20:40:33 +0000
Subject: [PATCH 05/17] Bump version from 5.0.14-SNAPSHOT1 to 5.0.14-SNAPSHOT2
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 8ff0c956..9ce9af13 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
plugily.projects
buildbattle
- 5.0.14-SNAPSHOT1
+ 5.0.14-SNAPSHOT2
BuildBattle
From aef085dd2056f000c04620274a75de82264ad729 Mon Sep 17 00:00:00 2001
From: Tigerpanzer_02 <37453987+Tigerpanzer02@users.noreply.github.com>
Date: Tue, 25 Mar 2025 17:51:49 +0100
Subject: [PATCH 06/17] Ensure UTF-8 compiling
---
.github/building/pom.xml | 12 +++++-------
pom.xml | 1 +
2 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/.github/building/pom.xml b/.github/building/pom.xml
index 23d4c421..98284ef1 100644
--- a/.github/building/pom.xml
+++ b/.github/building/pom.xml
@@ -26,7 +26,7 @@
plugily.projects
buildbattle
- 5.0.13-SNAPSHOT5
+ 5.0.14-SNAPSHOT1
BuildBattle
@@ -51,17 +51,13 @@
jitpack
https://jitpack.io
-
- codemc-repo
- https://repo.codemc.org/repository/maven-public/
-
spigot-repo
https://hub.spigotmc.org/nexus/content/repositories/snapshots/
citizens-repo
- http://repo.citizensnpcs.co/
+ https://repo.citizensnpcs.co/
@@ -82,7 +78,7 @@
plugily.projects
MiniGamesBox-Classic
- 1.3.17-SNAPSHOT12
+ 1.4.0
compile
true
@@ -115,6 +111,7 @@
${java.version}
${java.version}
+ UTF-8
@@ -160,6 +157,7 @@
shade
+ true
com.zaxxer.hikari
diff --git a/pom.xml b/pom.xml
index 9ce9af13..0500b901 100644
--- a/pom.xml
+++ b/pom.xml
@@ -111,6 +111,7 @@
${java.version}
${java.version}
+ UTF-8
From 26467014d0a7768c33eb30acfc0627f0eefd528a Mon Sep 17 00:00:00 2001
From: "version-bump[github-action]"
<41898282+version-bump[github-action]@users.noreply.github.com>
Date: Tue, 25 Mar 2025 16:51:46 +0000
Subject: [PATCH 07/17] Bump version from 5.0.14-SNAPSHOT2 to 5.0.14-SNAPSHOT3
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 0500b901..4b1bf7df 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
plugily.projects
buildbattle
- 5.0.14-SNAPSHOT2
+ 5.0.14-SNAPSHOT3
BuildBattle
From 904937eaae6fe443c7ab8109e2eca62b5761e716 Mon Sep 17 00:00:00 2001
From: Tigerpanzer_02 <37453987+Tigerpanzer02@users.noreply.github.com>
Date: Thu, 1 May 2025 23:04:44 +0200
Subject: [PATCH 08/17] Fixed IllegalArgumentException on PlotSelector, also
switched to PaginatedInventory to support all Plots
---
.../arena/managers/plots/PlotMenuHandler.java | 20 ++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/src/main/java/plugily/projects/buildbattle/arena/managers/plots/PlotMenuHandler.java b/src/main/java/plugily/projects/buildbattle/arena/managers/plots/PlotMenuHandler.java
index 688ef48b..036f3f79 100644
--- a/src/main/java/plugily/projects/buildbattle/arena/managers/plots/PlotMenuHandler.java
+++ b/src/main/java/plugily/projects/buildbattle/arena/managers/plots/PlotMenuHandler.java
@@ -35,6 +35,8 @@
import plugily.projects.minigamesbox.classic.utils.version.xseries.XMaterial;
import plugily.projects.minigamesbox.inventory.common.item.SimpleClickableItem;
import plugily.projects.minigamesbox.inventory.normal.NormalFastInv;
+import plugily.projects.minigamesbox.inventory.utils.fastinv.InventoryScheme;
+import plugily.projects.minigamesbox.inventory.utils.fastinv.PaginatedFastInv;
import java.util.ArrayList;
import java.util.List;
@@ -79,10 +81,22 @@ private ItemStack getItemStack(Plot plot, int maxPlotMembers, Player player) {
}
public void createMenu(Player player, BaseArena arena) {
- NormalFastInv gui = new NormalFastInv(plugin.getBukkitHelper().serializeInt(arena.getPlotManager().getPlots().size()), new MessageBuilder("IN_GAME_MESSAGES_PLOT_SELECTOR_MENU_NAME").asKey().build());
+ PaginatedFastInv gui = new PaginatedFastInv(27, new MessageBuilder("IN_GAME_MESSAGES_PLOT_SELECTOR_MENU_NAME").asKey().build());
+ new InventoryScheme()
+ .mask(" 1111111 ")
+ .mask(" 1111111 ")
+ .bindPagination('1').apply(gui);
+
+
int plots = 0;
int arenaPlotMemberSize = arena.getArenaOption("PLOT_MEMBER_SIZE");
+ gui.previousPageItem(20, p -> new ItemBuilder(XMaterial.ARROW.parseItem()).name("<- " + p + "/" + gui.lastPage()).build());
+ gui.nextPageItem(24, p -> new ItemBuilder(XMaterial.ARROW.parseItem()).name(p + "/" + gui.lastPage() + " ->").build());
+
+ gui.setItem(22, new ItemBuilder(XMaterial.BARRIER.parseItem()).name("X").build(),
+ e -> e.getWhoClicked().closeInventory());
+
for(Plot plot : arena.getPlotManager().getPlots()) {
ItemStack itemStack = getItemStack(plot, arenaPlotMemberSize, player);
int plotMemberSize = plot.getMembersSize();
@@ -127,7 +141,7 @@ public void createMenu(Player player, BaseArena arena) {
});
int finalPlots = plots;
- gui.addItem(new SimpleClickableItem(itemStack, event -> {
+ gui.addContent(itemStack, event -> {
event.setCancelled(true);
if(!(event.isLeftClick() || event.isRightClick())) {
@@ -143,7 +157,7 @@ public void createMenu(Player player, BaseArena arena) {
new MessageBuilder("IN_GAME_MESSAGES_PLOT_SELECTOR_PLOT_CHOOSE").asKey().player(player).integer(finalPlots).sendPlayer();
event.getWhoClicked().closeInventory();
- }));
+ });
plots++;
}
From e8d06d34360b1f4a0db871a3f9036e65079b9800 Mon Sep 17 00:00:00 2001
From: "version-bump[github-action]"
<41898282+version-bump[github-action]@users.noreply.github.com>
Date: Thu, 1 May 2025 21:05:09 +0000
Subject: [PATCH 09/17] Bump version from 5.0.14-SNAPSHOT3 to 5.0.14-SNAPSHOT4
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 4b1bf7df..5a4244ad 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
plugily.projects
buildbattle
- 5.0.14-SNAPSHOT3
+ 5.0.14-SNAPSHOT4
BuildBattle
From a561b2c1c175cf8bf4c01087da6010ee0780c04b Mon Sep 17 00:00:00 2001
From: Tigerpanzer_02 <37453987+Tigerpanzer02@users.noreply.github.com>
Date: Thu, 1 May 2025 23:51:12 +0200
Subject: [PATCH 10/17] Added filter to maxplayers/random join team / solo so
that only the correct arenas are selected
---
.../buildbattle/commands/arguments/ArgumentsRegistry.java | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/main/java/plugily/projects/buildbattle/commands/arguments/ArgumentsRegistry.java b/src/main/java/plugily/projects/buildbattle/commands/arguments/ArgumentsRegistry.java
index 0fb2596b..4512098d 100644
--- a/src/main/java/plugily/projects/buildbattle/commands/arguments/ArgumentsRegistry.java
+++ b/src/main/java/plugily/projects/buildbattle/commands/arguments/ArgumentsRegistry.java
@@ -21,6 +21,7 @@
package plugily.projects.buildbattle.commands.arguments;
import plugily.projects.buildbattle.Main;
+import plugily.projects.buildbattle.arena.BaseArena;
import plugily.projects.buildbattle.arena.BuildArena;
import plugily.projects.buildbattle.arena.GuessArena;
import plugily.projects.buildbattle.commands.arguments.admin.ThemeArgument;
@@ -63,10 +64,13 @@ public List getSpecificFilteredArenas(List arenas, S
case "guessthebuild":
case "guess_the_build":
return arenas.stream().filter(GuessArena.class::isInstance).collect(Collectors.toList());
+ case "team":
+ return arenas.stream().filter(BuildArena.class::isInstance).filter(arena -> ((BuildArena) arena).getArenaType().equals(BaseArena.ArenaType.TEAM)).collect(Collectors.toList());
case "classic":
case "solo":
- case "team":
- default:
+ return arenas.stream().filter(BuildArena.class::isInstance).filter(arena -> ((BuildArena) arena).getArenaType().equals(BaseArena.ArenaType.SOLO)).collect(Collectors.toList());
+ case "build":
+ default:
return arenas.stream().filter(BuildArena.class::isInstance).collect(Collectors.toList());
}
}
From e47c3ee5ecf66befab7d1fa0d3326b758928880a Mon Sep 17 00:00:00 2001
From: "version-bump[github-action]"
<41898282+version-bump[github-action]@users.noreply.github.com>
Date: Thu, 1 May 2025 21:51:37 +0000
Subject: [PATCH 11/17] Bump version from 5.0.14-SNAPSHOT4 to 5.0.14-SNAPSHOT5
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 5a4244ad..9639df65 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
plugily.projects
buildbattle
- 5.0.14-SNAPSHOT4
+ 5.0.14-SNAPSHOT5
BuildBattle
From bf05def39e22ff830414701b19dd250a54e1f380 Mon Sep 17 00:00:00 2001
From: Tigerpanzer02 <37453987+Tigerpanzer02@users.noreply.github.com.>
Date: Fri, 2 May 2025 17:32:47 +0200
Subject: [PATCH 12/17] Updated Minigamesbox to 1.4.1
---
pom.xml | 2 +-
.../arena/managers/ScoreboardManager.java | 18 +++++-------------
2 files changed, 6 insertions(+), 14 deletions(-)
diff --git a/pom.xml b/pom.xml
index 9639df65..839bf1cd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,7 +78,7 @@
plugily.projects
MiniGamesBox-Classic
- 1.4.0
+ 1.4.1
compile
true
diff --git a/src/main/java/plugily/projects/buildbattle/arena/managers/ScoreboardManager.java b/src/main/java/plugily/projects/buildbattle/arena/managers/ScoreboardManager.java
index 5e46b99f..abce932e 100644
--- a/src/main/java/plugily/projects/buildbattle/arena/managers/ScoreboardManager.java
+++ b/src/main/java/plugily/projects/buildbattle/arena/managers/ScoreboardManager.java
@@ -45,10 +45,9 @@ public ScoreboardManager(PluginArena arena) {
}
@Override
- public List formatScoreboardLines(List lines, Player player) {
- List changedLines = new ArrayList<>();
-
- switch (arena.getArenaState()) {
+ public List getScoreboardLines(Player player) {
+ List lines;
+ switch(arena.getArenaState()) {
case IN_GAME: {
if(arena instanceof GuessArena) {
lines = arena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + arena.getArenaState().getFormattedName() + ".Guess-The-Build" + (((GuessArena) arena).getArenaInGameState() == BaseArena.ArenaInGameState.PLOT_VOTING ? "-Waiting" : ""));
@@ -70,16 +69,9 @@ public List formatScoreboardLines(List lines, Player player) {
break;
}
default: {
- lines = arena.getPlugin().getLanguageManager().getLanguageList(arena.getArenaState() == IArenaState.FULL_GAME ? "Scoreboard.Content.Starting"
- : "Scoreboard.Content." + arena.getArenaState().getFormattedName());
-
+ lines = super.getScoreboardLines(player);
}
}
-
- for(String line : lines) {
- changedLines.add(new MessageBuilder(line).player(player).arena(arena).build());
- }
- return changedLines;
+ return lines;
}
-
}
From 64a0f93b0a338ce3a985b0364b8308f741fc3a61 Mon Sep 17 00:00:00 2001
From: "version-bump[github-action]"
<41898282+version-bump[github-action]@users.noreply.github.com>
Date: Fri, 2 May 2025 15:33:23 +0000
Subject: [PATCH 13/17] Bump version from 5.0.14-SNAPSHOT5 to 5.0.14-SNAPSHOT6
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 839bf1cd..a84862b6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
plugily.projects
buildbattle
- 5.0.14-SNAPSHOT5
+ 5.0.14-SNAPSHOT6
BuildBattle
From 812509620eb437fd5eca5c03236b5802c0e0c639 Mon Sep 17 00:00:00 2001
From: Tigerpanzer02 <37453987+Tigerpanzer02@users.noreply.github.com.>
Date: Sat, 3 May 2025 14:28:06 +0200
Subject: [PATCH 14/17] Adjusted CHANGELOG.md
---
.github/CHANGELOG.md | 7 +++++++
src/main/resources/config.yml | 1 +
2 files changed, 8 insertions(+)
diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md
index 15e2f295..b7f72ce6 100644
--- a/.github/CHANGELOG.md
+++ b/.github/CHANGELOG.md
@@ -10,6 +10,13 @@ deploy webhooks to print changelog successfully
That's all, matcher will stop when detects next line started with `###` match
+## 5.0.15 Release (03.05.2025)
+* Allowing by default 20 places placeholder for summary list
+* Check if OPTIONS_MENU item is still in builders inventory and readd it if necessary
+* Fixed IllegalArgumentException on PlotSelector, also switched to PaginatedInventory to support all Plots
+* Added filter to maxplayers/random join team / solo so that only the correct arenas are selected
+* Updated Minigamesbox to 1.4.1
+
### 5.0.14 Release (13.03.2025)
* Changed plot distribution on team mode tries to create only full plots now
* Fixed plot distribution in same cases lets spectators into the plot as member
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 72834414..d466aefd 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -10,6 +10,7 @@
# Available localizations:
# default - English language. Uses 'language.yml'.
# See https://github.com/Plugily-Projects/locale_storage/tree/master/plugins/minecraft/buildbattle
+# Help us translate the project -> https://translate.plugily.xyz
# Use filename of the language e.g. de_DE.yml -> locale: de_DE
locale: default
From 6533a0cbe3521ac9d751a323d413b70ce5019720 Mon Sep 17 00:00:00 2001
From: "version-bump[github-action]"
<41898282+version-bump[github-action]@users.noreply.github.com>
Date: Sat, 3 May 2025 12:28:35 +0000
Subject: [PATCH 15/17] Bump version from 5.0.14-SNAPSHOT6 to 5.0.14-SNAPSHOT7
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index a84862b6..67db2647 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
plugily.projects
buildbattle
- 5.0.14-SNAPSHOT6
+ 5.0.14-SNAPSHOT7
BuildBattle
From cc70ebbacb0b49c95e1b213f9149cdfb12c4128a Mon Sep 17 00:00:00 2001
From: Tigerpanzer02 <37453987+Tigerpanzer02@users.noreply.github.com.>
Date: Sat, 3 May 2025 14:53:36 +0200
Subject: [PATCH 16/17] Updated ParticlesOption Menu to use new Paginated
Inventory
---
.../handlers/menu/OptionsRegistry.java | 268 +++++++++---------
.../registry/particles/ParticleRegistry.java | 74 ++---
.../registry/particles/ParticlesOption.java | 2 +-
3 files changed, 167 insertions(+), 177 deletions(-)
diff --git a/src/main/java/plugily/projects/buildbattle/handlers/menu/OptionsRegistry.java b/src/main/java/plugily/projects/buildbattle/handlers/menu/OptionsRegistry.java
index 3fde74cc..68af2b9d 100644
--- a/src/main/java/plugily/projects/buildbattle/handlers/menu/OptionsRegistry.java
+++ b/src/main/java/plugily/projects/buildbattle/handlers/menu/OptionsRegistry.java
@@ -39,6 +39,7 @@
import plugily.projects.minigamesbox.inventory.common.item.ItemMap;
import plugily.projects.minigamesbox.inventory.common.item.SimpleClickableItem;
import plugily.projects.minigamesbox.inventory.normal.NormalFastInv;
+import plugily.projects.minigamesbox.inventory.utils.fastinv.PaginatedFastInv;
import java.util.HashSet;
import java.util.Set;
@@ -50,147 +51,154 @@
*/
public class OptionsRegistry {
- private ParticleRegistry particleRegistry;
- private BiomesRegistry biomesRegistry;
- private PlayerHeadsRegistry playerHeadsRegistry;
- private final Set registeredOptions = new HashSet<>();
- private int inventorySize = 5 * 9;
- private final ItemStack menuItem;
- private final Main plugin;
-
- private NormalFastInv optionsGui;
-
- public OptionsRegistry(Main plugin) {
- this.plugin = plugin;
- this.menuItem = plugin.getSpecialItemManager().getSpecialItemStack("OPTIONS_MENU");
- }
-
- public void registerOptions() {
- biomesRegistry = new BiomesRegistry(this);
- new BiomeChangeOption(this);
-
- new FloorChangeOption(this);
-
- //register particles
- particleRegistry = new ParticleRegistry(this);
- new ParticlesOption(this);
-
- //register player heads
- playerHeadsRegistry = new PlayerHeadsRegistry(this);
- new PlayerHeadsOption(this);
-
- new PlotResetOption(this);
- new TimeChangeOption(this);
- new WeatherChangeOption(this);
- new BannerCreatorOption(this);
- }
-
- /**
- * Registers new menu option available in options menu in game.
- *
- * @param option option to register
- * @throws IllegalArgumentException if option slot is same as one of already registered ones
- * or ID of option is same as one of registered one
- */
- public void registerOption(MenuOption option) {
- for (MenuOption opt : registeredOptions) {
- if (opt.getSlot() == option.getSlot()) {
- throw new IllegalArgumentException("Cannot register new option on existing option slot!");
- }
- if (opt.getID().equals(option.getID())) {
- throw new IllegalArgumentException("Cannot register new option with equal identifier!");
- }
- }
- registeredOptions.add(option);
- }
-
- /**
- * Unregisters menu option that available in options menu
- *
- * @param option option to unregister
- * @throws IllegalArgumentException if option doesn't exist
- */
- public void unregisterOption(MenuOption option) {
- if (!registeredOptions.remove(option)) {
- throw new IllegalArgumentException("Cannot remove non existing option!");
- }
+ private ParticleRegistry particleRegistry;
+ private BiomesRegistry biomesRegistry;
+ private PlayerHeadsRegistry playerHeadsRegistry;
+ private final Set registeredOptions = new HashSet<>();
+ private int inventorySize = 5 * 9;
+ private final ItemStack menuItem;
+ private final Main plugin;
+
+ private NormalFastInv optionsGui;
+
+ public OptionsRegistry(Main plugin) {
+ this.plugin = plugin;
+ this.menuItem = plugin.getSpecialItemManager().getSpecialItemStack("OPTIONS_MENU");
+ }
+
+ public void registerOptions() {
+ biomesRegistry = new BiomesRegistry(this);
+ new BiomeChangeOption(this);
+
+ new FloorChangeOption(this);
+
+ //register particles
+ particleRegistry = new ParticleRegistry(this);
+ new ParticlesOption(this);
+
+ //register player heads
+ playerHeadsRegistry = new PlayerHeadsRegistry(this);
+ new PlayerHeadsOption(this);
+
+ new PlotResetOption(this);
+ new TimeChangeOption(this);
+ new WeatherChangeOption(this);
+ new BannerCreatorOption(this);
+ }
+
+ /**
+ * Registers new menu option available in options menu in game.
+ *
+ * @param option option to register
+ * @throws IllegalArgumentException if option slot is same as one of already registered ones
+ * or ID of option is same as one of registered one
+ */
+ public void registerOption(MenuOption option) {
+ for(MenuOption opt : registeredOptions) {
+ if(opt.getSlot() == option.getSlot()) {
+ throw new IllegalArgumentException("Cannot register new option on existing option slot!");
+ }
+ if(opt.getID().equals(option.getID())) {
+ throw new IllegalArgumentException("Cannot register new option with equal identifier!");
+ }
}
-
- /**
- * Defines new size of options inventory
- *
- * @param size size to set
- */
- public void defineInventorySize(int size) {
- inventorySize = size;
- }
-
- /**
- * Creates inventory with all of registered menu options
- *
- * @return options inventory
- */
- public NormalFastInv getOptionsGui() {
- if (optionsGui != null)
- return optionsGui;
- NormalFastInv gui = new NormalFastInv(inventorySize, new MessageBuilder("MENU_OPTION_INVENTORY").asKey().build());
- gui.addClickHandler(clickEvent -> {
- if (clickEvent.getClickedInventory() != gui.getInventory()) {
- clickEvent.setCancelled(false);
- }
- });
- for (MenuOption option : registeredOptions) {
- gui.setItem(option.getSlot(), new SimpleClickableItem(option.getItemStack(), option::onClick));
- }
- return optionsGui = gui;
+ registeredOptions.add(option);
+ }
+
+ /**
+ * Unregisters menu option that available in options menu
+ *
+ * @param option option to unregister
+ * @throws IllegalArgumentException if option doesn't exist
+ */
+ public void unregisterOption(MenuOption option) {
+ if(!registeredOptions.remove(option)) {
+ throw new IllegalArgumentException("Cannot remove non existing option!");
}
-
- public Set getRegisteredOptions() {
- return registeredOptions;
+ }
+
+ /**
+ * Defines new size of options inventory
+ *
+ * @param size size to set
+ */
+ public void defineInventorySize(int size) {
+ inventorySize = size;
+ }
+
+ /**
+ * Creates inventory with all of registered menu options
+ *
+ * @return options inventory
+ */
+ public NormalFastInv getOptionsGui() {
+ if(optionsGui != null)
+ return optionsGui;
+ NormalFastInv gui = new NormalFastInv(inventorySize, new MessageBuilder("MENU_OPTION_INVENTORY").asKey().build());
+ gui.addClickHandler(clickEvent -> {
+ if(clickEvent.getClickedInventory() != gui.getInventory()) {
+ clickEvent.setCancelled(false);
+ }
+ });
+ for(MenuOption option : registeredOptions) {
+ gui.setItem(option.getSlot(), new SimpleClickableItem(option.getItemStack(), option::onClick));
}
+ return optionsGui = gui;
+ }
- public ItemStack getMenuItem() {
- return menuItem;
- }
+ public Set getRegisteredOptions() {
+ return registeredOptions;
+ }
- public BiomesRegistry getBiomesRegistry() {
- return biomesRegistry;
- }
+ public ItemStack getMenuItem() {
+ return menuItem;
+ }
- public PlayerHeadsRegistry getPlayerHeadsRegistry() {
- return playerHeadsRegistry;
- }
+ public BiomesRegistry getBiomesRegistry() {
+ return biomesRegistry;
+ }
- public ParticleRegistry getParticleRegistry() {
- return particleRegistry;
- }
+ public PlayerHeadsRegistry getPlayerHeadsRegistry() {
+ return playerHeadsRegistry;
+ }
- public Main getPlugin() {
- return plugin;
- }
+ public ParticleRegistry getParticleRegistry() {
+ return particleRegistry;
+ }
- private ItemBuilder backButton;
-
- private SimpleClickableItem getBackItem() {
- if (backButton == null) {
- backButton = new ItemBuilder(XMaterial.STONE_BUTTON.parseItem())
- .name(new MessageBuilder("MENU_BUTTONS_BACK_ITEM_NAME").asKey().build())
- .lore(new MessageBuilder("MENU_BUTTONS_BACK_ITEM_LORE").asKey().build());
- }
- return new SimpleClickableItem(backButton.build(), event -> {
- event.setCancelled(true);
- event.getWhoClicked().closeInventory();
- getOptionsGui().open(event.getWhoClicked());
- });
- }
+ public Main getPlugin() {
+ return plugin;
+ }
- public void addGoBackItem(ItemMap page, int slot) {
- page.setItem(slot, getBackItem());
- }
+ private ItemBuilder backButton;
- public void addGoBackItem(NormalFastInv gui, int slot) {
- gui.setItem(slot, getBackItem());
+ private SimpleClickableItem getBackItem() {
+ if(backButton == null) {
+ backButton = new ItemBuilder(XMaterial.STONE_BUTTON.parseItem())
+ .name(new MessageBuilder("MENU_BUTTONS_BACK_ITEM_NAME").asKey().build())
+ .lore(new MessageBuilder("MENU_BUTTONS_BACK_ITEM_LORE").asKey().build());
}
-
+ return new SimpleClickableItem(backButton.build(), event -> {
+ event.setCancelled(true);
+ event.getWhoClicked().closeInventory();
+ getOptionsGui().open(event.getWhoClicked());
+ });
+ }
+
+ public void addGoBackItem(ItemMap page, int slot) {
+ page.setItem(slot, getBackItem());
+ }
+
+ public void addGoBackItem(NormalFastInv gui, int slot) {
+ gui.setItem(slot, getBackItem());
+ }
+
+ public void addGoBackItem(PaginatedFastInv gui, int slot) {
+ gui.setItem(slot, backButton.build(), event -> {
+ event.setCancelled(true);
+ event.getWhoClicked().closeInventory();
+ getOptionsGui().open(event.getWhoClicked());
+ });
+ }
}
diff --git a/src/main/java/plugily/projects/buildbattle/handlers/menu/registry/particles/ParticleRegistry.java b/src/main/java/plugily/projects/buildbattle/handlers/menu/registry/particles/ParticleRegistry.java
index b9b8b5d9..3479dda3 100644
--- a/src/main/java/plugily/projects/buildbattle/handlers/menu/registry/particles/ParticleRegistry.java
+++ b/src/main/java/plugily/projects/buildbattle/handlers/menu/registry/particles/ParticleRegistry.java
@@ -35,9 +35,8 @@
import plugily.projects.minigamesbox.classic.utils.helper.ItemBuilder;
import plugily.projects.minigamesbox.classic.utils.version.VersionUtils;
import plugily.projects.minigamesbox.classic.utils.version.xseries.XMaterial;
-import plugily.projects.minigamesbox.inventory.common.item.ItemMap;
-import plugily.projects.minigamesbox.inventory.common.item.SimpleClickableItem;
-import plugily.projects.minigamesbox.inventory.paged.PagedFastInv;
+import plugily.projects.minigamesbox.inventory.utils.fastinv.InventoryScheme;
+import plugily.projects.minigamesbox.inventory.utils.fastinv.PaginatedFastInv;
import java.util.*;
@@ -49,7 +48,7 @@
*/
public class ParticleRegistry {
- private PagedFastInv particles;
+ private PaginatedFastInv particles;
private final List blackListedParticles = Arrays.asList("BLOCK_CRACK", "ITEM_CRACK", "ITEM_TAKE", "BLOCK_DUST", "MOB_APPEARANCE", "FOOTSTEP", "REDSTONE");
private final Set registeredParticles = new HashSet<>();
private final Main plugin;
@@ -114,46 +113,23 @@ private void updateParticlesFile() {
}
private void registerInventory() {
- int i = 0;
- Set particleItemsPage1 = new HashSet<>(registeredParticles.size());
- Set particleItemsPage2 = new HashSet<>();
-
- for(ParticleItem item : registeredParticles) {
- (i >= 45 ? particleItemsPage2 : particleItemsPage1).add(item);
- i++;
- }
-
- PagedFastInv gui = new PagedFastInv(54, new MessageBuilder("MENU_OPTION_CONTENT_PARTICLE_INVENTORY").asKey().build());
-
- gui.setForceRefresh(true);
-
- ItemMap page1 = gui.createNewPage();
- ItemMap page2 = gui.createNewPage();
+ PaginatedFastInv gui = new PaginatedFastInv(54, new MessageBuilder("MENU_OPTION_CONTENT_PARTICLE_INVENTORY").asKey().build());
- page2.setItem(45, new SimpleClickableItem(new ItemBuilder(new ItemStack(XMaterial.ARROW.parseMaterial())).name("<-").build(), event -> {
- gui.setCurrentPage(0);
- gui.refresh();
- }));
- page1.setItem(53, new SimpleClickableItem(new ItemBuilder(new ItemStack(XMaterial.ARROW.parseMaterial())).name("->").build(), event -> {
- gui.setCurrentPage(1);
- gui.refresh();
- }));
+ new InventoryScheme()
+ .mask(" 1111111 ")
+ .mask(" 1111111 ")
+ .mask(" 1111111 ")
+ .mask(" 1111111 ")
+ .bindPagination('1').apply(gui);
- addParticles(page1, particleItemsPage1);
- addParticles(page2, particleItemsPage2);
- addRemoveItem(page1);
- addRemoveItem(page2);
- setParticles(gui);
-
- plugin.getOptionsRegistry().addGoBackItem(page1, 46);
- plugin.getOptionsRegistry().addGoBackItem(page2, 46);
+ gui.previousPageItem(45, p -> new ItemBuilder(XMaterial.ARROW.parseItem()).name("<- " + p + "/" + gui.lastPage()).build());
+ gui.nextPageItem(53, p -> new ItemBuilder(XMaterial.ARROW.parseItem()).name(p + "/" + gui.lastPage() + " ->").build());
- gui.refresh();
- }
+ gui.setItem(52, new ItemBuilder(XMaterial.BARRIER.parseItem()).name("X").build(),
+ e -> e.getWhoClicked().closeInventory());
- private void addRemoveItem(ItemMap itemMap) {
- itemMap.setItem(49, new SimpleClickableItem(new ItemBuilder(new ItemStack(Material.REDSTONE_BLOCK))
+ gui.setItem(49, new ItemBuilder(new ItemStack(Material.REDSTONE_BLOCK))
.name(new MessageBuilder("MENU_OPTION_CONTENT_PARTICLE_ITEM_REMOVE_NAME").asKey().build())
.lore(Collections.singletonList(new MessageBuilder("MENU_OPTION_CONTENT_PARTICLE_ITEM_REMOVE_LORE").asKey().build()))
.build(), event -> {
@@ -170,12 +146,18 @@ private void addRemoveItem(ItemMap itemMap) {
event.setCancelled(false);
player.closeInventory();
ParticleRemoveMenu.openMenu(player, arena.getPlotManager().getPlot(player));
- }));
+ });
+
+ plugin.getOptionsRegistry().addGoBackItem(gui, 46);
+
+ addParticles(gui);
+
+ setParticles(gui);
}
- private void addParticles(ItemMap itemMap, Set particleItems) {
- for(ParticleItem item : particleItems) {
- itemMap.addItem(new SimpleClickableItem(item.getItemStack(), event -> {
+ private void addParticles(PaginatedFastInv gui) {
+ for(ParticleItem item : registeredParticles) {
+ gui.addContent(item.getItemStack(), event -> {
HumanEntity humanEntity = event.getWhoClicked();
if(!(humanEntity instanceof Player))
@@ -198,15 +180,15 @@ private void addParticles(ItemMap itemMap, Set particleItems) {
plot.getParticles().put(player.getLocation(), item.getEffect());
plugin.getUserManager().getUser(player).adjustStatistic("PARTICLES_USED", 1);
new MessageBuilder("MENU_OPTION_CONTENT_PARTICLE_ADDED").asKey().player(player).sendPlayer();
- }));
+ });
}
}
- public PagedFastInv getParticles() {
+ public PaginatedFastInv getParticles() {
return particles;
}
- public void setParticles(PagedFastInv particles) {
+ public void setParticles(PaginatedFastInv particles) {
this.particles = particles;
}
diff --git a/src/main/java/plugily/projects/buildbattle/handlers/menu/registry/particles/ParticlesOption.java b/src/main/java/plugily/projects/buildbattle/handlers/menu/registry/particles/ParticlesOption.java
index 41281d35..26fed1f9 100644
--- a/src/main/java/plugily/projects/buildbattle/handlers/menu/registry/particles/ParticlesOption.java
+++ b/src/main/java/plugily/projects/buildbattle/handlers/menu/registry/particles/ParticlesOption.java
@@ -52,7 +52,7 @@ public void onClick(InventoryClickEvent event) {
}
humanEntity.closeInventory();
- registry.getPlugin().getOptionsRegistry().getParticleRegistry().getParticles().open(humanEntity);
+ registry.getPlugin().getOptionsRegistry().getParticleRegistry().getParticles().open(((Player) humanEntity));
}
});
}
From 79e62ea12b48026720c822db7d0d0ebcfcc16328 Mon Sep 17 00:00:00 2001
From: "version-bump[github-action]"
<41898282+version-bump[github-action]@users.noreply.github.com>
Date: Sat, 3 May 2025 12:54:18 +0000
Subject: [PATCH 17/17] Bump version from 5.0.14-SNAPSHOT7 to 5.0.14-SNAPSHOT8
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 67db2647..81766f80 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
plugily.projects
buildbattle
- 5.0.14-SNAPSHOT7
+ 5.0.14-SNAPSHOT8
BuildBattle