action bar, percentage, minesweeper letter heads, points adjustable in config

This commit is contained in:
LunarAkai 2024-03-25 13:08:07 +01:00
commit 6c777a50e4
7 changed files with 123 additions and 49 deletions

View file

@ -15,6 +15,7 @@ import org.bukkit.entity.Display.Brightness;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.ItemDisplay; import org.bukkit.entity.ItemDisplay;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Transformation; import org.bukkit.util.Transformation;
import org.joml.Vector2i; import org.joml.Vector2i;
import org.joml.Vector3f; import org.joml.Vector3f;
@ -59,6 +60,17 @@ public class MinecleanerArena {
MinecleanerHeads.MINESWEEPER_TILE_8, MinecleanerHeads.MINESWEEPER_TILE_8,
MinecleanerHeads.MINESWEEPER_TILE_FLAG, MinecleanerHeads.MINESWEEPER_TILE_FLAG,
MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN, 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) { public MinecleanerArena(MinecleanerPlugin plugin, ConfigurationSection arenaSection) {
@ -238,7 +250,7 @@ public class MinecleanerArena {
// show Displays // show Displays
//showStartHeads(); showStartHeads();
} }
public void save(ConfigurationSection arenaSection) { public void save(ConfigurationSection arenaSection) {
@ -258,13 +270,18 @@ public class MinecleanerArena {
// arenaSection.set("textdisplay", textd); // 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]; int size = BoardSize.boardSizes[widthIndex];
UUID blockDisplayId = blockDisplays[x + y * size]; UUID blockDisplayId = blockDisplays[x + y * size];
Entity blockDisplay = blockDisplayId != null ? location.getWorld().getEntity(blockDisplayId) : null; Entity blockDisplay = blockDisplayId != null ? location.getWorld().getEntity(blockDisplayId) : null;
if(blockDisplay instanceof ItemDisplay) { if(blockDisplay instanceof ItemDisplay) {
ItemDisplay display = (ItemDisplay) blockDisplay; ItemDisplay display = (ItemDisplay) blockDisplay;
if(!applyUsualRotation) {
blockDisplay.setRotation(blockDisplay.getYaw(), 0);
} else {
blockDisplay.setRotation(blockDisplay.getYaw(), -90);
}
display.setItemStack(head.getHead()); display.setItemStack(head.getHead());
} }
} }
@ -272,11 +289,20 @@ public class MinecleanerArena {
public void startNewGame() { public void startNewGame() {
currentMinecleanerGame = new Game(plugin, BoardSize.boardSizes[widthIndex], BoardSize.mineCounter[widthIndex]); currentMinecleanerGame = new Game(plugin, BoardSize.boardSizes[widthIndex], BoardSize.mineCounter[widthIndex]);
currentMinecleanerGame.start(); currentMinecleanerGame.start();
//removeStartHeads(); removeStartHeads();
flagsPlaced = 0; flagsPlaced = 0;
hasMadeFirstClick = false; hasMadeFirstClick = false;
arenaStatus = ArenaStatus.PLAYING; arenaStatus = ArenaStatus.PLAYING;
currentGameStartTime = System.currentTimeMillis(); 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) { public void addJoiningPlayer(Player player) {
@ -295,27 +321,62 @@ public class MinecleanerArena {
for(int x = 0; x < size; x++) { for(int x = 0; x < size; x++) {
for(int y = 0; y < size; y++) { 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() { public void showStartHeads() {
// setDiplayBlock(4+widthIndex, 2+widthIndex+1, MinecleanerHeads.RAINBOW_S); int correction = 1;
// setDiplayBlock(4+widthIndex, 3+widthIndex+1, MinecleanerHeads.RAINBOW_T); int xcorrection = 0;
// setDiplayBlock(4+widthIndex, 4+widthIndex+1, MinecleanerHeads.RAINBOW_A); if(widthIndex == 0) {
// setDiplayBlock(4+widthIndex, 5+widthIndex+1, MinecleanerHeads.RAINBOW_R); correction = 0;
// setDiplayBlock(4+widthIndex, 6+widthIndex+1, MinecleanerHeads.RAINBOW_T); }
// } 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() { // SWEEPER
// setDiplayBlock(4+widthIndex, 2+widthIndex+1, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN); setDiplayBlock(3+widthIndex+xcorrection, 1+widthIndex+correction, MinecleanerHeads.MINESWEEPER_LETTER_S, true);
// setDiplayBlock(4+widthIndex, 3+widthIndex+1, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN); setDiplayBlock(3+widthIndex+xcorrection, 2+widthIndex+correction, MinecleanerHeads.MINESWEEPER_LETTER_W, true);
// setDiplayBlock(4+widthIndex, 4+widthIndex+1, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN); setDiplayBlock(3+widthIndex+xcorrection, 3+widthIndex+correction, MinecleanerHeads.MINESWEEPER_LETTER_E, true);
// setDiplayBlock(4+widthIndex, 5+widthIndex+1, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN); setDiplayBlock(3+widthIndex+xcorrection, 4+widthIndex+correction, MinecleanerHeads.MINESWEEPER_LETTER_E, true);
// setDiplayBlock(4+widthIndex, 6+widthIndex+1, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN); 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() { public void removeBlockDisplays() {
int size = BoardSize.boardSizes[widthIndex]; int size = BoardSize.boardSizes[widthIndex];
@ -346,13 +407,13 @@ public class MinecleanerArena {
if(cell.isFlagged() == true) { if(cell.isFlagged() == true) {
flagsPlaced = flagsPlaced + 1; flagsPlaced = flagsPlaced + 1;
sendActionBarMessage(player); sendActionBarMessage(player);
setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_FLAG); setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_FLAG, true);
} }
if(cell.isFlagged() == false) { if(cell.isFlagged() == false) {
flagsPlaced = flagsPlaced - 1; flagsPlaced = flagsPlaced - 1;
sendActionBarMessage(player); sendActionBarMessage(player);
setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN); setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_UNKNOWN, true);
} }
} }
@ -412,7 +473,7 @@ public class MinecleanerArena {
switch (cell.getType()) { switch (cell.getType()) {
case Empty: { case Empty: {
if(!cell.isRevealed() || !cell.isFlagged() || !cell.isExploded()) { if(!cell.isRevealed() || !cell.isFlagged() || !cell.isExploded()) {
setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_0); setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_0, true);
} }
break; break;
} }
@ -420,35 +481,35 @@ public class MinecleanerArena {
if(!cell.isRevealed() || !cell.isFlagged() || !cell.isExploded()) { if(!cell.isRevealed() || !cell.isFlagged() || !cell.isExploded()) {
switch(cell.number) { switch(cell.number) {
case 1: { case 1: {
setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_1); setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_1, true);
break; break;
} }
case 2: { case 2: {
setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_2); setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_2, true);
break; break;
} }
case 3: { case 3: {
setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_3); setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_3, true);
break; break;
} }
case 4: { case 4: {
setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_4); setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_4, true);
break; break;
} }
case 5: { case 5: {
setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_5); setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_5, true);
break; break;
} }
case 6: { case 6: {
setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_6); setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_6, true);
break; break;
} }
case 7: { case 7: {
setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_7); setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_7, true);
break; break;
} }
case 8: { case 8: {
setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_8); setDiplayBlock(x, y, MinecleanerHeads.MINESWEEPER_TILE_8, true);
break; break;
} }
default: { default: {
@ -460,9 +521,9 @@ public class MinecleanerArena {
} }
case Mine: { case Mine: {
if(cell.isExploded()) { if(cell.isExploded()) {
setDiplayBlock(x, y, MinecleanerHeads.EXPLODED); setDiplayBlock(x, y, MinecleanerHeads.EXPLODED, true);
} else { } else {
setDiplayBlock(x, y, MinecleanerHeads.TNT); setDiplayBlock(x, y, MinecleanerHeads.TNT, true);
} }
break; break;
} }

View file

@ -170,15 +170,15 @@ public class MinecleanerManager {
int wIndex = arena.getWidthIndex(); int wIndex = arena.getWidthIndex();
switch (wIndex) { switch (wIndex) {
case 0: { case 0: {
ps.increaseScore(statisticsPointsAcquired, 1); ps.increaseScore(statisticsPointsAcquired, plugin.getConfig().getInt("winpoints.size.small"));
break; break;
} }
case 1: { case 1: {
ps.increaseScore(statisticsPointsAcquired, 5); ps.increaseScore(statisticsPointsAcquired, plugin.getConfig().getInt("winpoints.size.medium"));
break; break;
} }
case 2: { case 2: {
ps.increaseScore(statisticsPointsAcquired, 20); ps.increaseScore(statisticsPointsAcquired, plugin.getConfig().getInt("winpoints.size.large"));
break; break;
} }
default: { default: {

View file

@ -21,6 +21,7 @@ public final class MinecleanerPlugin extends JavaPlugin {
@Override @Override
public void onEnable() { public void onEnable() {
this.saveDefaultConfig();
getServer().getScheduler().runTask(this, this::onLateEnable); getServer().getScheduler().runTask(this, this::onLateEnable);
} }

View file

@ -67,11 +67,10 @@ public class StatsCommand extends SubCommand {
if(totalSize > 0) { if(totalSize > 0) {
String sizeName = StringUtil.capitalizeFirstLetter(e.getValue(), false); String sizeName = StringUtil.capitalizeFirstLetter(e.getValue(), false);
sender.sendMessage(ChatColor.GREEN + " " + sizeName + ":"); 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()); Integer time = data.getBestTime(e.getKey());
sender.sendMessage(ChatColor.BLUE + " Bestzeit: " + ChatColor.GREEN + (time == null ? "-": MinecleanerStringUtil.timeToString(time))); sender.sendMessage(ChatColor.BLUE + " Bestzeit: " + ChatColor.GREEN + (time == null ? "-": MinecleanerStringUtil.timeToString(time)));
} }
} }
} }
}; };

View file

@ -22,16 +22,18 @@ public enum MinecleanerHeads {
MINESWEEPER_TILE_8("168c915e-87c9-4c14-a297-3aafa692d3a5", "Minesweeper Tile 8", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODI3MWNkZDM4ZThhN2M3NDIzMWFmOGExNTU2MThmNGZmY2I3ZjkxN2U4ODI2YzJiM2MxODM2ZDFiZDExNmQzIn19fQ=="), 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_FLAG("ae508256-8113-463c-adce-877bad2227c0", "Minesweeper Tile Flag", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzg0YTdmY2IyNDc0MDZlMzUzYTM2ZTU1NmFkMTk1NzhjM2ViZTRlMTU1ODFkYjEwNmQxNWE1Y2I5ZGFkIn19fQ=="),
MINESWEEPER_TILE_UNKNOWN("2fe94bff-c5c1-410e-8c99-cf713c850930", "Minesweeper Tile Unknown", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzdmMWVhMjZlYTVlNjg1YjJmMmY4NzY0OTAxYmU5MTRmZTM1NTU5Y2IxZWNiMWVmMzRiN2U0NmFiYzhlZTU0MCJ9fX0="), 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"), TNT("22a627e8-e68a-4fca-ad91-7d14c36e8556", "Minesweeper TNT", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGVlYmI4YjAzY2QyN2QzNDM1ZTExNTYxNmI4ZWQzNWRjYjQyN2FmNWIwYjFjYzUyNmQzMjY1YTcyZDQ5M2UifX19"),
EXPLODED("166a5608-5206-49bb-a325-fbcd9564dc2b", "Minesweeper Exploded", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjgzMWQ1NzIxOTUwZWZhOWFhNzk5NjdlYjE5MTZhYmViNjRjOTc4ZWE4NTkzYTBjNjgzMzU0ODA5YzZjMzYxZCJ9fX0="), EXPLODED("166a5608-5206-49bb-a325-fbcd9564dc2b", "Minesweeper Exploded", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjgzMWQ1NzIxOTUwZWZhOWFhNzk5NjdlYjE5MTZhYmViNjRjOTc4ZWE4NTkzYTBjNjgzMzU0ODA5YzZjMzYxZCJ9fX0="),
// Todo: other heads (heads are black) MINESWEEPER_LETTER_M("a9046a9a-cf3a-4171-971d-6752561c1962", "Minesweeper Letter M", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTZmZTljNTlhNGE2ZTg3MzRlZjFmMGIzNWFkNzFjNjM1ZjY2OTMzYzcxOWEwMjA4NGYxZjc1YTY0MzgyYzJhNCIKICAgIH0KICB9Cn0="),
RAINBOW_A("0db25a65-ac69-4057-94ca-09b73a0b6bff", "Rainbow A", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTUxN2I0ODI5YjgzMTkyYmQ3MjcxMTI3N2E4ZWZjNDE5NjcxMWU0MTgwYzIyYjNlMmI4MTY2YmVhMWE5ZGUxOSJ9fX0="), MINESWEEPER_LETTER_I("3c3409c6-7671-4103-b2cf-42340c8689c1", "Minesweeper Letter I", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzQxYjYxNzFhNjM5MmZkMTU0NDNhN2M5Y2E2ZjEwOGE1OGM3ZmUyZDgxNDZiN2VmZTk3OTQ0ODQxNTJhMWQ5ZCIKICAgIH0KICB9Cn0="),
RAINBOW_R("5ee68035-e68e-4591-91b1-c30c25710d66", "Rainbow R", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTU4MjdmNDVhYWU2NTY4MWJiMjdlM2UwNDY1YWY2MjI4ZWQ2MjkyYmI2M2IwYTc3NjQ1OTYyMjQ3MjdmOGQ4MSJ9fX0="), MINESWEEPER_LETTER_N("015bd450-d99a-41ac-a313-5fc7eb68dad6", "Minesweeper Letter N", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTFkZGEwY2MwZTQwNzM1MTQ0MmVlNTE4MGIzMGYwMzZmNWM3ODI5MTk5NGNmYTgwZjc3ZTQyNmI1NjM1MmM2MiIKICAgIH0KICB9Cn0="),
RAINBOW_S("830419ec-9906-45c5-8c59-29587cdd4a39", "Rainbow S", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGNkN2QxNGM2ZGI4NDFlNTg2NDUxMWQxNmJhNzY3MGIzZDIwMzgxNDI0NjY5ODFmZWIwNWFmYzZlNWVkYzZjYiJ9fX0="), MINESWEEPER_LETTER_E("dd3290e5-b62b-4e3e-977a-39d44c782ce1", "Minesweeper Letter E", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjRlOTg4MDQ3ZWQwYTFlZDFkZjdhZTFlM2ViZDAyZTQ2ZmY5YWM5NGIzYmEwYTY2OWMzNDExMDRjNDY2NTYwMiIKICAgIH0KICB9Cn0="),
RAINBOW_T("4268d321-bd34-4148-a6c0-c948a6450da0", "Rainbow T", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjk0YWMzNmQ5YTZmYmZmMWM1NTg5NDEzODFlNGRjZjU5NWRmODI1OTEzZjZjMzgzZmZhYTcxYjc1NmE4NzVkMyJ9fX0="), MINESWEEPER_LETTER_S("9ac8c7b4-e62e-40f6-b03a-29ee70fe3788", "Minesweeper Letter S", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTExMTI3NmU0ZjU0MDdhNzc1ZWNmNTRlZGRiMzM4Y2VjYTI0Yzg1MmY0OGYzMjQ3NDkzZTU4YzU4MDEwZmE3ZCIKICAgIH0KICB9Cn0="),
RAINBOW_X("4d37c12c-eb19-4499-8c62-33d84c4d9761", "Rainbow X", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTVkNWM3NWY2Njc1ZWRjMjkyZWEzNzg0NjA3Nzk3MGQyMjZmYmQ1MjRlN2ZkNjgwOGYzYTQ3ODFhNTQ5YjA4YyJ9fX0="), 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; private ItemStack head;

View file

@ -29,4 +29,10 @@ public class MinecleanerStringUtil {
return timeString.toString(); 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 + "%";
}
} }

View file

@ -0,0 +1,5 @@
winpoints:
size:
small: 1
medium: 5
large: 20