From 2d76a202e72e0c6f9a5e6cb995127515845fa283 Mon Sep 17 00:00:00 2001 From: ItzKatze <136186750+ItzKatze@users.noreply.github.com> Date: Sun, 19 Oct 2025 11:30:48 +0200 Subject: [PATCH] updated to 1.21.8 added new gui system new settings gui --- README.md | 2 + gradle/libs.versions.toml | 4 +- .../net/fameless/forcebattle/ForceBattle.java | 19 +- .../forcebattle/bossbar/BossbarManager.java | 10 +- .../fameless/forcebattle/caption/Caption.java | 4 +- .../forcebattle/command/BackpackCommand.java | 4 +- .../command/ConfigSettingsCommand.java | 37 ++ .../command/DisplayResultsCommand.java | 4 +- .../forcebattle/command/ExcludeCommand.java | 4 +- .../forcebattle/command/JokerCommand.java | 10 +- .../forcebattle/command/LanguageCommand.java | 12 +- .../forcebattle/command/PointsCommand.java | 6 +- .../command/RandomTeamsCommand.java | 6 +- .../forcebattle/command/ResetCommand.java | 4 +- .../forcebattle/command/ResultCommand.java | 28 +- .../forcebattle/command/SettingsCommand.java | 9 +- .../forcebattle/command/SkipCommand.java | 10 +- .../forcebattle/command/TeamCommand.java | 6 +- .../forcebattle/command/TimerCommand.java | 8 +- .../command/framework/Command.java | 2 + .../configuration/SettingsManager.java | 65 ++- .../forcebattle/game/GameListener.java | 37 +- .../forcebattle/game/NametagManager.java | 8 +- .../forcebattle/game/ObjectiveManager.java | 43 +- .../net/fameless/forcebattle/game/Team.java | 4 +- .../{Advancement.java => FBAdvancement.java} | 4 +- .../data/{Structure.java => FBStructure.java} | 4 +- .../game/data/StructureSimplified.java | 46 +- .../game/tasks/AdvancementTask.java | 10 +- .../forcebattle/game/tasks/BiomeTask.java | 7 +- .../forcebattle/game/tasks/CoordsTask.java | 7 +- .../forcebattle/game/tasks/HeightTask.java | 7 +- .../forcebattle/game/tasks/ItemTask.java | 7 +- .../forcebattle/game/tasks/StructureTask.java | 37 +- .../forcebattle/gui/ForceBattleGUI.java | 183 ++++++ .../forcebattle/gui/GUIClickableItem.java | 65 +++ .../net/fameless/forcebattle/gui/GUIItem.java | 17 + .../fameless/forcebattle/gui/GUIListener.java | 42 ++ .../fameless/forcebattle/gui/LanguageGUI.java | 117 ---- .../fameless/forcebattle/gui/ResultGUI.java | 531 ------------------ .../fameless/forcebattle/gui/SettingsGUI.java | 182 ------ .../gui/impl/ConfigSettingsGUI.java | 119 ++++ .../forcebattle/gui/impl/LanguageGUI.java | 91 +++ .../forcebattle/gui/impl/ResultGUI.java | 290 ++++++++++ .../forcebattle/gui/impl/SettingsGUI.java | 147 +++++ .../forcebattle/player/BattlePlayer.java | 10 +- .../scoreboard/ScoreboardManager.java | 91 +++ .../forcebattle/tablist/TablistManager.java | 4 +- .../fameless/forcebattle/util/BukkitUtil.java | 8 +- .../forcebattle/util/ItemStackCreator.java | 186 ++++++ .../fameless/forcebattle/util/ItemUtils.java | 10 +- .../forcebattle/util/ResultUtils.java | 7 +- .../fameless/forcebattle/util/StringUtil.java | 32 -- .../util/{Format.java => StringUtility.java} | 46 +- .../net/fameless/forcebattle/util/Toast.java | 4 +- src/main/resources/config.yml | 106 ++-- src/main/resources/languages/en_US.json | 25 +- src/main/resources/plugin.yml | 1 + 58 files changed, 1653 insertions(+), 1136 deletions(-) create mode 100644 src/main/java/net/fameless/forcebattle/command/ConfigSettingsCommand.java rename src/main/java/net/fameless/forcebattle/game/data/{Advancement.java => FBAdvancement.java} (99%) rename src/main/java/net/fameless/forcebattle/game/data/{Structure.java => FBStructure.java} (97%) create mode 100644 src/main/java/net/fameless/forcebattle/gui/ForceBattleGUI.java create mode 100644 src/main/java/net/fameless/forcebattle/gui/GUIClickableItem.java create mode 100644 src/main/java/net/fameless/forcebattle/gui/GUIItem.java create mode 100644 src/main/java/net/fameless/forcebattle/gui/GUIListener.java delete mode 100644 src/main/java/net/fameless/forcebattle/gui/LanguageGUI.java delete mode 100644 src/main/java/net/fameless/forcebattle/gui/ResultGUI.java delete mode 100644 src/main/java/net/fameless/forcebattle/gui/SettingsGUI.java create mode 100644 src/main/java/net/fameless/forcebattle/gui/impl/ConfigSettingsGUI.java create mode 100644 src/main/java/net/fameless/forcebattle/gui/impl/LanguageGUI.java create mode 100644 src/main/java/net/fameless/forcebattle/gui/impl/ResultGUI.java create mode 100644 src/main/java/net/fameless/forcebattle/gui/impl/SettingsGUI.java create mode 100644 src/main/java/net/fameless/forcebattle/scoreboard/ScoreboardManager.java create mode 100644 src/main/java/net/fameless/forcebattle/util/ItemStackCreator.java delete mode 100644 src/main/java/net/fameless/forcebattle/util/StringUtil.java rename src/main/java/net/fameless/forcebattle/util/{Format.java => StringUtility.java} (64%) diff --git a/README.md b/README.md index 92f3b56..998057e 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,8 @@ **ForceBattle** is a multiplayer gamemode where players compete to complete randomized objectives and earn points. The player with the most points after the timer ends wins the battle! +Current supported Minecraft version: 1.21.8 + **Objective types include:** - 🔹 Collect an item - 🔹 Kill a mob diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d9fc320..2d974f8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,12 +1,12 @@ [versions] -spigot = "1.21.4-R0.1-SNAPSHOT" +spigot = "1.21.8-R0.1-SNAPSHOT" gson = "2.11.0" guice = "7.0.0" annotations = "26.0.1" bstats = "3.0.2" adventureTextMinimessage = "4.17.0" adventureTextSerializerLegacy = "4.17.0" -adventureBukkit = "4.3.4" +adventureBukkit = "4.4.1" slf4j = "2.0.16" logback = "1.5.18" lombok = "1.18.32" diff --git a/src/main/java/net/fameless/forcebattle/ForceBattle.java b/src/main/java/net/fameless/forcebattle/ForceBattle.java index 9dc84ee..d47b5ed 100644 --- a/src/main/java/net/fameless/forcebattle/ForceBattle.java +++ b/src/main/java/net/fameless/forcebattle/ForceBattle.java @@ -13,9 +13,7 @@ import net.fameless.forcebattle.game.NametagManager; import net.fameless.forcebattle.game.ObjectiveManager; import net.fameless.forcebattle.game.Timer; -import net.fameless.forcebattle.gui.LanguageGUI; -import net.fameless.forcebattle.gui.ResultGUI; -import net.fameless.forcebattle.gui.SettingsGUI; +import net.fameless.forcebattle.gui.GUIListener; import net.fameless.forcebattle.tablist.TablistManager; import net.fameless.forcebattle.util.BukkitUtil; import net.fameless.forcebattle.util.ResourceUtil; @@ -39,12 +37,6 @@ public final class ForceBattle extends JavaPlugin { private static Timer timer; @Getter private static ObjectiveManager objectiveManager; - @Getter - private LanguageGUI languageGUI; - @Getter - private ResultGUI resultGUI; - @Getter - private SettingsGUI settingsGUI; public static ForceBattle get() { return instance; @@ -59,18 +51,12 @@ public void onEnable() { Caption.setCurrentLanguage(Language.ofIdentifier(getConfig().getString("lang", "en"))); - this.languageGUI = new LanguageGUI(); - this.resultGUI = new ResultGUI(); - this.settingsGUI = new SettingsGUI(); - initCore(); NametagManager.runTask(); Bukkit.getPluginManager().registerEvents(new GameListener(), this); - Bukkit.getPluginManager().registerEvents(languageGUI, this); - Bukkit.getPluginManager().registerEvents(resultGUI, this); - Bukkit.getPluginManager().registerEvents(settingsGUI, this); + Bukkit.getPluginManager().registerEvents(new GUIListener(), this); CommandHandler.registerAll(Command.COMMANDS); PermissionManager.registerPermissions(); @@ -107,6 +93,7 @@ private void initCore() { Command.createInstances(); BossbarManager.runTask(); TablistManager.startUpdating(); + //ScoreboardManager.startUpdater(); PluginUpdater.checkForUpdate(); } diff --git a/src/main/java/net/fameless/forcebattle/bossbar/BossbarManager.java b/src/main/java/net/fameless/forcebattle/bossbar/BossbarManager.java index 492df64..6474157 100644 --- a/src/main/java/net/fameless/forcebattle/bossbar/BossbarManager.java +++ b/src/main/java/net/fameless/forcebattle/bossbar/BossbarManager.java @@ -6,7 +6,7 @@ import net.fameless.forcebattle.game.Objective; import net.fameless.forcebattle.game.Team; import net.fameless.forcebattle.player.BattlePlayer; -import net.fameless.forcebattle.util.Format; +import net.fameless.forcebattle.util.StringUtility; import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.tag.Tag; @@ -96,14 +96,14 @@ private static void hideBossBar(BattlePlayer battlePlayer, HashMap", getString("prefix")) - .replace("