diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerListener.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerListener.java index fae60ab..bf687ec 100644 --- a/src/main/java/de/lunarakai/minecleaner/MinecleanerListener.java +++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerListener.java @@ -48,7 +48,7 @@ public class MinecleanerListener implements Listener { hasRightClicked = true; } - if(arena.getCurrentMinecleanerGame() != null && !arena.getCurrentMinecleanerGame().gameover && (arena.getArenaStatus() == ArenaStatus.PLAYING || arena.getArenaStatus() == ArenaStatus.COMPLETED)) { + if(!arena.getCurrentMinecleanerGame().gameover && (arena.getArenaStatus() == ArenaStatus.PLAYING || arena.getArenaStatus() == ArenaStatus.COMPLETED)) { if(arena.getArenaStatus() == ArenaStatus.PLAYING) { int d0x = arena.getOrientation().getModX(); int d0z = arena.getOrientation().getModZ(); @@ -131,6 +131,117 @@ public class MinecleanerListener implements Listener { } } } + if(e.getInventory().equals(plugin.getManager().getSettingsInventory())) { + int slot = e.getRawSlot(); + switch (slot) { + case 10: { + if(plugin.getManager().getSettingsValue("allowmanualreset", player) == 0) { + plugin.getManager().updateSettingsValue("allowmanualreset", 1, player); + player.closeInventory(); + player.openInventory(plugin.getManager().showSettingsInventory(player)); + } else { + plugin.getManager().updateSettingsValue("allowmanualreset", 0, player); + player.closeInventory(); + player.openInventory(plugin.getManager().showSettingsInventory(player)); + } + break; + } + case 12: { + if(plugin.getManager().getSettingsValue("additionaldisplay", player) == 0) { + plugin.getManager().updateSettingsValue("additionaldisplay", 1, player); + player.closeInventory(); + player.openInventory(plugin.getManager().showSettingsInventory(player)); + } else { + plugin.getManager().updateSettingsValue("additionaldisplay", 0, player); + player.closeInventory(); + player.openInventory(plugin.getManager().showSettingsInventory(player)); + } + break; + } + case 14: { + if(plugin.getManager().getSettingsValue("timer", player) == 0) { + plugin.getManager().updateSettingsValue("timer", 1, player); + player.closeInventory(); + player.openInventory(plugin.getManager().showSettingsInventory(player)); + } else { + plugin.getManager().updateSettingsValue("timer", 0, player); + if(arena != null) { + arena.updateIngameInfoTexts(); + } + player.closeInventory(); + player.openInventory(plugin.getManager().showSettingsInventory(player)); + } + break; + } + case 16: { + switch (plugin.getManager().getSettingsValue("resettime", player)) { + case 1: { + plugin.getManager().updateSettingsValue("resettime", 2, player); + player.closeInventory(); + player.openInventory(plugin.getManager().showSettingsInventory(player)); + break; + } + case 2: { + plugin.getManager().updateSettingsValue("resettime", 3, player); + player.closeInventory(); + player.openInventory(plugin.getManager().showSettingsInventory(player)); + break; + } + case 3: { + plugin.getManager().updateSettingsValue("resettime", 4, player); + player.closeInventory(); + player.openInventory(plugin.getManager().showSettingsInventory(player)); + break; + } + case 4: { + plugin.getManager().updateSettingsValue("resettime", 5, player); + player.closeInventory(); + player.openInventory(plugin.getManager().showSettingsInventory(player)); + break; + } + case 5: { + plugin.getManager().updateSettingsValue("resettime", 6, player); + player.closeInventory(); + player.openInventory(plugin.getManager().showSettingsInventory(player)); + break; + } + case 6: { + plugin.getManager().updateSettingsValue("resettime", 7, player); + player.closeInventory(); + player.openInventory(plugin.getManager().showSettingsInventory(player)); + break; + } + case 7: { + plugin.getManager().updateSettingsValue("resettime", 8, player); + player.closeInventory(); + player.openInventory(plugin.getManager().showSettingsInventory(player)); + break; + } + case 8: { + plugin.getManager().updateSettingsValue("resettime", 9, player); + player.closeInventory(); + player.openInventory(plugin.getManager().showSettingsInventory(player)); + break; + } + case 9: { + plugin.getManager().updateSettingsValue("resettime", 10, player); + player.closeInventory(); + player.openInventory(plugin.getManager().showSettingsInventory(player)); + break; + } + case 10: { + plugin.getManager().updateSettingsValue("resettime", 1, player); + player.closeInventory(); + player.openInventory(plugin.getManager().showSettingsInventory(player)); + break; + } + } + } + default: { + break; + } + } + } } } diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java index 2441a99..ed16168 100644 --- a/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java +++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java @@ -373,6 +373,75 @@ public class MinecleanerManager { } } + public Inventory showSettingsInventory(Player player) { + int current = getSettingsValue("allowmanualreset", player); + + if(current == 0) { + settingsInventory.setItem(10, + ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.SHEARS), ChatColor.RED + "Manuelles Resetten deaktiviert"))); + } else { + settingsInventory.setItem(10, + ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.SHEARS), ChatColor.GREEN + "Manuelles Resetten aktiviert"))); + } + + current = getSettingsValue("additionaldisplay", player); + if(current == 0) { + settingsInventory.setItem(12, + ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.NAME_TAG), ChatColor.RED + "Zusätzliche Anzeige in der Action Bar deaktiviert"))); + } else { + settingsInventory.setItem(12, + ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.NAME_TAG), ChatColor.GREEN + "Zusätzliche Anzeige in der Action Bar aktiviert"))); + } + + + current = getSettingsValue("timer", player); + + if(current == 0) { + settingsInventory.setItem(14, + ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.CLOCK), ChatColor.RED + "Timer wird nicht angezeigt"))); + } else { + settingsInventory.setItem(14, + ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.CLOCK), ChatColor.GREEN + "Timer wird angezeigt"))); + } + + current = getSettingsValue("resettime", player); + + switch (current) { + case 1: + settingsInventory.setItem(16, ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.CANDLE), ChatColor.GOLD + "Resetzeit: " + ChatColor.RED + "1s"))); + break; + case 2: + settingsInventory.setItem(16, ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.CANDLE), ChatColor.GOLD + "Resetzeit: " + ChatColor.RED + "2s"))); + break; + case 3: + settingsInventory.setItem(16, ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.CANDLE), ChatColor.GOLD + "Resetzeit: " + ChatColor.RED + "3s"))); + break; + case 4: + settingsInventory.setItem(16, ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.CANDLE), ChatColor.GOLD + "Resetzeit: " + ChatColor.RED + "4s"))); + break; + case 5: + settingsInventory.setItem(16, ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.CANDLE), ChatColor.GOLD + "Resetzeit: " + ChatColor.RED + "5s"))); + break; + case 6: + settingsInventory.setItem(16, ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.CANDLE), ChatColor.GOLD + "Resetzeit: " + ChatColor.RED + "6s"))); + break; + case 7: + settingsInventory.setItem(16, ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.CANDLE), ChatColor.GOLD + "Resetzeit: " + ChatColor.RED + "7s"))); + break; + case 8: + settingsInventory.setItem(16, ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.CANDLE), ChatColor.GOLD + "Resetzeit: " + ChatColor.RED + "8s"))); + break; + case 9: + settingsInventory.setItem(16, ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.CANDLE), ChatColor.GOLD + "Resetzeit: " + ChatColor.RED + "9s"))); + break; + case 10: + settingsInventory.setItem(16, ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.CANDLE), ChatColor.GOLD + "Resetzeit: " + ChatColor.RED + "10s"))); + break; + } + + return settingsInventory; + } + public int getSettingsValue(String settingsKeyString, Player player) { PlayerStatistics playerStatistics = plugin.getCubesideStatistics().getStatistics(player.getUniqueId()); SettingKey settingKey = plugin.getCubesideStatistics().getSettingKey("minecleaner.settings." + settingsKeyString); diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerSettingsInventory.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerSettingsInventory.java deleted file mode 100644 index 2ac51ee..0000000 --- a/src/main/java/de/lunarakai/minecleaner/MinecleanerSettingsInventory.java +++ /dev/null @@ -1,124 +0,0 @@ -package de.lunarakai.minecleaner; - -import de.iani.cubesideutils.bukkit.inventory.AbstractWindow; -import de.lunarakai.minecleaner.utils.ItemUtil; -import net.md_5.bungee.api.ChatColor; -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryType; -import org.bukkit.inventory.ItemStack; - - -public class MinecleanerSettingsInventory extends AbstractWindow { - - private static final int SETTINGS_ALLOW_MANUEL_RESET = 10; - private static final int SETTINGS_ADDITIONAL_DISPLAY = 12; - private static final int SETTINGS_TIMER = 14; - private static final int SETTINGS_RESETTIME = 16; - private static final int WINDOW_SIZE = 27; - - private MinecleanerPlugin plugin; - - public MinecleanerSettingsInventory(Player player, MinecleanerPlugin plugin) { - super(player, Bukkit.createInventory(player, InventoryType.CHEST, plugin.getDisplayedPluginName() + " Einstellungen")); - this.plugin = plugin; - } - - @Override - protected void rebuildInventory() { - Player player = getPlayer(); - - for (int i = 0; i < WINDOW_SIZE; i++) { - ItemStack item; - switch (i) { - case SETTINGS_ALLOW_MANUEL_RESET -> { - if (plugin.getManager().getSettingsValue("allowmanualreset", player) == 0) { - item = ItemUtil.createGuiItem(Material.SHEARS, ChatColor.RED + "Manuelles Resetten deaktiviert"); - } else { - item = ItemUtil.createGuiItem(Material.SHEARS, ChatColor.GREEN + "Manuelles Resetten aktiviert"); - } - } - case SETTINGS_ADDITIONAL_DISPLAY -> { - if (plugin.getManager().getSettingsValue("additionaldisplay", player) == 0) { - item = ItemUtil.createGuiItem(Material.NAME_TAG, ChatColor.RED + "Zusätzliche Anzeige in der Action Bar deaktiviert\""); - } else { - item = ItemUtil.createGuiItem(Material.NAME_TAG, ChatColor.GREEN + "Zusätzliche Anzeige in der Action Bar aktiviert\""); - } - } - case SETTINGS_TIMER -> { - if (plugin.getManager().getSettingsValue("timer", player) == 0) { - item = ItemUtil.createGuiItem(Material.CLOCK, ChatColor.RED + "Timer wird nicht angezeigt"); - } else { - item = ItemUtil.createGuiItem(Material.CLOCK, ChatColor.GREEN + "Timer wird angezeigt"); - } - } - case SETTINGS_RESETTIME -> { - int current = plugin.getManager().getSettingsValue("resettime", player); - item = ItemUtil.createGuiItem(Material.CANDLE, ChatColor.GOLD + "Resetzeit: " + ChatColor.RED + current + "s"); - } - default -> item = ItemUtil.EMPTY_ICON; - } - this.getInventory().setItem(i, item); - } - } - - @Override - public void onItemClicked(InventoryClickEvent event) { - if (!mayAffectThisInventory(event)) { - return; - } - - event.setCancelled(true); - if (!getInventory().equals(event.getClickedInventory())) { - return; - } - - Player player = getPlayer(); - - - int slot = event.getSlot(); - switch (slot) { - case SETTINGS_ALLOW_MANUEL_RESET -> { - if(plugin.getManager().getSettingsValue("allowmanualreset", player) == 0) { - plugin.getManager().updateSettingsValue("allowmanualreset", 1, player); - } else { - plugin.getManager().updateSettingsValue("allowmanualreset", 0, player); - } - rebuildInventory(); - } - case SETTINGS_ADDITIONAL_DISPLAY -> { - if(plugin.getManager().getSettingsValue("additionaldisplay", player) == 0) { - plugin.getManager().updateSettingsValue("additionaldisplay", 1, player); - } else { - plugin.getManager().updateSettingsValue("additionaldisplay", 0, player); - } - rebuildInventory(); - } - case SETTINGS_TIMER -> { - if(plugin.getManager().getSettingsValue("timer", player) == 0) { - plugin.getManager().updateSettingsValue("timer", 1, player); - } else { - MinecleanerArena arena = plugin.getArenaList().getPlayerArena(player); - plugin.getManager().updateSettingsValue("timer", 0, player); - if(arena != null) { - arena.updateIngameInfoTexts(); - } - } - rebuildInventory(); - } - case SETTINGS_RESETTIME -> { - int current = plugin.getManager().getSettingsValue("resettime", player); - if(plugin.getManager().getSettingsValue("resettime", player) < 10) { - plugin.getManager().updateSettingsValue("resettime", current + 1, player); - } else { - plugin.getManager().updateSettingsValue("resettime", 1, player); - } - rebuildInventory(); - } - default -> { - } - } - } -} diff --git a/src/main/java/de/lunarakai/minecleaner/commands/InfoCommand.java b/src/main/java/de/lunarakai/minecleaner/commands/InfoCommand.java index b49992c..fc588f9 100644 --- a/src/main/java/de/lunarakai/minecleaner/commands/InfoCommand.java +++ b/src/main/java/de/lunarakai/minecleaner/commands/InfoCommand.java @@ -43,10 +43,10 @@ public class InfoCommand extends SubCommand{ ArgsParser args) throws DisallowsCommandBlockException, RequiresPlayerException, NoPermissionException, IllegalSyntaxException, InternalCommandException { sender.sendMessage(NamedChatColor.GREEN + "--- " + ChatColor.AQUA + plugin.getName() + ChatColor.GREEN + " ---"); - sender.sendMessage(createLangComponent("minecleaner.info.version", ": ", plugin.getPluginMeta().getVersion(), NamedTextColor.AQUA, NamedTextColor.GREEN)); - sender.sendMessage(createLangComponent("minecleaner.info.developer", ": ", plugin.getPluginMeta().getAuthors().get(0), NamedTextColor.AQUA, NamedTextColor.GREEN)); - sender.sendMessage(createLangComponent("minecleaner.info.website", ": ", plugin.getPluginMeta().getWebsite(), NamedTextColor.AQUA, NamedTextColor.GREEN)); - sender.sendMessage(createLangComponent("minecleaner.info.license", ": ", "GPL-3.0", NamedTextColor.AQUA, NamedTextColor.GREEN)); + sender.sendMessage(createLangComponent("minecleaner.info.version", NamedTextColor.AQUA) + ": " + ChatColor.GREEN + plugin.getPluginMeta().getVersion()); + sender.sendMessage(createLangComponent("minecleaner.info.developer", NamedTextColor.AQUA) + ": " + ChatColor.GREEN + plugin.getPluginMeta().getAuthors().get(0)); + sender.sendMessage(createLangComponent("minecleaner.info.website", NamedTextColor.AQUA) + ": " + ChatColor.GREEN + plugin.getPluginMeta().getWebsite()); + sender.sendMessage(createLangComponent("minecleaner.info.license", NamedTextColor.AQUA) + ": " + ChatColor.GREEN + "GPL-3.0"); return true; } } diff --git a/src/main/java/de/lunarakai/minecleaner/commands/InviteCommand.java b/src/main/java/de/lunarakai/minecleaner/commands/InviteCommand.java deleted file mode 100644 index df5d52d..0000000 --- a/src/main/java/de/lunarakai/minecleaner/commands/InviteCommand.java +++ /dev/null @@ -1,37 +0,0 @@ -package de.lunarakai.minecleaner.commands; - -import de.iani.cubesideutils.bukkit.commands.SubCommand; -import de.iani.cubesideutils.bukkit.commands.exceptions.*; -import de.iani.cubesideutils.commands.ArgsParser; -import de.lunarakai.minecleaner.MinecleanerPlugin; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; - -public class InviteCommand extends SubCommand { - /* - TODO: - - Invite other Players to play in Duo Mode - - Add Functionality to support multiple Players in the same game - - use settings of player that invited the other player - */ - - @Override - public String getUsage() { - return ""; - } - - @Override - public boolean requiresPlayer() { - return true; - } - - @Override - public String getRequiredPermission() { - return MinecleanerPlugin.PERMISSION_PLAY; - } - - @Override - public boolean onCommand(CommandSender commandSender, Command command, String s, String s1, ArgsParser argsParser) throws DisallowsCommandBlockException, RequiresPlayerException, NoPermissionException, IllegalSyntaxException, InternalCommandException { - return false; - } -} diff --git a/src/main/java/de/lunarakai/minecleaner/commands/SettingsCommand.java b/src/main/java/de/lunarakai/minecleaner/commands/SettingsCommand.java index 4679e0d..a7051ad 100644 --- a/src/main/java/de/lunarakai/minecleaner/commands/SettingsCommand.java +++ b/src/main/java/de/lunarakai/minecleaner/commands/SettingsCommand.java @@ -8,7 +8,6 @@ import de.iani.cubesideutils.bukkit.commands.exceptions.NoPermissionException; import de.iani.cubesideutils.bukkit.commands.exceptions.RequiresPlayerException; import de.iani.cubesideutils.commands.ArgsParser; import de.lunarakai.minecleaner.MinecleanerPlugin; -import de.lunarakai.minecleaner.MinecleanerSettingsInventory; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -40,7 +39,7 @@ public class SettingsCommand extends SubCommand { public boolean onCommand(CommandSender sender, Command command, String s, String s1, ArgsParser args) throws DisallowsCommandBlockException, RequiresPlayerException, NoPermissionException, IllegalSyntaxException, InternalCommandException { Player player = (Player) sender; - new MinecleanerSettingsInventory(player, plugin).open(); + player.openInventory(plugin.getManager().showSettingsInventory(player)); return true; } } diff --git a/src/main/java/de/lunarakai/minecleaner/commands/StatsCommand.java b/src/main/java/de/lunarakai/minecleaner/commands/StatsCommand.java index dac1757..1b68ae6 100644 --- a/src/main/java/de/lunarakai/minecleaner/commands/StatsCommand.java +++ b/src/main/java/de/lunarakai/minecleaner/commands/StatsCommand.java @@ -8,6 +8,7 @@ import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import de.iani.cubesideutils.StringUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.bukkit.commands.exceptions.DisallowsCommandBlockException; import de.iani.cubesideutils.bukkit.commands.exceptions.IllegalSyntaxException; @@ -18,6 +19,7 @@ import de.iani.cubesideutils.commands.ArgsParser; import de.lunarakai.minecleaner.MinecleanerPlugin; import de.lunarakai.minecleaner.PlayerStatisticsData; import de.lunarakai.minecleaner.utils.MinecleanerStringUtil; +import net.md_5.bungee.api.ChatColor; import static de.lunarakai.minecleaner.utils.MinecleanerComponentUtils.createLangComponent; @@ -59,22 +61,8 @@ public class StatsCommand extends SubCommand { } else { sender.sendMessage(createLangComponent("data.player.other", plugin.getDisplayedPluginName(), data.getPlayerName(), NamedTextColor.AQUA).append(Component.text(":"))); } - - sender.sendMessage(createLangComponent("data.player.pointsscored", NamedTextColor.BLUE) - .append(Component.text(": ", NamedTextColor.BLUE)) - .append(Component.text(String.valueOf(data.getPointsAcquiredTotal()), NamedTextColor.GREEN)) - .append(Component.text(" (", NamedTextColor.GREEN)) - .append(createLangComponent("data.player.thismonth", NamedTextColor.GREEN)) - .append(Component.text(": " + String.valueOf(data.getPointsAquiredMonth()) + ")", NamedTextColor.GREEN))); - - - sender.sendMessage(createLangComponent("data.player.roundswon", NamedTextColor.BLUE) - .append(Component.text(": ", NamedTextColor.BLUE)) - .append(Component.text(String.valueOf(data.getWonGamesPlayed()), NamedTextColor.GREEN)) - .append(Component.text(" (", NamedTextColor.GREEN)) - .append(createLangComponent("data.player.thismonth", NamedTextColor.GREEN)) - .append(Component.text(": " + String.valueOf(data.getWonGamesPlayedThisMonth()) + ")", NamedTextColor.GREEN))); - + sender.sendMessage(ChatColor.BLUE + " Punkte erspielt: " + ChatColor.GREEN + data.getPointsAcquiredTotal() + " (Dieser Monat: " + data.getPointsAquiredMonth() + ")"); + sender.sendMessage(ChatColor.BLUE + " Runden gewonnen: " + ChatColor.GREEN + data.getWonGamesPlayed() + " (Dieser Monat: " + data.getWonGamesPlayedThisMonth() + ")"); for(Entry e : plugin.getManager().getSizes().entrySet()) { int totalWonSize = data.getGamesPlayedSize(e.getKey()); int totalWonMonth = data.getGamesPlayedSizeThisMonth(e.getKey()); @@ -82,35 +70,14 @@ public class StatsCommand extends SubCommand { int totalSizeMonth = data.getTotalGamesPlayedSizeThisMonth(e.getKey()); if(totalSize > 0) { - String sizeName = e.getValue(); - if(sizeName.equals("groß")) { - sizeName = "gross"; - } - sender.sendMessage(createLangComponent("arena.width." + sizeName, NamedTextColor.AQUA).append(Component.text(":", NamedTextColor.AQUA))); - - sender.sendMessage(Component.text(" ") - .append(createLangComponent("data.player.roundswon", NamedTextColor.BLUE)) - .append(Component.text(" ")) - .append(Component.text(String.valueOf(totalWonSize), NamedTextColor.GREEN)) - .append(Component.text(" ")) - .append(createLangComponent("data.player.outof", NamedTextColor.GREEN)) - .append(Component.text(" " + totalSize + " (" + MinecleanerStringUtil.percentageString(totalWonSize, totalSize) + ")", NamedTextColor.GREEN))); - - sender.sendMessage(Component.text(" ") - .append(createLangComponent("data.player.thismonth", NamedTextColor.BLUE)) - .append(Component.text(" ")) - .append(Component.text(String.valueOf(totalWonMonth), NamedTextColor.GREEN)) - .append(Component.text(" ")) - .append(createLangComponent("data.player.outof", NamedTextColor.GREEN)) - .append(Component.text(" " + totalSize + " (" + MinecleanerStringUtil.percentageString(totalWonMonth, totalSizeMonth) + ")", NamedTextColor.GREEN))); - + String sizeName = StringUtil.capitalizeFirstLetter(e.getValue(), false); + sender.sendMessage(ChatColor.AQUA + " " + sizeName + ":"); + sender.sendMessage(ChatColor.BLUE + " Runden gewonnen: " + ChatColor.GREEN + totalWonSize + " von " + totalSize + " (" + MinecleanerStringUtil.percentageString(totalWonSize, totalSize)+ ") "); + sender.sendMessage(ChatColor.BLUE + " Dieser Monat: " + ChatColor.GREEN + totalWonMonth + " von " + totalSizeMonth + " (" + MinecleanerStringUtil.percentageString(totalWonMonth, totalSizeMonth)+ ")"); Integer time = data.getBestTime(e.getKey()); Integer timeThisMonth = data.getBestTimeThisMonth(e.getKey()); - sender.sendMessage(Component.text(" ") - .append(createLangComponent("data.player.besttime",": ", (time == null ? "-" : MinecleanerStringUtil.timeToString(time, false)), NamedTextColor.BLUE, NamedTextColor.GREEN))); - - sender.sendMessage(Component.text(" ") - .append(createLangComponent("data.player.thismonth", ": ", (timeThisMonth == null ? "-" : MinecleanerStringUtil.timeToString(timeThisMonth, false)), NamedTextColor.BLUE, NamedTextColor.GREEN))); + sender.sendMessage(ChatColor.BLUE + " Bestzeit: " + ChatColor.GREEN + (time == null ? "-" : MinecleanerStringUtil.timeToString(time, false))); + sender.sendMessage(ChatColor.BLUE + " Dieser Monat: " + ChatColor.GREEN + (timeThisMonth == null ? "-" : MinecleanerStringUtil.timeToString(timeThisMonth, false))); } } } @@ -119,7 +86,7 @@ public class StatsCommand extends SubCommand { if(sender instanceof Player) { plugin.getManager().getStatisticsForPlayer((Player) sender, callback); } else { - sender.sendMessage(createLangComponent("data.console.nodata", NamedTextColor.GREEN)); + sender.sendMessage(ChatColor.GREEN + "Für die Konsole existieren keine Daten."); } } else { plugin.getManager().getStatisticsForPlayerIfExists(playerName, callback); diff --git a/src/main/java/de/lunarakai/minecleaner/utils/ItemUtil.java b/src/main/java/de/lunarakai/minecleaner/utils/ItemUtil.java deleted file mode 100644 index bf9e2e7..0000000 --- a/src/main/java/de/lunarakai/minecleaner/utils/ItemUtil.java +++ /dev/null @@ -1,32 +0,0 @@ -package de.lunarakai.minecleaner.utils; - -import de.iani.cubesideutils.bukkit.items.ItemBuilder; -import org.bukkit.Material; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.inventory.ItemFlag; -import org.bukkit.inventory.ItemStack; - -public class ItemUtil { - - public static final ItemStack EMPTY_ICON = createGuiItem(Material.GRAY_STAINED_GLASS_PANE, " ", true, true); - - public static ItemStack createGuiItem(Material material, String name, String... lore) { - return createGuiItem(material, name, false, lore); - } - - public static ItemStack createGuiItem(Material material, String name, boolean glowing, boolean showTooltip, String... lore) { - ItemBuilder builder = ItemBuilder.fromMaterial(material).displayName(name).lore(lore); - if (glowing) { - builder.enchantment(Enchantment.UNBREAKING, 1, true).flag(ItemFlag.HIDE_ENCHANTS); - } - if (!showTooltip) { - builder.flag(ItemFlag.HIDE_ADDITIONAL_TOOLTIP); - } - return builder.build(); - - } - - public static ItemStack createGuiItem(Material material, String name, boolean glowing, String... lore) { - return createGuiItem(material, name, glowing, true, lore); - } -} diff --git a/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerComponentUtils.java b/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerComponentUtils.java index fe131bd..134216a 100644 --- a/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerComponentUtils.java +++ b/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerComponentUtils.java @@ -2,7 +2,6 @@ package de.lunarakai.minecleaner.utils; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; -import net.kyori.adventure.text.event.ClickEvent; import net.kyori.adventure.text.format.NamedTextColor; public class MinecleanerComponentUtils { @@ -28,25 +27,4 @@ public class MinecleanerComponentUtils { .build(); } - public static TextComponent createLangComponent(String langKey, String filler, String arg1, NamedTextColor namedColor, NamedTextColor namedColorArg1) { - if(MinecleanerStringUtil.isValidURL(arg1)) { - TextComponent urlMessage = Component.text(arg1); - urlMessage = urlMessage.clickEvent(ClickEvent.clickEvent(ClickEvent.Action.OPEN_URL, arg1)); - urlMessage = urlMessage.color(namedColorArg1); - - return Component.text() - .color(namedColor) - .append(Component.translatable(langKey)) - .append(Component.text(filler)) - .append(urlMessage) - .build(); - } else { - return Component.text() - .color(namedColor) - .append(Component.translatable(langKey)) - .append(Component.text(filler)) - .append(Component.text(arg1, namedColorArg1)) - .build(); - } - } } diff --git a/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerHeads.java b/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerHeads.java index 4e66dae..6dbb368 100644 --- a/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerHeads.java +++ b/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerHeads.java @@ -1,8 +1,14 @@ package de.lunarakai.minecleaner.utils; -import de.iani.cubesideutils.bukkit.items.CustomHeads; +import java.util.Arrays; import java.util.UUID; +import org.bukkit.Bukkit; +import org.bukkit.Material; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.inventory.meta.SkullMeta; +import com.destroystokyo.paper.profile.PlayerProfile; +import com.destroystokyo.paper.profile.ProfileProperty; public enum MinecleanerHeads { MINESWEEPER_TILE_0("38206373-5653-4431-85aa-6276f3f9a046", "Minesweeper Tile 0", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzRjMjg0YTRlOTc0MDA1ZWE4ZDFkNGQwNjc0ZWMwODk0ZWZkOGY2ZGQwMjQ4NjM5YTZjZmE5NGY4NTM4OCJ9fX0="), @@ -32,11 +38,40 @@ public enum MinecleanerHeads { private ItemStack head; - MinecleanerHeads(String ownerUUIDString, String ownerName, String texturesProperty) { - head = CustomHeads.createHead(UUID.fromString(ownerUUIDString), ownerName, texturesProperty); + private MinecleanerHeads(String ownerUUIDString, String ownerName, String texturesProperty) { + head = createHead(UUID.fromString(ownerUUIDString), ownerName, texturesProperty); } - + public ItemStack getHead() { return new ItemStack(head); } + + public ItemStack getHead(String displayName) { + return getHead(displayName, (String[]) null); + } + + public ItemStack getHead(String displayName, String... lore) { + ItemStack stack = getHead(); + ItemMeta meta = stack.getItemMeta(); + meta.setDisplayName(displayName); + if (lore != null && lore.length > 0) { + meta.setLore(Arrays.asList(lore)); + } + stack.setItemMeta(meta); + return stack; + } + + public static ItemStack createHead(UUID ownerUUID, String ownerName, String texturesProperty) { + if (ownerName == null) { + ownerName = ownerUUID.toString().substring(0, 16); + } + ItemStack stack = new ItemStack(Material.PLAYER_HEAD); + SkullMeta meta = (SkullMeta) stack.getItemMeta(); + PlayerProfile profile = Bukkit.createProfile(ownerUUID, ownerName); + profile.setProperty(new ProfileProperty("textures", texturesProperty)); + meta.setPlayerProfile(profile); + stack.setItemMeta(meta); + return stack; + } + } diff --git a/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerStringUtil.java b/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerStringUtil.java index d9dec83..7693f80 100644 --- a/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerStringUtil.java +++ b/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerStringUtil.java @@ -1,7 +1,5 @@ package de.lunarakai.minecleaner.utils; -import java.net.URL; - public class MinecleanerStringUtil { private MinecleanerStringUtil() { } @@ -51,15 +49,5 @@ public class MinecleanerStringUtil { percent = percent * 100; String percentageString = String.format("%.1f", percent); return percentageString + "%"; - } - - public static boolean isValidURL(String urlString) { - try { - URL url = new URL(urlString); - url.toURI(); - return true; - } catch (Exception e) { - return false; - } - } + } } diff --git a/src/main/resources/lang/de_DE.properties b/src/main/resources/lang/de_DE.properties index 3c86e81..48543f0 100644 --- a/src/main/resources/lang/de_DE.properties +++ b/src/main/resources/lang/de_DE.properties @@ -5,10 +5,6 @@ minecleaner.info.license=Lizenz arena.name.invalid=Ungueltiger Arenaname. Erlaubt sind Buchstaben, Zahlen und der Unterstrich arena.name.exists=Eine Arena mit diesem Namen existiert bereits -arena.width.klein=Klein -arena.width.mittel=Mittel -arena.width.gross=Gross -arena.width.experte=Experte arena.widthindex.invalid=Kein Valider Arena WidthIndex! arena.widthindex.validOptions=0 (oder weglassen) = 9*9, 1 = 12*12, 2 = 12*18, 3 = 12*33 arena.widthindex.toolarge=Arena WidthIndex darf nicht groesser als 3 sein @@ -23,13 +19,6 @@ arena.list.none=(keine) data.player.noData=Fuer Spieler "{0}" existieren keine Daten. data.player.self=Deine {0} Statistik data.player.other={0}-Statistik von {1} -data.player.roundswon=Runden gewonnen -data.player.pointsscored=Punkte erspielt -data.player.from=von -data.player.besttime=Bestzeit -data.player.thismonth=Dieser Monat data.delete.playerNotFound=Ein Spieler mit dem Namen "{0}" konnte nicht gefunden werden. -data.delete.deleted=Alle {0}-Statistiken von Spieler "{1}" wurden geloescht. - -data.console.nodata=Fuer die Konsole existieren keine Daten. \ No newline at end of file +data.delete.deleted=Alle {0}-Statistiken von Spieler "{1}" wurden geloescht. \ No newline at end of file diff --git a/src/main/resources/lang/en_US.properties b/src/main/resources/lang/en_US.properties index c4ad7c0..9f03c69 100644 --- a/src/main/resources/lang/en_US.properties +++ b/src/main/resources/lang/en_US.properties @@ -5,10 +5,6 @@ minecleaner.info.license=License arena.name.invalid=Invalid arena name. Allowed are letters, numbers and the underscore arena.name.exists=An arena with this name already exists -arena.width.klein=Small -arena.width.mittel=Medium -arena.width.gross=Large -arena.width.experte=Expert arena.widthindex.invalid=Not a valid Arena WidthIndex arena.widthindex.validOptions=0 (or leave empty) = 9*9, 1 = 12*12, 2 = 12*18, 3 = 12*33 arena.widthindex.toolarge=Arena WidthIndex must not be greater than 3 @@ -23,13 +19,6 @@ arena.list.none=(none) data.player.noData=No data exists for player "{0}". data.player.self=Your {0} statistics data.player.other={0} statistics from {1} -data.player.roundswon=Rounds won -data.player.pointsscored=Points scored -data.player.outof=out of -data.player.besttime=Best time -data.player.thismonth=This month data.delete.playerNotFound=A player with the name "{0}" could not be found. -data.delete.deleted=All {0} stats of player "{1}" have been deleted. - -data.console.nodata=No data exists for the console. \ No newline at end of file +data.delete.deleted=All {0} stats of player "{1}" have been deleted. \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 737f270..1ac16a2 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,7 +1,7 @@ name: Minecleaner version: '${project.version}-${git.commit.id.abbrev}' author: LunarAkai -website: https://git.lunarakai.de/LunarAkai/NewMinecleaner +website: https://github.com/LunarAkai/Minecleaner main: de.lunarakai.minecleaner.MinecleanerPlugin api-version: '1.20' depend: