From b8c2b33d987ff5227cbdc3fe2fdb71940731ae0a Mon Sep 17 00:00:00 2001 From: FireInstall Date: Thu, 15 Feb 2024 04:40:47 +0100 Subject: [PATCH] Lang rework 23 --- Minigames/pom.xml | 5 -- .../java/au/com/mineauz/minigames/Events.java | 2 +- .../com/mineauz/minigames/PlayerLoadout.java | 27 ++++--- .../backend/BackendImportCallback.java | 3 +- .../minigames/backend/both/SQLExport.java | 4 +- .../minigames/backend/both/SQLImport.java | 3 +- .../backend/mysql/LegacyExporter.java | 4 +- .../backend/mysql/MySQLStatLoader.java | 3 +- .../backend/sqlite/FlatFileExporter.java | 5 +- .../backend/sqlite/SQLiteStatLoader.java | 3 +- .../minigames/backend/test/TestBackEnd.java | 2 +- .../minigames/commands/BackendCommand.java | 6 +- .../minigames/commands/ScoreboardCommand.java | 4 +- .../minigames/commands/SelectCommand.java | 20 +++--- .../commands/set/SetTimerCommand.java | 10 +-- .../language/langkeys/MgCommandLangKey.java | 12 +++- .../language/langkeys/MgMenuLangKey.java | 14 ++-- .../mineauz/minigames/menu/MenuItemLong.java | 9 --- .../minigames/minigame/ScoreboardDisplay.java | 16 +++-- .../minigame/reward/CommandReward.java | 71 +++++++------------ .../minigames/minigame/reward/ItemReward.java | 25 +++---- .../reward/scheme/DeathsRewardScheme.java | 9 ++- .../reward/scheme/KillsRewardScheme.java | 9 ++- .../reward/scheme/RevertsRewardScheme.java | 9 ++- .../reward/scheme/ScoreRewardScheme.java | 9 ++- .../com/mineauz/minigames/signs/SignBase.java | 6 +- .../minigames/stats/BasicMinigameStat.java | 17 +++-- .../mineauz/minigames/stats/MinigameStat.java | 6 +- .../mineauz/minigames/stats/StoredStat.java | 11 +-- .../src/main/resources/messages.properties | 26 +++++-- .../com/mineauz/minigamesregions/Region.java | 3 - .../minigamesregions/actions/KillAction.java | 4 +- .../actions/TakeItemAction.java | 23 +++--- .../language/RegionLangKey.java | 30 ++++---- .../resources/minigames_regions.properties | 1 + 35 files changed, 223 insertions(+), 188 deletions(-) diff --git a/Minigames/pom.xml b/Minigames/pom.xml index fdd088eb3..680e61e4a 100644 --- a/Minigames/pom.xml +++ b/Minigames/pom.xml @@ -127,11 +127,6 @@ 1.10.0 - - commons-io - commons-io - 2.15.1 - commons-io commons-io diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/Events.java b/Minigames/src/main/java/au/com/mineauz/minigames/Events.java index 35ebf284d..6ec4b45de 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/Events.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/Events.java @@ -255,7 +255,7 @@ public void playerInteract(@NotNull PlayerInteractEvent event) { } if (mgPlayer.isInMenu() && mgPlayer.getNoClose() && mgPlayer.getManualEntry() != null) { event.setCancelled(true); - ply.setNoClose(false); + mgPlayer.setNoClose(false); if (event.getClickedBlock() != null) { mgPlayer.setNoClose(false); mgPlayer.getManualEntry().checkValidEntry(event.getClickedBlock().getBlockData().getAsString()); diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/PlayerLoadout.java b/Minigames/src/main/java/au/com/mineauz/minigames/PlayerLoadout.java index ee0d74db1..6957c936d 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/PlayerLoadout.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/PlayerLoadout.java @@ -430,32 +430,39 @@ public void save(ConfigurationSection section) { section.set("potions." + eff.getType().getName() + ".dur", eff.getDuration()); } - if (getUsePermissions()) + if (getUsePermissions()) { section.set("usepermissions", true); + } - if (!hasFallDamage()) + if (!hasFallDamage()) { section.set("falldamage", hasFallDamage()); + } - if (hasHunger()) + if (hasHunger()) { section.set("hunger", hasHunger()); + } - if (getDisplayName() != null) - section.set("displayName", getDisplayName()); + section.set("displayName", getDisplayName()); - if (isArmourLocked()) + if (isArmourLocked()) { section.set("armourLocked", isArmourLocked()); + } - if (isInventoryLocked()) + if (isInventoryLocked()) { section.set("inventoryLocked", isInventoryLocked()); + } - if (getTeamColor() != null) + if (getTeamColor() != null) { section.set("team", getTeamColor().toString()); + } - if (!isDisplayedInMenu()) + if (!isDisplayedInMenu()) { section.set("displayInMenu", isDisplayedInMenu()); + } - if (!allowOffHand()) + if (!allowOffHand()) { section.set("allowOffhand", allowOffHand()); + } for (Entry, Object> addonValue : addonValues.entrySet()) { ConfigurationSection subSection = section.createSection("addons." + addonValue.getKey().getName().replace('.', '-')); diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/backend/BackendImportCallback.java b/Minigames/src/main/java/au/com/mineauz/minigames/backend/BackendImportCallback.java index 24058cb15..8482f2942 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/backend/BackendImportCallback.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/backend/BackendImportCallback.java @@ -1,6 +1,7 @@ package au.com.mineauz.minigames.backend; import au.com.mineauz.minigames.stats.StatFormat; +import net.kyori.adventure.text.Component; import java.util.UUID; @@ -35,7 +36,7 @@ public interface BackendImportCallback { * @param name The username of the player * @param displayName the display name of the player */ - void acceptPlayer(UUID playerId, String name, String displayName); + void acceptPlayer(UUID playerId, String name, Component displayName); /** * Called to add a minigame to the destination backend. diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/backend/both/SQLExport.java b/Minigames/src/main/java/au/com/mineauz/minigames/backend/both/SQLExport.java index a034b92c7..5caa85383 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/backend/both/SQLExport.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/backend/both/SQLExport.java @@ -2,6 +2,7 @@ import au.com.mineauz.minigames.backend.*; import au.com.mineauz.minigames.stats.StatFormat; +import net.kyori.adventure.text.minimessage.MiniMessage; import java.sql.ResultSet; import java.sql.SQLException; @@ -61,7 +62,8 @@ private void exportPlayers() throws SQLException { notifyNext("Exporting players..."); try (ResultSet rs = handler.executeQuery(getPlayers)) { while (rs.next()) { - callback.acceptPlayer(UUID.fromString(rs.getString("player_id")), rs.getString("name"), rs.getString("displayname")); + callback.acceptPlayer(UUID.fromString(rs.getString("player_id")), rs.getString("name"), + MiniMessage.miniMessage().deserialize(rs.getString("displayname"))); ++notifyCount; notifyProgress(); } diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/backend/both/SQLImport.java b/Minigames/src/main/java/au/com/mineauz/minigames/backend/both/SQLImport.java index 21f59a25a..fb2685f3b 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/backend/both/SQLImport.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/backend/both/SQLImport.java @@ -5,6 +5,7 @@ import au.com.mineauz.minigames.backend.ConnectionPool; import au.com.mineauz.minigames.backend.StatementKey; import au.com.mineauz.minigames.stats.StatFormat; +import net.kyori.adventure.text.Component; import java.sql.SQLException; import java.util.UUID; @@ -68,7 +69,7 @@ public void begin() { } @Override - public void acceptPlayer(UUID playerId, String name, String displayName) { + public void acceptPlayer(UUID playerId, String name, Component displayName) { try { handler.batchUpdate(insertPlayer, playerId.toString(), name, displayName); ++playerBatchCount; diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/backend/mysql/LegacyExporter.java b/Minigames/src/main/java/au/com/mineauz/minigames/backend/mysql/LegacyExporter.java index d8b4a7989..aadb9fd6e 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/backend/mysql/LegacyExporter.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/backend/mysql/LegacyExporter.java @@ -1,6 +1,7 @@ package au.com.mineauz.minigames.backend.mysql; import au.com.mineauz.minigames.backend.*; +import net.kyori.adventure.text.minimessage.MiniMessage; import java.sql.ResultSet; import java.sql.SQLException; @@ -86,7 +87,8 @@ private void exportPlayers() throws SQLException { try (ResultSet rs = handler.executeQuery(selectPlayers)) { while (rs.next()) { - callback.acceptPlayer(UUID.fromString(rs.getString("UUID")), rs.getString("Player"), rs.getString("Player")); + callback.acceptPlayer(UUID.fromString(rs.getString("UUID")), rs.getString("Player"), + MiniMessage.miniMessage().deserialize(rs.getString("Player"))); ++notifyCount; notifyProgress(); } diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/backend/mysql/MySQLStatLoader.java b/Minigames/src/main/java/au/com/mineauz/minigames/backend/mysql/MySQLStatLoader.java index 14e9aea6d..88cf1814b 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/backend/mysql/MySQLStatLoader.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/backend/mysql/MySQLStatLoader.java @@ -9,6 +9,7 @@ import au.com.mineauz.minigames.stats.StatisticValueField; import au.com.mineauz.minigames.stats.StoredStat; import net.kyori.adventure.text.logger.slf4j.ComponentLogger; +import net.kyori.adventure.text.minimessage.MiniMessage; import java.sql.ResultSet; import java.sql.SQLException; @@ -109,6 +110,6 @@ private StoredStat loadStat(ResultSet rs) throws SQLException { String displayName = rs.getString("displayname"); long value = rs.getLong("value"); - return new StoredStat(playerId, name, displayName, value); + return new StoredStat(playerId, name, MiniMessage.miniMessage().deserialize(displayName), value); } } diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/backend/sqlite/FlatFileExporter.java b/Minigames/src/main/java/au/com/mineauz/minigames/backend/sqlite/FlatFileExporter.java index 14add48b1..554be5eb2 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/backend/sqlite/FlatFileExporter.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/backend/sqlite/FlatFileExporter.java @@ -4,6 +4,7 @@ import au.com.mineauz.minigames.backend.Notifier; import com.google.common.collect.HashMultimap; import com.google.common.collect.SetMultimap; +import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.configuration.InvalidConfigurationException; @@ -81,9 +82,9 @@ private void exportPlayers() { // Attempt to get information about this player OfflinePlayer player = Bukkit.getPlayer(playerId); if (player != null) { - callback.acceptPlayer(playerId, player.getName(), player.getName()); + callback.acceptPlayer(playerId, player.getName(), player.getPlayer() != null ? player.getPlayer().displayName() : Component.text(player.getName())); } else { - callback.acceptPlayer(playerId, "Unknown", "Unknown"); + callback.acceptPlayer(playerId, "Unknown", Component.text("Unknown")); } ++notifyCount; diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/backend/sqlite/SQLiteStatLoader.java b/Minigames/src/main/java/au/com/mineauz/minigames/backend/sqlite/SQLiteStatLoader.java index 993e0b34c..06780cde4 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/backend/sqlite/SQLiteStatLoader.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/backend/sqlite/SQLiteStatLoader.java @@ -9,6 +9,7 @@ import au.com.mineauz.minigames.stats.StatisticValueField; import au.com.mineauz.minigames.stats.StoredStat; import net.kyori.adventure.text.logger.slf4j.ComponentLogger; +import net.kyori.adventure.text.minimessage.MiniMessage; import java.sql.ResultSet; import java.sql.SQLException; @@ -105,6 +106,6 @@ private StoredStat loadStat(ResultSet rs) throws SQLException { String displayName = rs.getString("displayname"); long value = rs.getLong("value"); - return new StoredStat(playerId, name, displayName, value); + return new StoredStat(playerId, name, MiniMessage.miniMessage().deserialize(displayName), value); } } diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/backend/test/TestBackEnd.java b/Minigames/src/main/java/au/com/mineauz/minigames/backend/test/TestBackEnd.java index 85cb4df5e..c64f49d80 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/backend/test/TestBackEnd.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/backend/test/TestBackEnd.java @@ -65,7 +65,7 @@ public List loadStats(Minigame minigame, MinigameStat stat, Statisti List result = new ArrayList<>(); for (StoredGameStats store : playerGameStats) { if (store.hasStat(stat) && store.getMinigame().getName().equals(minigame.getName())) { - result.add(new StoredStat(store.getPlayer().getUUID(), store.getPlayer().getName(), store.getPlayer().getDisplayName(true), store.getStat(stat))); + result.add(new StoredStat(store.getPlayer().getUUID(), store.getPlayer().getName(), store.getPlayer().displayName(), store.getStat(stat))); } } if (Objects.requireNonNull(order) == ScoreboardOrder.DESCENDING) { diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/commands/BackendCommand.java b/Minigames/src/main/java/au/com/mineauz/minigames/commands/BackendCommand.java index ad98f99eb..7a39a214d 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/commands/BackendCommand.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/commands/BackendCommand.java @@ -9,9 +9,7 @@ import au.com.mineauz.minigames.managers.language.langkeys.MgCommandLangKey; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; -import au.com.mineauz.minigames.minigame.Minigame; import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -61,7 +59,7 @@ public boolean onCommand(final @NotNull CommandSender sender, try { CompletableFuture future = manager.exportTo(args[1], Minigames.getPlugin().getConfig(), new ExportNotifier(sender)); future.exceptionally(throwable -> { - MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.ERROR, MgCommandLangKey.COMMAND_BACKEND_ERROR_INTERNAL, + MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.ERROR, MgCommandLangKey.COMMAND_ERROR_INTERNAL, Placeholder.unparsed(MinigamePlaceHolderKey.TEXT.getKey(), throwable.getMessage())); Minigames.getCmpnntLogger().error("An internal error occurred while exporting.", throwable); return null; @@ -81,7 +79,7 @@ public boolean onCommand(final @NotNull CommandSender sender, MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.SUCCESS, MgCommandLangKey.COMMAND_BACKEND_SWITCH_SUCCESS); MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.WARNING, MgCommandLangKey.COMMAND_BACKEND_SWITCH_WARNING_TEMP); } else { - MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.ERROR, MgCommandLangKey.COMMAND_BACKEND_ERROR_INTERNAL, + MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.ERROR, MgCommandLangKey.COMMAND_ERROR_INTERNAL, Placeholder.unparsed(MinigamePlaceHolderKey.TEXT.getKey(), throwable.getMessage())); Minigames.getCmpnntLogger().error("An internal error occurred while exporting.", throwable); } diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/commands/ScoreboardCommand.java b/Minigames/src/main/java/au/com/mineauz/minigames/commands/ScoreboardCommand.java index 683fbdb6d..ebfff1de9 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/commands/ScoreboardCommand.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/commands/ScoreboardCommand.java @@ -147,8 +147,8 @@ public boolean onCommand(final @NotNull CommandSender sender, @NotNull String @N )); for (StoredStat playerStat : result) { MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.NONE, MgCommandLangKey.COMMAND_SCOREBOARD_LIST_PLAYER, - Placeholder.unparsed(MinigamePlaceHolderKey.PLAYER.getKey(), playerStat.getPlayerDisplayName()), - Placeholder.unparsed(MinigamePlaceHolderKey.NUMBER.getKey(), stat.displayValue(playerStat.getValue(), settings))); + Placeholder.component(MinigamePlaceHolderKey.PLAYER.getKey(), playerStat.getPlayerDisplayName()), + Placeholder.component(MinigamePlaceHolderKey.NUMBER.getKey(), stat.displayValue(playerStat.getValue(), settings))); } } else { MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.ERROR, MgCommandLangKey.COMMAND_ERROR_INTERNAL); diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/commands/SelectCommand.java b/Minigames/src/main/java/au/com/mineauz/minigames/commands/SelectCommand.java index 8f692ec66..b578614bd 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/commands/SelectCommand.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/commands/SelectCommand.java @@ -2,9 +2,11 @@ import au.com.mineauz.minigames.MinigameUtils; import au.com.mineauz.minigames.Minigames; +import au.com.mineauz.minigames.managers.MinigameMessageManager; +import au.com.mineauz.minigames.managers.language.MinigameMessageType; +import au.com.mineauz.minigames.managers.language.langkeys.MgCommandLangKey; import au.com.mineauz.minigames.objects.MinigamePlayer; import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; @@ -25,16 +27,12 @@ public boolean canBeConsole() { @Override public @NotNull Component getDescription() { - return "select and clear region selections"; + return MinigameMessageManager.getMgMessage(MgCommandLangKey.COMMAND_SELECT_DESCRIPTION); } @Override public @NotNull Component getUsage() { - return new String[]{ - "/minigame select 1", - "/minigame select 2", - "/minigame select clear" - }; + return MinigameMessageManager.getMgMessage(MgCommandLangKey.COMMAND_SELECT_USAGE); } @Override @@ -50,14 +48,14 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull String @NotNull if (args.length > 0) { if (args[0].equalsIgnoreCase("1")) { mgPlayer.setSelection1(player.getLocation()); - mgPlayer.sendInfoMessage(Component.text("Point 1 selected", NamedTextColor.GRAY)); + MinigameMessageManager.sendMgMessage(mgPlayer, MinigameMessageType.INFO, MgCommandLangKey.COMMAND_SELECT_POINT1); } else if (args[0].equalsIgnoreCase("2")) { mgPlayer.setSelection2(player.getLocation()); - mgPlayer.sendInfoMessage(Component.text("Point 2 selected", NamedTextColor.GRAY)); + MinigameMessageManager.sendMgMessage(mgPlayer, MinigameMessageType.INFO, MgCommandLangKey.COMMAND_SELECT_POINT2); } else if (args[0].equalsIgnoreCase("clear")) { mgPlayer.clearSelection(); - mgPlayer.sendInfoMessage(Component.text("Selection cleared.", NamedTextColor.GRAY)); + MinigameMessageManager.sendMgMessage(mgPlayer, MinigameMessageType.INFO, MgCommandLangKey.COMMAND_SELECT_CLEAR); } else { // unknown param return false; } @@ -65,7 +63,7 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull String @NotNull return false; } } else { - sender.sendMessage(Component.text("You have to be a player.", NamedTextColor.RED)); + MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.ERROR, MgCommandLangKey.COMMAND_ERROR_SENDERNOTAPLAYER); return false; } diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/commands/set/SetTimerCommand.java b/Minigames/src/main/java/au/com/mineauz/minigames/commands/set/SetTimerCommand.java index 1d2e5a620..c7f1dd118 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/commands/set/SetTimerCommand.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/commands/set/SetTimerCommand.java @@ -9,7 +9,6 @@ import au.com.mineauz.minigames.minigame.Minigame; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; -import org.apache.commons.lang3.BooleanUtils; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -65,15 +64,18 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Minigame miniga } else if (args[0].equalsIgnoreCase("display") && args.length >= 2){ //todo if (args[1].equalsIgnoreCase("xpBar")) { minigame.setTimerDisplayType(MinigameTimer.DisplayType.XP_BAR); - sender.sendMessage(ChatColor.GRAY + minigame.toString() + " will now show the timer in the XP bar."); + MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.SUCCESS, MgCommandLangKey.COMMAND_SET_TIMER_XPBAR, + Placeholder.unparsed(MinigamePlaceHolderKey.MINIGAME.getKey(), minigame.getName())); return true; } else if (args[1].equalsIgnoreCase("bossBar")) { minigame.setTimerDisplayType(MinigameTimer.DisplayType.BOSS_BAR); - sender.sendMessage(ChatColor.GRAY + minigame.toString() + " will now show the timer in the boss bar."); + MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.SUCCESS, MgCommandLangKey.COMMAND_SET_TIMER_BOSSBAR, + Placeholder.unparsed(MinigamePlaceHolderKey.MINIGAME.getKey(), minigame.getName())); return true; } else if (args[1].equalsIgnoreCase("none")) { minigame.setTimerDisplayType(MinigameTimer.DisplayType.NONE); - sender.sendMessage(ChatColor.GRAY + minigame.toString() + " will no longer show the timer."); + MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.SUCCESS, MgCommandLangKey.COMMAND_SET_TIMER_NONE, + Placeholder.unparsed(MinigamePlaceHolderKey.MINIGAME.getKey(), minigame.getName())); return true; } // else here will default to false } diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/managers/language/langkeys/MgCommandLangKey.java b/Minigames/src/main/java/au/com/mineauz/minigames/managers/language/langkeys/MgCommandLangKey.java index 8d7c96bcc..be603ff0f 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/managers/language/langkeys/MgCommandLangKey.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/managers/language/langkeys/MgCommandLangKey.java @@ -93,6 +93,7 @@ public enum MgCommandLangKey implements LangKey { COMMAND_LIST_LIST("command.list.list"), COMMAND_LIST_USAGE("command.list.usage"), COMMAND_LOADOUT_DESCRIPTION("command.loadout.description"), + COMMAND_LOADOUT_USAGE("command.loadout.usage"), COMMAND_MINIGAMES_AUTHORS("command.minigames.authors"), COMMAND_MINIGAMES_HELP("command.minigames.help"), COMMAND_MINIGAMES_VERSION("command.minigames.version"), @@ -346,12 +347,13 @@ public enum MgCommandLangKey implements LangKey { COMMAND_SET_TEAM_REMOVE("command.set.team.remove"), COMMAND_SET_TEAM_RENAME("command.set.team.rename"), COMMAND_SET_TEAM_USAGE("command.set.team.usage"), + COMMAND_SET_TIMER_BOSSBAR("command.set.timer.bossBar"), COMMAND_SET_TIMER_DESCRIPTION("command.set.timer.description"), + COMMAND_SET_TIMER_NONE("command.set.timer.none"), COMMAND_SET_TIMER_REMOVE("command.set.timer.remove"), COMMAND_SET_TIMER_SUCCESS("command.set.timer.success"), COMMAND_SET_TIMER_USAGE("command.set.timer.usage"), - COMMAND_SET_TIMER_XPBAR_REMOVE("command.set.timer.xpBar.remove"), - COMMAND_SET_TIMER_XPBAR_SUCCESS("command.set.timer.xpBar.success"), + COMMAND_SET_TIMER_XPBAR("command.set.timer.xpBar"), COMMAND_SET_TYPE_DESCRIPTION("command.set.type.description"), COMMAND_SET_TYPE_ERROR_NOTTYPE("command.set.type.error.notType"), COMMAND_SET_TYPE_SUCCESS("command.set.type.success"), @@ -397,7 +399,11 @@ public enum MgCommandLangKey implements LangKey { COMMAND_TOOL_SETMODE("command.tool.setMode"), COMMAND_TOOL_SETTEAM("command.tool.setTeam"), COMMAND_TOOL_USAGE("command.tool.usage"), - COMMAND_LOADOUT_USAGE("command.loadout.usage"); + COMMAND_SELECT_DESCRIPTION("command.select.description"), + COMMAND_SELECT_USAGE("command.select.usage"), + COMMAND_SELECT_POINT1("command.select.point1"), + COMMAND_SELECT_POINT2("command.select.point2"), + COMMAND_SELECT_CLEAR("command.select.clear"); private final @NotNull String path; diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/managers/language/langkeys/MgMenuLangKey.java b/Minigames/src/main/java/au/com/mineauz/minigames/managers/language/langkeys/MgMenuLangKey.java index 315a7fa7d..562e3f570 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/managers/language/langkeys/MgMenuLangKey.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/managers/language/langkeys/MgMenuLangKey.java @@ -8,6 +8,7 @@ public enum MgMenuLangKey implements LangKey { MENU_BLOCKDATA_CLICKBLOCK("menu.blockData.clickBlock"), MENU_BLOCKDATA_DESCRIOPTION_EXTRA("menu.blockData.description.extra"), MENU_BLOCKDATA_ERROR_INVALID("menu.blockData.error.invalid"), + MENU_CHANGE_SHIFTCLICK("menu.change.ShiftClick"), MENU_COMMANDACTION_COMMAND_DESCRIPTION("menu.commandAction.command.description"), MENU_COMMANDACTION_COMMAND_NAME("menu.commandAction.command.name"), MENU_COMMANDACTION_SILENT_DESCRIPTION("menu.commandAction.silent.description"), @@ -20,7 +21,6 @@ public enum MgMenuLangKey implements LangKey { MENU_DEFAULTWINNINGTEAM_NAME("menu.defaultWinningTeam.name"), MENU_DELETE_RIGHTCLICK("menu.delete.RightClick"), MENU_DELETE_SHIFTRIGHTCLICK("menu.delete.ShiftRightClick"), - MENU_CHANGE_SHIFTCLICK("menu.change.ShiftClick"), MENU_DISPLAYLOADOUT_ALLOWFALLDAMAGE_NAME("menu.displayLoadout.allowFallDamage.name"), MENU_DISPLAYLOADOUT_ALLOWHUNGER_NAME("menu.displayLoadout.allowHunger.name"), MENU_DISPLAYLOADOUT_ALLOWOFFHAND_NAME("menu.displayLoadout.allowOffhand.name"), @@ -40,6 +40,7 @@ public enum MgMenuLangKey implements LangKey { MENU_DISPLAYLOADOUT_XPLEVEL_NAME("menu.displayLoadout.xpLevel.name"), MENU_DISPLAYNAME_NAME("menu.displayName.name"), MENU_EDIT_DOUBLECLICK("menu.edit.doubleClick"), + MENU_EDIT_SHIFTLEFT("menu.edit.shiftLeft"), MENU_EFFECTS_SAVE_NAME("menu.effects.save.name"), MENU_ELEMENTNOTSET("menu.elementNotSet"), MENU_ENUM_ERROR("menu.enum.error"), @@ -113,6 +114,7 @@ public enum MgMenuLangKey implements LangKey { MENU_MINIGAME_STARTPOINT_RANDOMIZE_DESCRIPTION("menu.minigame.startPoint.randomize.description"), MENU_MINIGAME_STARTPOINT_RANDOMIZE_NAME("menu.minigame.startPoint.randomize.name"), MENU_MINIGAME_STATISTIC_NAME("menu.minigame.statistic.name"), + MENU_MINIGAME_TIME_DISPLAYTYPE_NAME("menu.minigame.time.displayType.name"), MENU_MINIGAME_TIME_GAMELENGTH_NAME("menu.minigame.time.gameLength.name"), MENU_MINIGAME_TIME_SHOWCOMPLETION_NAME("menu.minigame.time.showCompletion.name"), MENU_MINIGAME_TIME_STARTWAIT_NAME("menu.time.startWait.name"), @@ -169,11 +171,12 @@ public enum MgMenuLangKey implements LangKey { MENU_POTIONADD_NAME("menu.potionAdd.name"), // todo unused MENU_POTION_DURATION("menu.potion.duration"), MENU_POTION_LEVEL("menu.potion.level"), - MENU_REWARDPAIR_EDIT("menu.rewardPair.edit"), MENU_RESOURCEPACK_OPTIONS_DISPLAYNAME_NAME("menu.resourcePack.options.displayname.name"), MENU_RESOURCEPACK_OPTIONS_ENABLE_NAME("menu.resourcePack.options.enable.name"), MENU_RESOURCEPACK_OPTIONS_FORCE_NAME("menu.resourcePack.options.force.name"), MENU_RESOURCEPACK_OPTIONS_NAME("menu.resourcePack.options.name"), + MENU_REWARDPAIR_EDIT("menu.rewardPair.edit"), + MENU_REWARD_DEATHS_DESCRIPTION("menu.reward.deaths.description"), MENU_REWARD_ENTERCHAT("menu.reward.enterChat"), MENU_REWARD_ERROR_GROUPEXISTS("menu.reward.error.groupExists"), MENU_REWARD_GROUP_ADD_NAME("menu.reward.group.add.name"), @@ -181,19 +184,23 @@ public enum MgMenuLangKey implements LangKey { MENU_REWARD_GROUP_NAME("menu.reward.group.name"), MENU_REWARD_ITEM_ADD_DESCRIPTION("menu.reward.group.add.description"), MENU_REWARD_ITEM_ADD_NAME("menu.reward.item.add.name"), + MENU_REWARD_KILLS_DESCRIPTION("menu.reward.kills.description"), MENU_REWARD_NAME("menu.reward.name"), MENU_REWARD_NOTREMOVED("menu.reward.notRemoved"), MENU_REWARD_PRIMARY_NAME("menu.reward.primary.name"), + MENU_REWARD_REVERTS_DESCRIPTION("menu.reward.reverts.description"), MENU_REWARD_SAVE_ALL_NAME("menu.reward.save.all.name"), MENU_REWARD_SAVE_NAME("menu.reward.save.name"), MENU_REWARD_SCHEME_HIERARCHY_COMPARISON_NAME("menu.reward.scheme.hierarchy.comparison.name"), MENU_REWARD_SCHEME_HIERARCHY_LOSS_AWARD_NAME("menu.reward.scheme.hierarchy.loss.award.name"), MENU_REWARD_SCHEME_HIERARCHY_LOSS_SECONDARY_NAME("menu.reward.scheme.hierarchy.loss.secondary.name"), MENU_REWARD_SCHEME_NAME("menu.reward.scheme.name"), + MENU_REWARD_SCORE_DESCRIPTION("menu.reward.score.description"), MENU_REWARD_SECONDARY_NAME("menu.reward.secondary.name"), MENU_REWARD_SELECTTYPE_NAME("menu.reward.selectType.name"), MENU_REWARD_SETTINGS_NAME("menu.reward.settings.name"), MENU_REWARD_SET_ADD_NAME("menu.reward.set.add.name"), + MENU_REWARD_TIME_DESCRIPTION("menu.reward.time.description"), MENU_REWARD_TYPE_NAME("menu.reward.type.name"), MENU_SCOREBOARD_CREATE_NAME("menu.scoreboard.create.name"), MENU_SCOREBOARD_ORDER_NAME("menu.scoreboard.order.name"), @@ -268,9 +275,8 @@ public enum MgMenuLangKey implements LangKey { MENU_WHITELIST_BLOCK_NAME("menu.whitelist.block.name"), MENU_WHITELIST_ENTERCHAT("menu.whitelist.enterChat"), MENU_WHITELIST_ERROR_CONTAINS("menu.whitelist.error.contains"), - MENU_WHITELIST_MODE("menu.whitelist.mode"), MENU_WHITELIST_INTERACT("menu.whitelist.interact"), - MENU_MINIGAME_TIME_DISPLAYTYPE_NAME("menu.minigame.time.displayType.name"); + MENU_WHITELIST_MODE("menu.whitelist.mode"); private final @NotNull String path; diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/menu/MenuItemLong.java b/Minigames/src/main/java/au/com/mineauz/minigames/menu/MenuItemLong.java index aeeb655e7..05f9fb5ea 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/menu/MenuItemLong.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/menu/MenuItemLong.java @@ -61,15 +61,6 @@ public MenuItemLong(@Nullable Material displayMat, @Nullable Component name, @Nu updateDescription(); } - public MenuItemLong(@Nullable Material displayMat, @NotNull LangKey langKey, @Nullable List<@NotNull Component> description, - @NotNull Callback value, @Nullable Long min, @Nullable Long max) { - super(displayMat, langKey, description); - this.value = value; - this.min = min; - this.max = max; - updateDescription(); - } - public void updateDescription() { setDescriptionPartAtEnd(DESCRIPTION_TOKEN, List.of(Component.text(value.getValue(), NamedTextColor.GREEN))); } diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/minigame/ScoreboardDisplay.java b/Minigames/src/main/java/au/com/mineauz/minigames/minigame/ScoreboardDisplay.java index dad7cb69a..2fb7674a7 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/minigame/ScoreboardDisplay.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/minigame/ScoreboardDisplay.java @@ -10,7 +10,10 @@ import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.apache.commons.text.WordUtils; -import org.bukkit.*; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Tag; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.BlockState; @@ -20,6 +23,7 @@ import org.bukkit.configuration.ConfigurationSection; import org.bukkit.metadata.FixedMetadataValue; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.CompletableFuture; @@ -187,13 +191,13 @@ private void updateSign(Block block, int place, StoredStat... stats) { Preconditions.checkArgument(stats.length >= 1 && stats.length <= 2); Sign sign = (Sign) block.getState(); - sign.getSide(Side.FRONT).line(0, MinigameUtils.limitIgnoreFormat(ChatColor.GREEN + String.valueOf(place) + ". " + ChatColor.BLACK + stats[0].getPlayerDisplayName(), 15)); - sign.getSide(Side.FRONT).line(1, MinigameUtils.limitIgnoreFormat(ChatColor.BLUE + stat.displayValueSign(stats[0].getValue(), settings), 15)); + sign.getSide(Side.FRONT).line(0, MinigameUtils.limitIgnoreFormat(Component.text(place + ". ").color(NamedTextColor.GREEN).append(stats[0].getPlayerDisplayName().color(NamedTextColor.BLACK)), 15)); + sign.getSide(Side.FRONT).line(1, MinigameUtils.limitIgnoreFormat(stat.displayValueSign(stats[0].getValue(), settings).color(NamedTextColor.BLUE), 15)); if (stats.length == 2) { ++place; - sign.getSide(Side.FRONT).line(2, MinigameUtils.limitIgnoreFormat(ChatColor.GREEN + String.valueOf(place) + ". " + ChatColor.BLACK + stats[1].getPlayerDisplayName(), 15)); - sign.getSide(Side.FRONT).line(3, MinigameUtils.limitIgnoreFormat(ChatColor.BLUE + stat.displayValueSign(stats[1].getValue(), settings), 15)); + sign.getSide(Side.FRONT).line(2, MinigameUtils.limitIgnoreFormat(Component.text(place + ". ").color(NamedTextColor.GREEN).append(stats[1].getPlayerDisplayName().color(NamedTextColor.BLACK)), 15)); + sign.getSide(Side.FRONT).line(3, MinigameUtils.limitIgnoreFormat(stat.displayValueSign(stats[1].getValue(), settings).color(NamedTextColor.BLUE), 15)); } else { sign.getSide(Side.FRONT).setLine(2, ""); sign.getSide(Side.FRONT).setLine(3, ""); @@ -366,7 +370,7 @@ public void reload() { needsLoad = false; updateSigns(); } else { - Minigames.getCmpnntLogger().error("Error when loading scoreboard " + stat.getDisplayName() + " for minigame " + minigame.getName(false), exp); + Minigames.getCmpnntLogger().error("Error when loading scoreboard " + stat.getDisplayName() + " for minigame " + minigame.getName(), exp); stats = List.of(); needsLoad = true; } diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/CommandReward.java b/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/CommandReward.java index 5b34ad8b7..44093eb44 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/CommandReward.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/CommandReward.java @@ -1,12 +1,14 @@ package au.com.mineauz.minigames.minigame.reward; +import au.com.mineauz.minigames.managers.MinigameMessageManager; +import au.com.mineauz.minigames.managers.language.langkeys.MgMenuLangKey; import au.com.mineauz.minigames.menu.Callback; import au.com.mineauz.minigames.menu.MenuItem; import au.com.mineauz.minigames.menu.MenuItemString; import au.com.mineauz.minigames.objects.MinigamePlayer; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; -import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.inventory.ItemStack; @@ -14,9 +16,11 @@ import org.jetbrains.annotations.NotNull; import java.util.ArrayList; +import java.util.Collections; import java.util.List; public class CommandReward extends RewardType { + private final static String DESCRIPTION_TOKEN = "CommandReward_description"; private String command = "say Hello World!"; public CommandReward(Rewards rewards) { @@ -60,7 +64,7 @@ public void loadReward(String path, ConfigurationSection config) { private class CommandRewardItem extends MenuItemString { private final CommandReward reward; - private final @NotNull List<@NotNull String> options = new ArrayList<>(); + private final @NotNull List<@NotNull RewardRarity> options = new ArrayList<>(); public CommandRewardItem(CommandReward reward) { super(Material.COMMAND_BLOCK, Component.text("/" + command), new Callback<>() { @@ -78,9 +82,7 @@ public void setValue(String value) { } }); - for (RewardRarity rarity : RewardRarity.values()) { - options.add(rarity.toString()); - } + Collections.addAll(options, RewardRarity.values()); this.reward = reward; updateDescription(); } @@ -91,56 +93,31 @@ public void updateName(String newName) { newName = newName.substring(0, 15); newName += "..."; } - meta.setDisplayName(ChatColor.RESET + newName); + meta.displayName(Component.text(newName)); getDisplayItem().setItemMeta(meta); - getContainer().removeItem(getSlot()); - getContainer().addItem(this, getSlot()); } @Override public void updateDescription() { List description; - int pos = options.indexOf(getRarity().toString()); + int pos = options.indexOf(getRarity()); int before = pos - 1; int after = pos + 1; - if (before == -1) + if (before == -1) { before = options.size() - 1; - if (after == options.size()) + } + if (after == options.size()) { after = 0; - - if (getDescriptionStr() != null) { - description = getDescriptionStr(); - if (getDescriptionStr().size() >= 3) { - String desc = ChatColor.stripColor(getDescriptionStr().get(1)); - - if (options.contains(desc)) { - description.set(0, ChatColor.GRAY + options.get(before)); - description.set(1, ChatColor.GREEN + getRarity().toString()); - description.set(2, ChatColor.GRAY + options.get(after)); - } else { - description.add(0, ChatColor.GRAY + options.get(before)); - description.add(1, ChatColor.GREEN + getRarity().toString()); - description.add(2, ChatColor.GRAY + options.get(after)); - description.add(3, ChatColor.DARK_PURPLE + "Shift + Left Click to change"); - description.add(4, ChatColor.DARK_PURPLE + "Shift + Right Click to remove"); - } - } else { - description.add(0, ChatColor.GRAY + options.get(before)); - description.add(1, ChatColor.GREEN + getRarity().toString()); - description.add(2, ChatColor.GRAY + options.get(after)); - description.add(3, ChatColor.DARK_PURPLE + "Shift + Left Click to change"); - description.add(4, ChatColor.DARK_PURPLE + "Shift + Right Click to remove"); - } - } else { - description = new ArrayList<>(); - description.add(ChatColor.GRAY + options.get(before)); - description.add(ChatColor.GREEN + getRarity().toString()); - description.add(ChatColor.GRAY + options.get(after)); - description.add(3, ChatColor.DARK_PURPLE + "Shift + Left Click to change"); - description.add(4, ChatColor.DARK_PURPLE + "Shift + Right Click to remove"); } - setDescriptionStr(description); + description = new ArrayList<>(); + description.add(options.get(before).getDisplayName().color(NamedTextColor.GRAY)); + description.add(getRarity().getDisplayName().color(NamedTextColor.GREEN)); + description.add(options.get(after).getDisplayName().color(NamedTextColor.GRAY)); + description.add(MinigameMessageManager.getMgMessage(MgMenuLangKey.MENU_EDIT_SHIFTLEFT).color(NamedTextColor.DARK_PURPLE)); + description.addAll(MinigameMessageManager.getMgMessageList(MgMenuLangKey.MENU_DELETE_SHIFTRIGHTCLICK)); + + setDescriptionPartAtEnd(DESCRIPTION_TOKEN, description); } @Override @@ -150,12 +127,12 @@ public ItemStack onDoubleClick() { @Override public ItemStack onClick() { - int ind = options.lastIndexOf(getRarity().toString()); + int ind = options.lastIndexOf(getRarity()); ind++; if (ind == options.size()) ind = 0; - setRarity(RewardRarity.valueOf(options.get(ind))); + setRarity(options.get(ind)); updateDescription(); return getDisplayItem(); @@ -163,13 +140,13 @@ public ItemStack onClick() { @Override public ItemStack onRightClick() { - int ind = options.lastIndexOf(getRarity().toString()); + int ind = options.lastIndexOf(getRarity()); ind--; if (ind == -1) { ind = options.size() - 1; } - setRarity(RewardRarity.valueOf(options.get(ind))); + setRarity(options.get(ind)); updateDescription(); return getDisplayItem(); diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/ItemReward.java b/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/ItemReward.java index bd45c24bd..5fb821ed9 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/ItemReward.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/ItemReward.java @@ -5,6 +5,7 @@ import au.com.mineauz.minigames.managers.language.MinigamePlaceHolderKey; import au.com.mineauz.minigames.managers.language.langkeys.MgMenuLangKey; import au.com.mineauz.minigames.managers.language.langkeys.MinigameLangKey; +import au.com.mineauz.minigames.menu.Callback; import au.com.mineauz.minigames.menu.MenuItem; import au.com.mineauz.minigames.menu.MenuItemItemNbt; import au.com.mineauz.minigames.objects.MinigamePlayer; @@ -14,7 +15,6 @@ import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; @@ -88,27 +88,28 @@ private class MenuItemReward extends MenuItemItemNbt { private final @NotNull List options; public MenuItemReward(@NotNull ItemReward reward) { - super(Material.DIAMOND, Component.translatable(Material.DIAMOND.translationKey())); + super(Material.DIAMOND, Component.translatable(Material.DIAMOND.translationKey()), new Callback<>() { + @Override + public ItemStack getValue() { + return item; + } + + @Override + public void setValue(ItemStack value) { + item = value; + } + }); setDisplayItem(reward.getRewardItem()); options = Arrays.asList(RewardRarity.values()); this.reward = reward; updateDescription(); } - @Override - public void setDisplayItem(@NotNull ItemStack item) { - super.setDisplayItem(item); - ItemMeta meta = getDisplayItem().getItemMeta(); - meta.displayName(Component.translatable(item.translationKey())); - getDisplayItem().setItemMeta(meta); - } @Override public ItemStack onClickWithItem(ItemStack item) { - setDisplayItem(item); setRewardItem(item.clone()); - updateDescription(); - return getDisplayItem(); + return super.onClickWithItem(item); } public void updateDescription() { diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/scheme/DeathsRewardScheme.java b/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/scheme/DeathsRewardScheme.java index 3013df384..11a07ab8e 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/scheme/DeathsRewardScheme.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/scheme/DeathsRewardScheme.java @@ -1,10 +1,14 @@ package au.com.mineauz.minigames.minigame.reward.scheme; +import au.com.mineauz.minigames.managers.MinigameMessageManager; +import au.com.mineauz.minigames.managers.language.MinigamePlaceHolderKey; +import au.com.mineauz.minigames.managers.language.langkeys.MgMenuLangKey; import au.com.mineauz.minigames.minigame.Minigame; import au.com.mineauz.minigames.objects.MinigamePlayer; import au.com.mineauz.minigames.stats.MinigameStatistics; import au.com.mineauz.minigames.stats.StoredGameStats; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; public class DeathsRewardScheme extends HierarchyRewardScheme { @Override @@ -23,8 +27,9 @@ protected Integer loadValue(String key) { } @Override - protected String getMenuItemDescName(Integer value) { - return "Deaths: " + value; + protected Component getMenuItemDescName(Integer value) { + return MinigameMessageManager.getMgMessage(MgMenuLangKey.MENU_REWARD_DEATHS_DESCRIPTION, + Placeholder.unparsed(MinigamePlaceHolderKey.NUMBER.getKey(), String.valueOf(value))); } @Override diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/scheme/KillsRewardScheme.java b/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/scheme/KillsRewardScheme.java index 20970db5a..53e29a10e 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/scheme/KillsRewardScheme.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/scheme/KillsRewardScheme.java @@ -1,10 +1,14 @@ package au.com.mineauz.minigames.minigame.reward.scheme; +import au.com.mineauz.minigames.managers.MinigameMessageManager; +import au.com.mineauz.minigames.managers.language.MinigamePlaceHolderKey; +import au.com.mineauz.minigames.managers.language.langkeys.MgMenuLangKey; import au.com.mineauz.minigames.minigame.Minigame; import au.com.mineauz.minigames.objects.MinigamePlayer; import au.com.mineauz.minigames.stats.MinigameStatistics; import au.com.mineauz.minigames.stats.StoredGameStats; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; public class KillsRewardScheme extends HierarchyRewardScheme { @Override @@ -23,8 +27,9 @@ protected Integer loadValue(String key) { } @Override - protected String getMenuItemDescName(Integer value) { - return "Kills: " + value; + protected Component getMenuItemDescName(Integer value) { + return MinigameMessageManager.getMgMessage(MgMenuLangKey.MENU_REWARD_KILLS_DESCRIPTION, + Placeholder.unparsed(MinigamePlaceHolderKey.NUMBER.getKey(), String.valueOf(value))); } @Override diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/scheme/RevertsRewardScheme.java b/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/scheme/RevertsRewardScheme.java index 28834ad7d..995a31448 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/scheme/RevertsRewardScheme.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/scheme/RevertsRewardScheme.java @@ -1,10 +1,14 @@ package au.com.mineauz.minigames.minigame.reward.scheme; +import au.com.mineauz.minigames.managers.MinigameMessageManager; +import au.com.mineauz.minigames.managers.language.MinigamePlaceHolderKey; +import au.com.mineauz.minigames.managers.language.langkeys.MgMenuLangKey; import au.com.mineauz.minigames.minigame.Minigame; import au.com.mineauz.minigames.objects.MinigamePlayer; import au.com.mineauz.minigames.stats.MinigameStatistics; import au.com.mineauz.minigames.stats.StoredGameStats; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; public class RevertsRewardScheme extends HierarchyRewardScheme { @Override @@ -23,8 +27,9 @@ protected Integer loadValue(String key) { } @Override - protected String getMenuItemDescName(Integer value) { - return "Reverts: " + value; + protected Component getMenuItemDescName(Integer value) { + return MinigameMessageManager.getMgMessage(MgMenuLangKey.MENU_REWARD_REVERTS_DESCRIPTION, + Placeholder.unparsed(MinigamePlaceHolderKey.NUMBER.getKey(), String.valueOf(value))); } @Override diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/scheme/ScoreRewardScheme.java b/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/scheme/ScoreRewardScheme.java index b093828cd..ae0bdc3b5 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/scheme/ScoreRewardScheme.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/minigame/reward/scheme/ScoreRewardScheme.java @@ -1,10 +1,14 @@ package au.com.mineauz.minigames.minigame.reward.scheme; +import au.com.mineauz.minigames.managers.MinigameMessageManager; +import au.com.mineauz.minigames.managers.language.MinigamePlaceHolderKey; +import au.com.mineauz.minigames.managers.language.langkeys.MgMenuLangKey; import au.com.mineauz.minigames.minigame.Minigame; import au.com.mineauz.minigames.objects.MinigamePlayer; import au.com.mineauz.minigames.stats.MinigameStatistics; import au.com.mineauz.minigames.stats.StoredGameStats; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; public class ScoreRewardScheme extends HierarchyRewardScheme { @Override @@ -23,8 +27,9 @@ protected Integer loadValue(String key) { } @Override - protected String getMenuItemDescName(Integer value) { - return "Score: " + value; + protected Component getMenuItemDescName(Integer value) { + return MinigameMessageManager.getMgMessage(MgMenuLangKey.MENU_REWARD_SCORE_DESCRIPTION, + Placeholder.unparsed(MinigamePlaceHolderKey.NUMBER.getKey(), String.valueOf(value))); } @Override diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/signs/SignBase.java b/Minigames/src/main/java/au/com/mineauz/minigames/signs/SignBase.java index a73aa2a3b..eed9c628e 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/signs/SignBase.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/signs/SignBase.java @@ -156,7 +156,11 @@ private void signBreak(BlockBreakEvent event) { for (CTFFlag ctfFlag : takenFlags) { if (ctfFlag.getAttachedToLocation().equals(blockLocation)) { - AMinigameSign mgSign = minigameSigns.get("Flag"); + // new creation for easy access to permissions. + // I wish once again that you could define abstract static methods, + // so we could access static values like permissions without an object + // but guarantee that this methode exists + AMinigameSign mgSign = new CTFFlagSign(); if (mgSign.getCreatePermission() != null && !event.getPlayer().hasPermission(mgSign.getCreatePermission())) { event.setCancelled(true); diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/stats/BasicMinigameStat.java b/Minigames/src/main/java/au/com/mineauz/minigames/stats/BasicMinigameStat.java index a21b79c12..5d190f6e5 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/stats/BasicMinigameStat.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/stats/BasicMinigameStat.java @@ -18,12 +18,17 @@ class BasicMinigameStat extends MinigameStat { super(name, displayName, format); } + /** + * @param value The value in milliseconds to display + * @param settings The settings of this stat + * @return + */ @Override - public String displayValue(long value, StatSettings settings) { + public Component displayValue(long value, @NotNull StatSettings settings) { if (this == MinigameStatistics.CompletionTime) { - return (value / 1000) + " seconds"; + return MinigameUtils.convertTime(Duration.ofMillis(value), false); } else { - return value + " " + settings.getDisplayName(); + return Component.text(value).appendSpace().append(settings.getDisplayName()); } } @@ -33,11 +38,11 @@ public String displayValue(long value, StatSettings settings) { * @return */ @Override - public Component displayValueSign(long value, StatSettings settings) { + public Component displayValueSign(long value, @NotNull StatSettings settings) { if (this == MinigameStatistics.CompletionTime) { - return MinigameUtils.convertTime(Duration.ofMillis(value)); + return MinigameUtils.convertTime(Duration.ofMillis(value), true); } else { - return value + " " + settings.getDisplayName(); + return Component.text(value).appendSpace().append(settings.getDisplayName()); } } } diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/stats/MinigameStat.java b/Minigames/src/main/java/au/com/mineauz/minigames/stats/MinigameStat.java index a95435624..08126b427 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/stats/MinigameStat.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/stats/MinigameStat.java @@ -82,8 +82,8 @@ public boolean shouldStoreStat(long value, StatFormat actualFormat) { * @param settings The settings of this stat * @return The output string */ - public String displayValue(long value, StatSettings settings) { - return String.valueOf(value); + public Component displayValue(long value, @NotNull StatSettings settings) { + return Component.text(String.valueOf(value)); } /** @@ -93,5 +93,5 @@ public String displayValue(long value, StatSettings settings) { * @param settings The settings of this stat * @return The output string */ - public abstract Component displayValueSign(long value, StatSettings settings); + public abstract Component displayValueSign(long value, @NotNull StatSettings settings); } diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/stats/StoredStat.java b/Minigames/src/main/java/au/com/mineauz/minigames/stats/StoredStat.java index 0319df80d..008dd82e6 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/stats/StoredStat.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/stats/StoredStat.java @@ -1,5 +1,8 @@ package au.com.mineauz.minigames.stats; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; + import java.util.UUID; /** @@ -9,11 +12,11 @@ public final class StoredStat { private final UUID playerId; private final String playerName; - private final String playerDispName; + private final Component playerDispName; private long value; - public StoredStat(UUID playerId, String name, String displayName, long value) { + public StoredStat(UUID playerId, String name, Component displayName, long value) { this.playerId = playerId; this.playerName = name; this.playerDispName = displayName; @@ -37,7 +40,7 @@ public String getPlayerName() { /** * @return Returns the display name of the owning player */ - public String getPlayerDisplayName() { + public Component getPlayerDisplayName() { return playerDispName; } @@ -59,6 +62,6 @@ public void setValue(long value) { @Override public String toString() { - return String.format("%s: %d", playerDispName, value); + return String.format("%s: %d", PlainTextComponentSerializer.plainText().serialize(playerDispName), value); } } diff --git a/Minigames/src/main/resources/messages.properties b/Minigames/src/main/resources/messages.properties index 588d6e9f9..c54e87003 100644 --- a/Minigames/src/main/resources/messages.properties +++ b/Minigames/src/main/resources/messages.properties @@ -1,4 +1,6 @@ and=and +bool.false=false +bool.true=true command.backend.description=Allows access to export and change the backend used by minigames. command.backend.export.start=Exporting backend to ... command.backend.export.success=Export complete! @@ -137,6 +139,11 @@ command.scoreboard.error.notOrder=Unknown order . Expected asc, ascending, command.scoreboard.error.usage=/minigame scoreboard [-o |-l |-s ] command.scoreboard.list.player=" : command.scoreboard.load=Loading scoreboard... +command.select.clear=Selection cleared. +command.select.description=Select and clear region selections +command.select.point1=Point 1 selected +command.select.point2=Point 2 selected +command.select.usage=/minigame select 1/minigame select 2/minigame select clear command.set-regenArea.usage=/minigame set regenarea select <1/2>/minigame set regenarea create /minigame set regenarea list /minigame set regenarea delete command.set.allowEnderPerls.description=Sets whether players can use ender pearls in a Minigame. command.set.allowEnderPerls.success=Ender pearl usage in was set to @@ -343,12 +350,13 @@ command.set.team.maxPlayers=Maximum players for the team has been set to command.set.team.remove=Removed from command.set.team.rename=Set display name to for command.set.team.usage=/minigame set team add [Display Name]/minigame set team rename /minigame set team remove /minigame set team maxplayers +command.set.timer.bossBar= will now show the timer in the boss bar. command.set.timer.description=Sets the maximum time length (in seconds) for a Minigame. Adding 'm' or 'h' to the end of the time will use minutes or hours instead. The highest score at the end of this time wins. +command.set.timer.none= will no longer show the timer. command.set.timer.remove=The timer for has been removed. command.set.timer.success=The timer for has been set to