From 82a49208997340b11eedeeae0579e57d3a067091 Mon Sep 17 00:00:00 2001 From: LunarAkai Date: Sat, 6 Apr 2024 14:50:41 +0200 Subject: [PATCH] Settings + Displayed Plugin Name is now configurable in config.yml --- pom.xml | 2 +- .../minecleaner/MinecleanerArena.java | 58 +++++++++- .../minecleaner/MinecleanerListener.java | 33 ++++++ .../minecleaner/MinecleanerManager.java | 104 +++++++++++++++--- .../minecleaner/MinecleanerPlugin.java | 10 ++ .../minecleaner/commands/CreateCommand.java | 4 +- .../minecleaner/commands/DeleteCommand.java | 4 +- .../commands/DeletePlayerScoreCommand.java | 2 +- .../minecleaner/commands/ListCommand.java | 2 +- .../minecleaner/commands/SettingsCommand.java | 45 ++++++++ .../minecleaner/commands/StatsCommand.java | 2 +- src/main/resources/config.yml | 2 + 12 files changed, 240 insertions(+), 28 deletions(-) create mode 100644 src/main/java/de/lunarakai/minecleaner/commands/SettingsCommand.java diff --git a/pom.xml b/pom.xml index 4856cdf..ba7fbc0 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ de.lunarakai Minecleaner - 1.0.4 + 1.1.0 jar Minecleaner diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerArena.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerArena.java index 19205a1..355119b 100644 --- a/src/main/java/de/lunarakai/minecleaner/MinecleanerArena.java +++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerArena.java @@ -5,12 +5,16 @@ import de.lunarakai.minecleaner.game.BoardSize; import de.lunarakai.minecleaner.game.Cell; import de.lunarakai.minecleaner.game.Game; import de.lunarakai.minecleaner.utils.MinecleanerHeads; +import de.lunarakai.minecleaner.utils.MinecleanerStringUtil; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.UUID; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.TextComponent; import net.md_5.bungee.api.ChatColor; +import net.md_5.bungee.api.ChatMessageType; +import net.md_5.bungee.api.chat.BaseComponent; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; @@ -23,6 +27,7 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.ItemDisplay; import org.bukkit.entity.Player; import org.bukkit.entity.TextDisplay; +import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Transformation; import org.joml.Vector2i; import org.joml.Vector3f; @@ -41,6 +46,7 @@ public class MinecleanerArena { private int flagsPlaced = 0; private Player currentPlayer; private long currentGameStartTime; + private long ingameTime; private Game currentMinecleanerGame; private final Location tempLoc = new Location(null, 0, 0, 0); @@ -219,6 +225,28 @@ public class MinecleanerArena { currentMinecleanerGame = new Game(plugin, BoardSize.boardSizesWidth[widthIndex], BoardSize.boardSizesHeight[widthIndex], BoardSize.mineCounter[widthIndex]); currentMinecleanerGame.start(); showTextDisplay(); + if(plugin.getManager().getSettingsValue("additionaldisplay", currentPlayer) != 0) { + new BukkitRunnable() { + @Override + public void run() { + if(arenaStatus == ArenaStatus.PLAYING && currentPlayer != null) { + updateIngameInfoTexts(); + } + } + }.runTaskTimer(plugin, 20L, 20L); + } + + if(plugin.getManager().getSettingsValue("timer", currentPlayer) != 0) { + new BukkitRunnable() { + @Override + public void run() { + if(arenaStatus == ArenaStatus.PLAYING && currentPlayer != null) { + updateIngameInfoTexts(); + } + } + }.runTaskTimer(plugin, 1L, 1L); + } + removeStartHeads(); flagsPlaced = 0; hasMadeFirstClick = false; @@ -350,13 +378,31 @@ public class MinecleanerArena { textdisplay.setDisplayHeight(3); textdisplay.setDisplayWidth((float) BoardSize.boardSizesWidth[widthIndex] / 3); textdisplay.setPersistent(false); - textdisplay.text(Component.text(ChatColor.GOLD + "Minesweeper")); + textdisplay.text(Component.text(ChatColor.GOLD + plugin.getDisplayedPluginName())); }); } - private void updateTextDisplay() { + private void updateIngameInfoTexts() { + String timer = ""; + if(plugin.getManager().getSettingsValue("timer", currentPlayer) != 0) { + ingameTime += 1; + timer = ChatColor.GOLD + " Zeit: " + MinecleanerStringUtil.timeToString((ingameTime/20)*1000) + " "; + } + if (textDisplay != null) { - textDisplay.text(Component.text(ChatColor.GREEN + "-- Flaggen gesetzt: " + flagsPlaced + " --" + "\n" + ChatColor.RED + "-- Minen insgesamt: " + BoardSize.mineCounter[widthIndex] + " --")); + String component = ChatColor.GREEN + "-- Flaggen gesetzt: " + flagsPlaced + " --" + "\n" + ChatColor.RED + "-- Minen insgesamt: " + BoardSize.mineCounter[widthIndex] + " --"; + //textDisplay.text(Component.text(ChatColor.GREEN + "-- Flaggen gesetzt: " + flagsPlaced + " --" + "\n" + ChatColor.RED + "-- Minen insgesamt: " + BoardSize.mineCounter[widthIndex] + " --")); + String newLine = ""; + String filler = ""; + if(!timer.equals("")) { + newLine = "\n" + ChatColor.GOLD + "-- "; + filler = " --"; + } + textDisplay.text(Component.text(component + newLine + timer + filler)); + } + if(plugin.getManager().getSettingsValue("additionaldisplay", currentPlayer) != 0) { + String componentActionBar = ChatColor.GREEN + "Flaggen gesetzt: " + flagsPlaced + ChatColor.RED + " Minen insgesamt: " + BoardSize.mineCounter[widthIndex]; + currentPlayer.sendActionBar(Component.text(componentActionBar + " " + timer)); } } @@ -394,12 +440,12 @@ public class MinecleanerArena { } if (cell.isFlagged() == true) { flagsPlaced = flagsPlaced + 1; - updateTextDisplay(); + updateIngameInfoTexts(); setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_FLAG, true); } if (cell.isFlagged() == false) { flagsPlaced = flagsPlaced - 1; - updateTextDisplay(); + updateIngameInfoTexts(); setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN, true); } } @@ -423,7 +469,7 @@ public class MinecleanerArena { if (currentMinecleanerGame.gameover) { plugin.getManager().handleGameover(player, this, !(cell.isRevealed() && cell.isExploded())); } else { - updateTextDisplay(); + updateIngameInfoTexts(); } ArrayList floodedCells = currentMinecleanerGame.getfloodedCells(); diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerListener.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerListener.java index 57ae8fb..7e9bb24 100644 --- a/src/main/java/de/lunarakai/minecleaner/MinecleanerListener.java +++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerListener.java @@ -122,6 +122,39 @@ public class MinecleanerListener implements Listener { } } } + if(e.getInventory().equals(plugin.getManager().getSettingsInventory())) { + e.setCancelled(true); + int slot = e.getRawSlot(); + switch (slot) { + 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); + 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 6c0c061..2ac61c9 100644 --- a/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java +++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java @@ -1,9 +1,11 @@ package de.lunarakai.minecleaner; +import de.iani.cubesidestats.api.SettingKey; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map.Entry; +import java.util.Set; import java.util.UUID; import java.util.function.Consumer; import org.bukkit.Bukkit; @@ -11,6 +13,7 @@ import org.bukkit.Material; import org.bukkit.OfflinePlayer; import org.bukkit.Sound; import org.bukkit.World; +import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryType; import org.bukkit.inventory.Inventory; @@ -41,6 +44,12 @@ public class MinecleanerManager { private final HashMap statisticsTimeRecord; private final HashMap statisticsTotalGamesPlayed; + // Settings + + private Inventory settingsInventory; + private SettingKey minecleanerSettingTimerKey; + private SettingKey minecleanerAdditionalDisplaySettingKey; + public MinecleanerManager(MinecleanerPlugin plugin) { this.plugin = plugin; @@ -50,12 +59,29 @@ public class MinecleanerManager { this.sizes.put(2, "groß"); this.sizes.put(3, "experte"); - this.confirmPlayingInventory = plugin.getServer().createInventory(null, InventoryType.HOPPER, "Minecleaner starten?"); - this.confirmPlayingInventory.setItem(1, + this.confirmPlayingInventory = plugin.getServer().createInventory(null, InventoryType.HOPPER, plugin.getDisplayedPluginName() + " starten?"); + this.confirmPlayingInventory.setItem(1, ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.GREEN_CONCRETE), ChatColor.GREEN + "Bestätigen"))); this.confirmPlayingInventory.setItem(3, ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.RED_CONCRETE), ChatColor.RED + "Abbrechen"))); + // Settings + + + minecleanerSettingTimerKey = plugin.getCubesideStatistics().getSettingKey("minecleaner.settings.timer"); + minecleanerSettingTimerKey.setDefault(0); + minecleanerSettingTimerKey.setDisplayName("Timer"); + + minecleanerAdditionalDisplaySettingKey = plugin.getCubesideStatistics().getSettingKey("minecleaner.settings.additionaldisplay"); + minecleanerAdditionalDisplaySettingKey.setDefault(0); + minecleanerAdditionalDisplaySettingKey.setDisplayName("Zusätzliche Anzeige in der Action Bar"); + + this.settingsInventory = plugin.getServer().createInventory(null, InventoryType.CHEST, + plugin.getDisplayedPluginName() + " Einstellungen"); + + + // Statistics + statisticsWonGamesTotal = plugin.getCubesideStatistics().getStatisticKey("minecleaner.wonGamestotal"); statisticsWonGamesTotal.setIsMonthlyStats(true); statisticsWonGamesTotal.setDisplayName("Runden gewonnen"); @@ -86,10 +112,6 @@ public class MinecleanerManager { statisticsTimeRecord.put(e.getKey(), s); } } - - public HashMap getSizes() { - return sizes; - } public void joinArena(Player player, MinecleanerArena arena) { if (!player.hasPermission(MinecleanerPlugin.PERMISSION_PLAY)) { @@ -108,7 +130,7 @@ public class MinecleanerManager { arena.removePlayer(); plugin.getArenaList().setArenaForPlayer(player, null); if(message) { - player.sendMessage(ChatColor.YELLOW + "Das Minecleanerspiel wurde abgebrochen."); + player.sendMessage(ChatColor.YELLOW + "Das " + plugin.getDisplayedPluginName() + "spiel wurde abgebrochen."); } } @@ -117,7 +139,7 @@ public class MinecleanerManager { Preconditions.checkArgument(arena != null, "player is in no arena"); Preconditions.checkState(arena.getArenaStatus() == ArenaStatus.CONFIRM_PLAYING, "not confirming playing status"); arena.startNewGame(); - player.sendMessage(ChatColor.YELLOW + "Du hast eine neue Runde Minecleaner gestartet."); + player.sendMessage(ChatColor.YELLOW + "Du hast eine neue Runde " + plugin.getDisplayedPluginName() + " gestartet."); } public void handleGameover(Player player, MinecleanerArena arena, boolean isSuccessfullyCleared) { @@ -128,7 +150,7 @@ public class MinecleanerManager { if(!isSuccessfullyCleared) { world.playSound(player.getLocation(), Sound.ENTITY_GENERIC_EXPLODE, 0.5f, 0.5f); - player.sendMessage(ChatColor.YELLOW + "Game Over! Du konntest das Minecleaner-Feld nicht erfolgreich lösen!"); + player.sendMessage(ChatColor.YELLOW + "Game Over! Du konntest das " + plugin.getDisplayedPluginName() + "-Feld nicht erfolgreich lösen!"); arena.showMines(); if(sg != null) { @@ -164,7 +186,7 @@ public class MinecleanerManager { if(isUpdated != null && isUpdated) { player.sendMessage(ChatColor.GOLD + "Herzlichen Glückwunsch! Du hast eine neue Bestzeit erreicht! " + ChatColor.RED + MinecleanerStringUtil.timeToString(millis) ); } else { - player.sendMessage(ChatColor.YELLOW + "Glückwunsch, du konntest das Minecleaner-Feld in " + ChatColor.RED + MinecleanerStringUtil.timeToString(millis) + ChatColor.YELLOW + " erfolgreich lösen!"); + player.sendMessage(ChatColor.YELLOW + "Glückwunsch, du konntest das " + plugin.getDisplayedPluginName() + "-Feld in " + ChatColor.RED + MinecleanerStringUtil.timeToString(millis) + ChatColor.YELLOW + " erfolgreich lösen!"); } }); } @@ -209,9 +231,6 @@ public class MinecleanerManager { } } - public Inventory getConfirmPlayingInventory() { - return confirmPlayingInventory; - } public void handleFieldClick(@NotNull Player player, int x, int y, boolean hasRightClicked) { MinecleanerArena arena = plugin.getArenaList().getPlayerArena(player); @@ -325,6 +344,63 @@ public class MinecleanerManager { for(StatisticKey statsKey : statisticsTotalGamesPlayed.values()) { statsPlayer.deleteScore(statsKey); } - + } + + public Inventory showSettingsInventory(Player player) { + int 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"))); + } else { + settingsInventory.setItem(12, + ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.NAME_TAG), ChatColor.GREEN + "Zusätzliche Anzeige in der Action Bar"))); + } + + + current = getSettingsValue("timer", player); + + if(current == 0) { + settingsInventory.setItem(14, + ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.CLOCK), ChatColor.RED + "Timer anzeigen"))); + } else { + settingsInventory.setItem(14, + ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.CLOCK), ChatColor.GREEN + "Timer anzeigen"))); + } + + return settingsInventory; + } + + public int getSettingsValue(String settingsKeyString, Player player) { + PlayerStatistics playerStatistics = plugin.getCubesideStatistics().getStatistics(player.getUniqueId()); + SettingKey settingKey = plugin.getCubesideStatistics().getSettingKey("minecleaner.settings." + settingsKeyString); + + return playerStatistics.getSettingValueOrDefault(settingKey); + } + + public void updateSettingsValue(String settingsKeyString, int newValue, Player player) { + PlayerStatistics playerStatistics = plugin.getCubesideStatistics().getStatistics(player.getUniqueId()); + SettingKey settingKey = plugin.getCubesideStatistics().getSettingKey("minecleaner.settings." + settingsKeyString); + playerStatistics.setSettingValue(settingKey, newValue); + } + + public HashMap getSizes() { + return sizes; + } + + public Inventory getConfirmPlayingInventory() { + return confirmPlayingInventory; + } + + public Inventory getSettingsInventory() { + return settingsInventory; + } + + public SettingKey getMinecleanerSettingTimerKey() { + return minecleanerSettingTimerKey; + } + + public SettingKey getMinecleanerAdditionalDisplaySettingKey() { + return minecleanerAdditionalDisplaySettingKey; } } diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerPlugin.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerPlugin.java index e11acbd..672311f 100644 --- a/src/main/java/de/lunarakai/minecleaner/MinecleanerPlugin.java +++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerPlugin.java @@ -1,5 +1,6 @@ package de.lunarakai.minecleaner; +import de.lunarakai.minecleaner.commands.SettingsCommand; import org.bukkit.plugin.java.JavaPlugin; import de.iani.cubesidestats.api.CubesideStatisticsAPI; import de.iani.cubesideutils.bukkit.commands.CommandRouter; @@ -43,6 +44,7 @@ public final class MinecleanerPlugin extends JavaPlugin { minecleanerCommand.addCommandMapping(new StatsCommand(this), "stats"); minecleanerCommand.addCommandMapping(new DeletePlayerScoreCommand(this), "deleteplayerscores"); minecleanerCommand.addCommandMapping(new InfoCommand(this), "info"); + minecleanerCommand.addCommandMapping(new SettingsCommand(this), "settings"); } @Override @@ -67,4 +69,12 @@ public final class MinecleanerPlugin extends JavaPlugin { public PlayerUUIDCache getPlayerUUIDCache() { return playerUUIDCache; } + + public String getDisplayedPluginName() { + return this.getConfig().getString("generalSettings.displayedPluginName"); + } + + public int getSizeWinpoints(String size) { + return this.getConfig().getInt("winpoints.size." + size); + } } diff --git a/src/main/java/de/lunarakai/minecleaner/commands/CreateCommand.java b/src/main/java/de/lunarakai/minecleaner/commands/CreateCommand.java index e4ac4a3..38a2022 100644 --- a/src/main/java/de/lunarakai/minecleaner/commands/CreateCommand.java +++ b/src/main/java/de/lunarakai/minecleaner/commands/CreateCommand.java @@ -94,12 +94,12 @@ public class CreateCommand extends SubCommand { @Nullable RayTraceResult target = player.rayTraceBlocks(6); if(target == null || target.getHitBlock() == null) { - sender.sendMessage(ChatColor.DARK_RED + "Bitte gucke den Block an, der im Zentrum des Minecleaner-Spielfelds sein soll."); + sender.sendMessage(ChatColor.DARK_RED + "Bitte gucke den Block an, der im Zentrum des " + plugin.getDisplayedPluginName() + "-Spielfelds sein soll."); return true; } BlockFace face = target.getHitBlockFace(); if(face != BlockFace.NORTH && face != BlockFace.WEST && face != BlockFace.EAST && face != BlockFace.SOUTH) { - sender.sendMessage(ChatColor.DARK_RED + "Bitte gucke die Seite des Blockes an, wo das Minecleaner-Spielfeld erstellt werden soll."); + sender.sendMessage(ChatColor.DARK_RED + "Bitte gucke die Seite des Blockes an, wo das " + plugin.getDisplayedPluginName() + "-Spielfeld erstellt werden soll."); return true; } location = target.getHitBlock().getLocation(); diff --git a/src/main/java/de/lunarakai/minecleaner/commands/DeleteCommand.java b/src/main/java/de/lunarakai/minecleaner/commands/DeleteCommand.java index bb7c577..46f7434 100644 --- a/src/main/java/de/lunarakai/minecleaner/commands/DeleteCommand.java +++ b/src/main/java/de/lunarakai/minecleaner/commands/DeleteCommand.java @@ -52,9 +52,9 @@ public class DeleteCommand extends SubCommand { } if(arena != null) { plugin.getArenaList().removeArena(arena); - sender.sendMessage(ChatColor.YELLOW + "Die Minecleaner-Arena " + arena.getName() + " wurde gelöscht."); + sender.sendMessage(ChatColor.YELLOW + "Die " + plugin.getDisplayedPluginName() + "-Arena " + arena.getName() + " wurde gelöscht."); } else { - sender.sendMessage(ChatColor.YELLOW + "Hier befindet sich keine Minecleaner-Arena."); + sender.sendMessage(ChatColor.YELLOW + "Hier befindet sich keine " + plugin.getDisplayedPluginName() + "-Arena."); } return true; } diff --git a/src/main/java/de/lunarakai/minecleaner/commands/DeletePlayerScoreCommand.java b/src/main/java/de/lunarakai/minecleaner/commands/DeletePlayerScoreCommand.java index 2965406..df54c61 100644 --- a/src/main/java/de/lunarakai/minecleaner/commands/DeletePlayerScoreCommand.java +++ b/src/main/java/de/lunarakai/minecleaner/commands/DeletePlayerScoreCommand.java @@ -51,7 +51,7 @@ public class DeletePlayerScoreCommand extends SubCommand{ sender.sendMessage(ChatColor.DARK_RED + "Ein Spieler mit dem Namen '" + player + "' konnte nicht gefunden werden."); } plugin.getManager().deleteScores(cachedPlayer.getUUID()); - sender.sendMessage(ChatColor.DARK_RED + "Alle Minecleaner-Statistiken von Spieler '" + cachedPlayer.getName() + "' wurden gelöscht."); + sender.sendMessage(ChatColor.DARK_RED + "Alle " + plugin.getDisplayedPluginName() + "-Statistiken von Spieler '" + cachedPlayer.getName() + "' wurden gelöscht."); return true; } diff --git a/src/main/java/de/lunarakai/minecleaner/commands/ListCommand.java b/src/main/java/de/lunarakai/minecleaner/commands/ListCommand.java index 7824b7b..51b9b96 100644 --- a/src/main/java/de/lunarakai/minecleaner/commands/ListCommand.java +++ b/src/main/java/de/lunarakai/minecleaner/commands/ListCommand.java @@ -41,7 +41,7 @@ public class ListCommand extends SubCommand{ @Override public boolean onCommand(CommandSender sender, Command arg1, String arg2, String commandString, ArgsParser args) throws DisallowsCommandBlockException, RequiresPlayerException, NoPermissionException, IllegalSyntaxException, InternalCommandException { - sender.sendMessage(ChatColor.YELLOW + "Angelegte Minecleaner-Arenen"); + sender.sendMessage(ChatColor.YELLOW + "Angelegte "+ plugin.getDisplayedPluginName() + "-Arenen"); boolean any = false; for(MinecleanerArena arena : plugin.getArenaList().getArenas()) { Location location = arena.getLocation(); diff --git a/src/main/java/de/lunarakai/minecleaner/commands/SettingsCommand.java b/src/main/java/de/lunarakai/minecleaner/commands/SettingsCommand.java new file mode 100644 index 0000000..a7051ad --- /dev/null +++ b/src/main/java/de/lunarakai/minecleaner/commands/SettingsCommand.java @@ -0,0 +1,45 @@ +package de.lunarakai.minecleaner.commands; + +import de.iani.cubesideutils.bukkit.commands.SubCommand; +import de.iani.cubesideutils.bukkit.commands.exceptions.DisallowsCommandBlockException; +import de.iani.cubesideutils.bukkit.commands.exceptions.IllegalSyntaxException; +import de.iani.cubesideutils.bukkit.commands.exceptions.InternalCommandException; +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 org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class SettingsCommand extends SubCommand { + MinecleanerPlugin plugin; + + public SettingsCommand(MinecleanerPlugin plugin) { + this.plugin = plugin; + } + + @Override + public String getUsage() { + return ""; + } + + @Override + public boolean requiresPlayer() { + return true; + } + + @Override + public String getRequiredPermission() { + return MinecleanerPlugin.PERMISSION_PLAY; + } + + + @Override + public boolean onCommand(CommandSender sender, Command command, String s, String s1, ArgsParser args) throws DisallowsCommandBlockException, RequiresPlayerException, NoPermissionException, IllegalSyntaxException, InternalCommandException { + Player player = (Player) sender; + + 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 4783980..f87c3a8 100644 --- a/src/main/java/de/lunarakai/minecleaner/commands/StatsCommand.java +++ b/src/main/java/de/lunarakai/minecleaner/commands/StatsCommand.java @@ -52,7 +52,7 @@ public class StatsCommand extends SubCommand { return; } if(playerName == null) { - sender.sendMessage(ChatColor.AQUA + "Deine Minecleaner Statistik:"); + sender.sendMessage(ChatColor.AQUA + "Deine " + plugin.getDisplayedPluginName() + " Statistik:"); } else { sender.sendMessage(ChatColor.AQUA + "Minecleaner-Statistik von " + data.getPlayerName() + ":"); } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 34cc22c..a6c8023 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,3 +1,5 @@ +generalSettings: + displayedPluginName: Minecleaner winpoints: size: small: 1