From 6c777a50e4bd1142515d81a2005169c41647d1b8 Mon Sep 17 00:00:00 2001 From: LunarAkai Date: Mon, 25 Mar 2024 13:08:07 +0100 Subject: [PATCH] action bar, percentage, minesweeper letter heads, points adjustable in config --- .../minecleaner/MinecleanerArena.java | 131 +++++++++++++----- .../minecleaner/MinecleanerManager.java | 6 +- .../minecleaner/MinecleanerPlugin.java | 1 + .../minecleaner/commands/StatsCommand.java | 3 +- .../minecleaner/utils/MinecleanerHeads.java | 18 +-- .../utils/MinecleanerStringUtil.java | 8 +- src/main/resources/config.yml | 5 + 7 files changed, 123 insertions(+), 49 deletions(-) create mode 100644 src/main/resources/config.yml diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerArena.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerArena.java index c9bfcaf..68fad76 100644 --- a/src/main/java/de/lunarakai/minecleaner/MinecleanerArena.java +++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerArena.java @@ -15,6 +15,7 @@ import org.bukkit.entity.Display.Brightness; import org.bukkit.entity.Entity; import org.bukkit.entity.ItemDisplay; import org.bukkit.entity.Player; +import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Transformation; import org.joml.Vector2i; import org.joml.Vector3f; @@ -59,6 +60,17 @@ public class MinecleanerArena { MinecleanerHeads.MINESWEEPER_TILE_8, MinecleanerHeads.MINESWEEPER_TILE_FLAG, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN, + MinecleanerHeads.TNT, + MinecleanerHeads.EXPLODED, + MinecleanerHeads.MINESWEEPER_LETTER_M, + MinecleanerHeads.MINESWEEPER_LETTER_I, + MinecleanerHeads.MINESWEEPER_LETTER_N, + MinecleanerHeads.MINESWEEPER_LETTER_E, + MinecleanerHeads.MINESWEEPER_LETTER_S, + MinecleanerHeads.MINESWEEPER_LETTER_W, + MinecleanerHeads.MINESWEEPER_LETTER_P, + MinecleanerHeads.MINESWEEPER_LETTER_R, + MinecleanerHeads.MINESWEEPER_LETTER_MINUS, }; public MinecleanerArena(MinecleanerPlugin plugin, ConfigurationSection arenaSection) { @@ -238,7 +250,7 @@ public class MinecleanerArena { // show Displays - //showStartHeads(); + showStartHeads(); } public void save(ConfigurationSection arenaSection) { @@ -258,13 +270,18 @@ public class MinecleanerArena { // arenaSection.set("textdisplay", textd); } - private void setDiplayBlock(int x, int y, MinecleanerHeads head) { + private void setDiplayBlock(int x, int y, MinecleanerHeads head, boolean applyUsualRotation) { int size = BoardSize.boardSizes[widthIndex]; UUID blockDisplayId = blockDisplays[x + y * size]; Entity blockDisplay = blockDisplayId != null ? location.getWorld().getEntity(blockDisplayId) : null; if(blockDisplay instanceof ItemDisplay) { ItemDisplay display = (ItemDisplay) blockDisplay; + if(!applyUsualRotation) { + blockDisplay.setRotation(blockDisplay.getYaw(), 0); + } else { + blockDisplay.setRotation(blockDisplay.getYaw(), -90); + } display.setItemStack(head.getHead()); } } @@ -272,11 +289,20 @@ public class MinecleanerArena { public void startNewGame() { currentMinecleanerGame = new Game(plugin, BoardSize.boardSizes[widthIndex], BoardSize.mineCounter[widthIndex]); currentMinecleanerGame.start(); - //removeStartHeads(); + removeStartHeads(); flagsPlaced = 0; hasMadeFirstClick = false; arenaStatus = ArenaStatus.PLAYING; currentGameStartTime = System.currentTimeMillis(); + + new BukkitRunnable() { + @Override + public void run() { + if(arenaStatus == ArenaStatus.PLAYING && currentPlayer != null) { + sendActionBarMessage(currentPlayer); + } + } + }.runTaskTimer(plugin, 20L, 20L); } public void addJoiningPlayer(Player player) { @@ -295,27 +321,62 @@ public class MinecleanerArena { for(int x = 0; x < size; x++) { for(int y = 0; y < size; y++) { - setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN); + setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN, true); } } - //showStartHeads(); + showStartHeads(); } - // public void showStartHeads() { - // setDiplayBlock(4+widthIndex, 2+widthIndex+1, MinecleanerHeads.RAINBOW_S); - // setDiplayBlock(4+widthIndex, 3+widthIndex+1, MinecleanerHeads.RAINBOW_T); - // setDiplayBlock(4+widthIndex, 4+widthIndex+1, MinecleanerHeads.RAINBOW_A); - // setDiplayBlock(4+widthIndex, 5+widthIndex+1, MinecleanerHeads.RAINBOW_R); - // setDiplayBlock(4+widthIndex, 6+widthIndex+1, MinecleanerHeads.RAINBOW_T); - // } + public void showStartHeads() { + int correction = 1; + int xcorrection = 0; + if(widthIndex == 0) { + correction = 0; + } + if(widthIndex == 2) { + xcorrection = 1; + } + // MINE - + setDiplayBlock(5+widthIndex+xcorrection, 2+widthIndex+correction, MinecleanerHeads.MINESWEEPER_LETTER_M, true); + setDiplayBlock(5+widthIndex+xcorrection, 3+widthIndex+correction, MinecleanerHeads.MINESWEEPER_LETTER_I, true); + setDiplayBlock(5+widthIndex+xcorrection, 4+widthIndex+correction, MinecleanerHeads.MINESWEEPER_LETTER_N, true); + setDiplayBlock(5+widthIndex+xcorrection, 5+widthIndex+correction, MinecleanerHeads.MINESWEEPER_LETTER_E, true); + setDiplayBlock(5+widthIndex+xcorrection, 6+widthIndex+correction, MinecleanerHeads.MINESWEEPER_LETTER_MINUS, true); - // public void removeStartHeads() { - // setDiplayBlock(4+widthIndex, 2+widthIndex+1, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN); - // setDiplayBlock(4+widthIndex, 3+widthIndex+1, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN); - // setDiplayBlock(4+widthIndex, 4+widthIndex+1, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN); - // setDiplayBlock(4+widthIndex, 5+widthIndex+1, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN); - // setDiplayBlock(4+widthIndex, 6+widthIndex+1, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN); - // } + // SWEEPER + setDiplayBlock(3+widthIndex+xcorrection, 1+widthIndex+correction, MinecleanerHeads.MINESWEEPER_LETTER_S, true); + setDiplayBlock(3+widthIndex+xcorrection, 2+widthIndex+correction, MinecleanerHeads.MINESWEEPER_LETTER_W, true); + setDiplayBlock(3+widthIndex+xcorrection, 3+widthIndex+correction, MinecleanerHeads.MINESWEEPER_LETTER_E, true); + setDiplayBlock(3+widthIndex+xcorrection, 4+widthIndex+correction, MinecleanerHeads.MINESWEEPER_LETTER_E, true); + setDiplayBlock(3+widthIndex+xcorrection, 5+widthIndex+correction, MinecleanerHeads.MINESWEEPER_LETTER_P, true); + setDiplayBlock(3+widthIndex+xcorrection, 6+widthIndex+correction, MinecleanerHeads.MINESWEEPER_LETTER_E, true); + setDiplayBlock(3+widthIndex+xcorrection, 7+widthIndex+correction, MinecleanerHeads.MINESWEEPER_LETTER_R, true); + + } + + public void removeStartHeads() { + int correction = 1; + int xcorrection = 0; + if(widthIndex == 0) { + correction = 0; + } + if(widthIndex == 2) { + xcorrection = 1; + } + setDiplayBlock(5+widthIndex+xcorrection, 2+widthIndex+correction, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN, true); + setDiplayBlock(5+widthIndex+xcorrection, 3+widthIndex+correction, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN, true); + setDiplayBlock(5+widthIndex+xcorrection, 4+widthIndex+correction, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN, true); + setDiplayBlock(5+widthIndex+xcorrection, 5+widthIndex+correction, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN, true); + setDiplayBlock(5+widthIndex+xcorrection, 6+widthIndex+correction, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN, true); + + setDiplayBlock(3+widthIndex+xcorrection, 1+widthIndex+correction, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN, true); + setDiplayBlock(3+widthIndex+xcorrection, 2+widthIndex+correction, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN, true); + setDiplayBlock(3+widthIndex+xcorrection, 3+widthIndex+correction, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN, true); + setDiplayBlock(3+widthIndex+xcorrection, 4+widthIndex+correction, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN, true); + setDiplayBlock(3+widthIndex+xcorrection, 5+widthIndex+correction, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN, true); + setDiplayBlock(3+widthIndex+xcorrection, 6+widthIndex+correction, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN, true); + setDiplayBlock(3+widthIndex+xcorrection, 7+widthIndex+correction, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN, true); + } public void removeBlockDisplays() { int size = BoardSize.boardSizes[widthIndex]; @@ -346,13 +407,13 @@ public class MinecleanerArena { if(cell.isFlagged() == true) { flagsPlaced = flagsPlaced + 1; sendActionBarMessage(player); - setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_FLAG); + setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_FLAG, true); } if(cell.isFlagged() == false) { flagsPlaced = flagsPlaced - 1; sendActionBarMessage(player); - setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN); + setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN, true); } } @@ -392,9 +453,9 @@ public class MinecleanerArena { } private void sendActionBarMessage(Player player) { - TextComponent textComponent = new TextComponent("Flaggen gesetzt: " + flagsPlaced + " Minen insgesamt: " + BoardSize.mineCounter[widthIndex]); - textComponent.setColor(ChatColor.GOLD); - player.sendMessage(ChatMessageType.ACTION_BAR, textComponent); + TextComponent textComponent = new TextComponent("Flaggen gesetzt: " + flagsPlaced + " Minen insgesamt: " + BoardSize.mineCounter[widthIndex]); + textComponent.setColor(ChatColor.GOLD); + player.sendMessage(ChatMessageType.ACTION_BAR, textComponent); } public void showMines() { @@ -412,7 +473,7 @@ public class MinecleanerArena { switch (cell.getType()) { case Empty: { if(!cell.isRevealed() || !cell.isFlagged() || !cell.isExploded()) { - setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_0); + setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_0, true); } break; } @@ -420,35 +481,35 @@ public class MinecleanerArena { if(!cell.isRevealed() || !cell.isFlagged() || !cell.isExploded()) { switch(cell.number) { case 1: { - setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_1); + setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_1, true); break; } case 2: { - setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_2); + setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_2, true); break; } case 3: { - setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_3); + setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_3, true); break; } case 4: { - setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_4); + setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_4, true); break; } case 5: { - setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_5); + setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_5, true); break; } case 6: { - setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_6); + setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_6, true); break; } case 7: { - setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_7); + setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_7, true); break; } case 8: { - setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_8); + setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_8, true); break; } default: { @@ -460,9 +521,9 @@ public class MinecleanerArena { } case Mine: { if(cell.isExploded()) { - setDiplayBlock(x, y, MinecleanerHeads.EXPLODED); + setDiplayBlock(x, y, MinecleanerHeads.EXPLODED, true); } else { - setDiplayBlock(x, y, MinecleanerHeads.TNT); + setDiplayBlock(x, y, MinecleanerHeads.TNT, true); } break; } diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java index b901e61..62b3f0a 100644 --- a/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java +++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java @@ -170,15 +170,15 @@ public class MinecleanerManager { int wIndex = arena.getWidthIndex(); switch (wIndex) { case 0: { - ps.increaseScore(statisticsPointsAcquired, 1); + ps.increaseScore(statisticsPointsAcquired, plugin.getConfig().getInt("winpoints.size.small")); break; } case 1: { - ps.increaseScore(statisticsPointsAcquired, 5); + ps.increaseScore(statisticsPointsAcquired, plugin.getConfig().getInt("winpoints.size.medium")); break; } case 2: { - ps.increaseScore(statisticsPointsAcquired, 20); + ps.increaseScore(statisticsPointsAcquired, plugin.getConfig().getInt("winpoints.size.large")); break; } default: { diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerPlugin.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerPlugin.java index 31bc25b..664ffd7 100644 --- a/src/main/java/de/lunarakai/minecleaner/MinecleanerPlugin.java +++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerPlugin.java @@ -21,6 +21,7 @@ public final class MinecleanerPlugin extends JavaPlugin { @Override public void onEnable() { + this.saveDefaultConfig(); getServer().getScheduler().runTask(this, this::onLateEnable); } diff --git a/src/main/java/de/lunarakai/minecleaner/commands/StatsCommand.java b/src/main/java/de/lunarakai/minecleaner/commands/StatsCommand.java index e249efd..792ba74 100644 --- a/src/main/java/de/lunarakai/minecleaner/commands/StatsCommand.java +++ b/src/main/java/de/lunarakai/minecleaner/commands/StatsCommand.java @@ -67,11 +67,10 @@ public class StatsCommand extends SubCommand { if(totalSize > 0) { String sizeName = StringUtil.capitalizeFirstLetter(e.getValue(), false); sender.sendMessage(ChatColor.GREEN + " " + sizeName + ":"); - sender.sendMessage(ChatColor.BLUE + " Runden gewonnen: " + ChatColor.GREEN + totalWonSize + " von " + totalSize + " (Dieser Monat: " + totalWonMonth + " von " + totalSizeMonth + ")"); + sender.sendMessage(ChatColor.BLUE + " Runden gewonnen: " + ChatColor.GREEN + totalWonSize + " von " + totalSize + " (" + MinecleanerStringUtil.percentageString(totalWonSize, totalSize)+ ") " + "(Dieser Monat: " + totalWonMonth + " von " + totalSizeMonth + " (" + MinecleanerStringUtil.percentageString(totalWonMonth, totalSizeMonth)+ ")" + ")"); Integer time = data.getBestTime(e.getKey()); sender.sendMessage(ChatColor.BLUE + " Bestzeit: " + ChatColor.GREEN + (time == null ? "-": MinecleanerStringUtil.timeToString(time))); } - } } }; diff --git a/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerHeads.java b/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerHeads.java index cc1d5a8..b56bc16 100644 --- a/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerHeads.java +++ b/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerHeads.java @@ -22,16 +22,18 @@ public enum MinecleanerHeads { MINESWEEPER_TILE_8("168c915e-87c9-4c14-a297-3aafa692d3a5", "Minesweeper Tile 8", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODI3MWNkZDM4ZThhN2M3NDIzMWFmOGExNTU2MThmNGZmY2I3ZjkxN2U4ODI2YzJiM2MxODM2ZDFiZDExNmQzIn19fQ=="), MINESWEEPER_TILE_FLAG("ae508256-8113-463c-adce-877bad2227c0", "Minesweeper Tile Flag", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzg0YTdmY2IyNDc0MDZlMzUzYTM2ZTU1NmFkMTk1NzhjM2ViZTRlMTU1ODFkYjEwNmQxNWE1Y2I5ZGFkIn19fQ=="), MINESWEEPER_TILE_UNKNOWN("2fe94bff-c5c1-410e-8c99-cf713c850930", "Minesweeper Tile Unknown", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzdmMWVhMjZlYTVlNjg1YjJmMmY4NzY0OTAxYmU5MTRmZTM1NTU5Y2IxZWNiMWVmMzRiN2U0NmFiYzhlZTU0MCJ9fX0="), - // TODO (needs fitting heads) TNT("22a627e8-e68a-4fca-ad91-7d14c36e8556", "Minesweeper TNT", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGVlYmI4YjAzY2QyN2QzNDM1ZTExNTYxNmI4ZWQzNWRjYjQyN2FmNWIwYjFjYzUyNmQzMjY1YTcyZDQ5M2UifX19"), EXPLODED("166a5608-5206-49bb-a325-fbcd9564dc2b", "Minesweeper Exploded", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjgzMWQ1NzIxOTUwZWZhOWFhNzk5NjdlYjE5MTZhYmViNjRjOTc4ZWE4NTkzYTBjNjgzMzU0ODA5YzZjMzYxZCJ9fX0="), - - // Todo: other heads (heads are black) - RAINBOW_A("0db25a65-ac69-4057-94ca-09b73a0b6bff", "Rainbow A", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTUxN2I0ODI5YjgzMTkyYmQ3MjcxMTI3N2E4ZWZjNDE5NjcxMWU0MTgwYzIyYjNlMmI4MTY2YmVhMWE5ZGUxOSJ9fX0="), - RAINBOW_R("5ee68035-e68e-4591-91b1-c30c25710d66", "Rainbow R", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTU4MjdmNDVhYWU2NTY4MWJiMjdlM2UwNDY1YWY2MjI4ZWQ2MjkyYmI2M2IwYTc3NjQ1OTYyMjQ3MjdmOGQ4MSJ9fX0="), - RAINBOW_S("830419ec-9906-45c5-8c59-29587cdd4a39", "Rainbow S", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGNkN2QxNGM2ZGI4NDFlNTg2NDUxMWQxNmJhNzY3MGIzZDIwMzgxNDI0NjY5ODFmZWIwNWFmYzZlNWVkYzZjYiJ9fX0="), - RAINBOW_T("4268d321-bd34-4148-a6c0-c948a6450da0", "Rainbow T", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjk0YWMzNmQ5YTZmYmZmMWM1NTg5NDEzODFlNGRjZjU5NWRmODI1OTEzZjZjMzgzZmZhYTcxYjc1NmE4NzVkMyJ9fX0="), - RAINBOW_X("4d37c12c-eb19-4499-8c62-33d84c4d9761", "Rainbow X", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTVkNWM3NWY2Njc1ZWRjMjkyZWEzNzg0NjA3Nzk3MGQyMjZmYmQ1MjRlN2ZkNjgwOGYzYTQ3ODFhNTQ5YjA4YyJ9fX0="), + + MINESWEEPER_LETTER_M("a9046a9a-cf3a-4171-971d-6752561c1962", "Minesweeper Letter M", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTZmZTljNTlhNGE2ZTg3MzRlZjFmMGIzNWFkNzFjNjM1ZjY2OTMzYzcxOWEwMjA4NGYxZjc1YTY0MzgyYzJhNCIKICAgIH0KICB9Cn0="), + MINESWEEPER_LETTER_I("3c3409c6-7671-4103-b2cf-42340c8689c1", "Minesweeper Letter I", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzQxYjYxNzFhNjM5MmZkMTU0NDNhN2M5Y2E2ZjEwOGE1OGM3ZmUyZDgxNDZiN2VmZTk3OTQ0ODQxNTJhMWQ5ZCIKICAgIH0KICB9Cn0="), + MINESWEEPER_LETTER_N("015bd450-d99a-41ac-a313-5fc7eb68dad6", "Minesweeper Letter N", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTFkZGEwY2MwZTQwNzM1MTQ0MmVlNTE4MGIzMGYwMzZmNWM3ODI5MTk5NGNmYTgwZjc3ZTQyNmI1NjM1MmM2MiIKICAgIH0KICB9Cn0="), + MINESWEEPER_LETTER_E("dd3290e5-b62b-4e3e-977a-39d44c782ce1", "Minesweeper Letter E", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjRlOTg4MDQ3ZWQwYTFlZDFkZjdhZTFlM2ViZDAyZTQ2ZmY5YWM5NGIzYmEwYTY2OWMzNDExMDRjNDY2NTYwMiIKICAgIH0KICB9Cn0="), + MINESWEEPER_LETTER_S("9ac8c7b4-e62e-40f6-b03a-29ee70fe3788", "Minesweeper Letter S", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTExMTI3NmU0ZjU0MDdhNzc1ZWNmNTRlZGRiMzM4Y2VjYTI0Yzg1MmY0OGYzMjQ3NDkzZTU4YzU4MDEwZmE3ZCIKICAgIH0KICB9Cn0="), + MINESWEEPER_LETTER_W("6d580f6c-11ce-4af5-ac20-b5214a0bd901", "Minesweeper Letter W", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjk2MjZiOTg2NWE0OGE4MGU3YzVlMTY0MmZkZWUzMDczN2IzMGE0MjcyYWJiNWE3ZTc5Njc5MjFiODRmNmFhZiIKICAgIH0KICB9Cn0="), + MINESWEEPER_LETTER_P("922fb986-d434-4509-9bef-2ba1c3af753c", "Minesweeper Letter P", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYmIyNmNlODI4ZmE5Y2JlMzBlYWIwMDVhNGQzNzA3YzVmZGY0Yzg0MWI0ZGJlNjA5OGZhN2MzMGE2YWUzZGIwYSIKICAgIH0KICB9Cn0="), + MINESWEEPER_LETTER_R("3eacba28-ad1a-446a-beb4-824f545353d0", "Minesweeper Letter R", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjdjOWUwYzFkNzBlNDIzNzI0Y2QwZjJlN2IwNDM1N2I4MDVmZTNmZWM5NzJkN2U4NDRmMDZhNjJjODYzNGU1MiIKICAgIH0KICB9Cn0="), + MINESWEEPER_LETTER_MINUS("7f15a38b-fae8-4b0a-908f-93f72fea0c5f", "Minesweeper Letter Minus", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzcxYzNkOWQwZGUzODQ4Mjg3MGY0MTlmMGRiYWFiZjM4NGVlODFmZTI4Y2EzMTA5ZWQyYmMwOTM0NzIyYWFjNiIKICAgIH0KICB9Cn0="), ; private ItemStack head; diff --git a/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerStringUtil.java b/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerStringUtil.java index 42c4cd9..cefcf3d 100644 --- a/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerStringUtil.java +++ b/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerStringUtil.java @@ -28,5 +28,11 @@ public class MinecleanerStringUtil { } return timeString.toString(); } - + + public static String percentageString(int whatPercentage, int fromPercentage) { + float percent = (float) whatPercentage/fromPercentage; + percent = percent * 100; + String percentageString = String.format("%.1f", percent); + return percentageString + "%"; + } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml new file mode 100644 index 0000000..2d3daf1 --- /dev/null +++ b/src/main/resources/config.yml @@ -0,0 +1,5 @@ +winpoints: + size: + small: 1 + medium: 5 + large: 20 \ No newline at end of file