diff --git a/pom.xml b/pom.xml
index 7b9e7bf..2012184 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
de.lunarakai
Minecleaner
- 1.1.3
+ 1.1.4
jar
Minecleaner
diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerArena.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerArena.java
index d4dc7cf..e836219 100644
--- a/src/main/java/de/lunarakai/minecleaner/MinecleanerArena.java
+++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerArena.java
@@ -240,10 +240,13 @@ public class MinecleanerArena {
if(!currentMinecleanerGame.gameover) {
ingameTime++;
}
- if(plugin.getManager().getSettingsValue("additionaldisplay", currentPlayer) != 0
- || plugin.getManager().getSettingsValue("timer", currentPlayer) != 0) {
- updateIngameInfoTexts();
+ if(plugin.isStatisticsEnabled()) {
+ if(plugin.getManager().getSettingsValue("additionaldisplay", currentPlayer) != 0
+ || plugin.getManager().getSettingsValue("timer", currentPlayer) != 0) {
+ updateIngameInfoTexts();
+ }
}
+
} else {
cancel();
}
@@ -382,8 +385,14 @@ public class MinecleanerArena {
public void updateIngameInfoTexts() {
String timer = "";
- if(plugin.getManager().getSettingsValue("timer", currentPlayer) != 0) {
- timer = ChatColor.GOLD + " Zeit: " + MinecleanerStringUtil.timeToString((ingameTime/20)*1000, true) + " ";
+ if(plugin.isStatisticsEnabled()) {
+ if(plugin.getManager().getSettingsValue("timer", currentPlayer) != 0) {
+ timer = ChatColor.GOLD + " Zeit: " + MinecleanerStringUtil.timeToString((ingameTime/20)*1000, true) + " ";
+ }
+ if(plugin.getManager().getSettingsValue("additionaldisplay", currentPlayer) != 0 && plugin.isStatisticsEnabled()) {
+ String componentActionBar = ChatColor.GREEN + "Flaggen gesetzt: " + flagsPlaced + ChatColor.RED + " Minen insgesamt: " + BoardSize.mineCounter[widthIndex];
+ currentPlayer.sendActionBar(Component.text(componentActionBar + " " + timer));
+ }
}
if (textDisplay != null) {
@@ -398,10 +407,7 @@ public class MinecleanerArena {
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));
- }
+
}
public void removeTextDisplay() {
diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java
index 6ba5610..bc2681a 100644
--- a/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java
+++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java
@@ -67,52 +67,63 @@ public class MinecleanerManager {
// Settings
+ if(plugin.isStatisticsEnabled()) {
+ minecleanerSettingTimerKey = plugin.getCubesideStatistics().getSettingKey("minecleaner.settings.timer");
+ minecleanerSettingTimerKey.setDefault(0);
+ minecleanerSettingTimerKey.setDisplayName("Timer");
- 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");
- 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");
+ this.settingsInventory = plugin.getServer().createInventory(null, InventoryType.CHEST,
+ plugin.getDisplayedPluginName() + " Einstellungen");
- // Statistics
+ // Statistics
- statisticsWonGamesTotal = plugin.getCubesideStatistics().getStatisticKey("minecleaner.wonGamestotal");
- statisticsWonGamesTotal.setIsMonthlyStats(true);
- statisticsWonGamesTotal.setDisplayName("Runden gewonnen");
-
- statisticsPointsAcquired = plugin.getCubesideStatistics().getStatisticKey("minecleaner.pointstotal");
- statisticsPointsAcquired.setIsMonthlyStats(true);
- statisticsPointsAcquired.setDisplayName("Punkte erspielt");
+ statisticsWonGamesTotal = plugin.getCubesideStatistics().getStatisticKey("minecleaner.wonGamestotal");
+ statisticsWonGamesTotal.setIsMonthlyStats(true);
+ statisticsWonGamesTotal.setDisplayName("Runden gewonnen");
- statisticsGames = new HashMap<>();
- statisticsTimeRecord = new HashMap<>();
- statisticsTotalGamesPlayed = new HashMap<>();
+ statisticsPointsAcquired = plugin.getCubesideStatistics().getStatisticKey("minecleaner.pointstotal");
+ statisticsPointsAcquired.setIsMonthlyStats(true);
+ statisticsPointsAcquired.setDisplayName("Punkte erspielt");
- for(Entry e : this.sizes.entrySet()) {
- String sizeDisplay = e.getValue();
- StatisticKey s = plugin.getCubesideStatistics().getStatisticKey("minecleaner.wongames.boardsize." + e.getKey());
- s.setIsMonthlyStats(true);
- s.setDisplayName("Runden gewonnen auf Spielfeldgröße " + sizeDisplay);
- statisticsGames.put(e.getKey(), s);
+ statisticsGames = new HashMap<>();
+ statisticsTimeRecord = new HashMap<>();
+ statisticsTotalGamesPlayed = new HashMap<>();
- s = plugin.getCubesideStatistics().getStatisticKey("minecleaner.gamestotal.boardsize." + e.getKey());
- s.setIsMonthlyStats(true);
- s.setDisplayName("Runden gespielt auf Spielfeldgröße " + sizeDisplay );
- statisticsTotalGamesPlayed.put(e.getKey(), s);
+ for(Entry e : this.sizes.entrySet()) {
+ String sizeDisplay = e.getValue();
+ StatisticKey s = plugin.getCubesideStatistics().getStatisticKey("minecleaner.wongames.boardsize." + e.getKey());
+ s.setIsMonthlyStats(true);
+ s.setDisplayName("Runden gewonnen auf Spielfeldgröße " + sizeDisplay);
+ statisticsGames.put(e.getKey(), s);
- s = plugin.getCubesideStatistics().getStatisticKey("minecleaner.timerecord." + e.getKey());
- s.setIsMonthlyStats(true);
- s.setDisplayName("Bestzeit bei Größe " + sizeDisplay);
- statisticsTimeRecord.put(e.getKey(), s);
+ s = plugin.getCubesideStatistics().getStatisticKey("minecleaner.gamestotal.boardsize." + e.getKey());
+ s.setIsMonthlyStats(true);
+ s.setDisplayName("Runden gespielt auf Spielfeldgröße " + sizeDisplay );
+ statisticsTotalGamesPlayed.put(e.getKey(), s);
+
+ s = plugin.getCubesideStatistics().getStatisticKey("minecleaner.timerecord." + e.getKey());
+ s.setIsMonthlyStats(true);
+ s.setDisplayName("Bestzeit bei Größe " + sizeDisplay);
+ statisticsTimeRecord.put(e.getKey(), s);
+ }
+ } else {
+ this.statisticsWonGamesTotal = null;
+ this.statisticsPointsAcquired = null;
+ this.statisticsGames = null;
+ this.statisticsTimeRecord = null;
+ this.statisticsTotalGamesPlayed = null;
}
+
+
+
}
-
+
+
public void joinArena(Player player, MinecleanerArena arena) {
if (!player.hasPermission(MinecleanerPlugin.PERMISSION_PLAY)) {
return;
@@ -144,16 +155,19 @@ public class MinecleanerManager {
public void handleGameover(Player player, MinecleanerArena arena, boolean isSuccessfullyCleared) {
World world = player.getWorld();
- PlayerStatistics ps = plugin.getCubesideStatistics().getStatistics(player.getUniqueId());
- StatisticKey sg;
- sg = statisticsTotalGamesPlayed.get(arena.getWidthIndex());
+ PlayerStatistics ps = null;
+ StatisticKey sg = null;
+ if(plugin.isStatisticsEnabled()) {
+ ps = plugin.getCubesideStatistics().getStatistics(player.getUniqueId());
+ sg = statisticsTotalGamesPlayed.get(arena.getWidthIndex());
+ }
if(!isSuccessfullyCleared) {
world.playSound(player.getLocation(), Sound.ENTITY_GENERIC_EXPLODE, 0.5f, 0.5f);
player.sendMessage(ChatColor.YELLOW + "Game Over! Du konntest das " + plugin.getDisplayedPluginName() + "-Feld nicht erfolgreich lösen!");
arena.showMines();
- if(sg != null) {
+ if(sg != null && plugin.isStatisticsEnabled()) {
ps.increaseScore(sg, 1);
}
@@ -170,48 +184,52 @@ public class MinecleanerManager {
world.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 0.5f, 0.5f);
- if(sg != null) {
+ if(sg != null && plugin.isStatisticsEnabled()) {
ps.increaseScore(sg, 1);
}
- ps.increaseScore(statisticsWonGamesTotal, 1);
+ if(plugin.isStatisticsEnabled()) {
+ ps.increaseScore(statisticsWonGamesTotal, 1);
- sg = statisticsGames.get(arena.getWidthIndex());
- if(sg != null) {
- ps.increaseScore(sg, 1);
- }
- sg = statisticsTimeRecord.get(arena.getWidthIndex());
- if(sg != null) {
- ps.minScore(sg, millis, isUpdated -> {
- if(isUpdated != null && isUpdated) {
- player.sendMessage(ChatColor.GOLD + "Herzlichen Glückwunsch! Du hast eine neue Bestzeit erreicht! " + ChatColor.RED + MinecleanerStringUtil.timeToString(millis, false) );
- } else {
- player.sendMessage(ChatColor.YELLOW + "Glückwunsch, du konntest das " + plugin.getDisplayedPluginName() + "-Feld in " + ChatColor.RED + MinecleanerStringUtil.timeToString(millis, false) + ChatColor.YELLOW + " erfolgreich lösen!");
+ sg = statisticsGames.get(arena.getWidthIndex());
+ if(sg != null) {
+ ps.increaseScore(sg, 1);
+ }
+ sg = statisticsTimeRecord.get(arena.getWidthIndex());
+ if(sg != null) {
+ ps.minScore(sg, millis, isUpdated -> {
+ if(isUpdated != null && isUpdated) {
+ player.sendMessage(ChatColor.GOLD + "Herzlichen Glückwunsch! Du hast eine neue Bestzeit erreicht! " + ChatColor.RED + MinecleanerStringUtil.timeToString(millis, false) );
+ } else {
+ player.sendMessage(ChatColor.YELLOW + "Glückwunsch, du konntest das " + plugin.getDisplayedPluginName() + "-Feld in " + ChatColor.RED + MinecleanerStringUtil.timeToString(millis, false) + ChatColor.YELLOW + " erfolgreich lösen!");
+ }
+ });
+ }
+
+ int wIndex = arena.getWidthIndex();
+ switch (wIndex) {
+ case 0: {
+ ps.increaseScore(statisticsPointsAcquired, plugin.getConfig().getInt("winpoints.size.small"));
+ break;
+ }
+ case 1: {
+ ps.increaseScore(statisticsPointsAcquired, plugin.getConfig().getInt("winpoints.size.medium"));
+ break;
+ }
+ case 2: {
+ ps.increaseScore(statisticsPointsAcquired, plugin.getConfig().getInt("winpoints.size.large"));
+ break;
+ }
+ case 3: {
+ ps.increaseScore(statisticsPointsAcquired, plugin.getConfig().getInt("winpoints.size.expert"));
+ }
+ default: {
+ ps.increaseScore(statisticsPointsAcquired, 0);
+ break;
}
- });
- }
-
- int wIndex = arena.getWidthIndex();
- switch (wIndex) {
- case 0: {
- ps.increaseScore(statisticsPointsAcquired, plugin.getConfig().getInt("winpoints.size.small"));
- break;
- }
- case 1: {
- ps.increaseScore(statisticsPointsAcquired, plugin.getConfig().getInt("winpoints.size.medium"));
- break;
- }
- case 2: {
- ps.increaseScore(statisticsPointsAcquired, plugin.getConfig().getInt("winpoints.size.large"));
- break;
- }
- case 3: {
- ps.increaseScore(statisticsPointsAcquired, plugin.getConfig().getInt("winpoints.size.expert"));
- }
- default: {
- ps.increaseScore(statisticsPointsAcquired, 0);
- break;
}
+ } else {
+ player.sendMessage(ChatColor.YELLOW + "Glückwunsch, du konntest das " + plugin.getDisplayedPluginName() + "-Feld in " + ChatColor.RED + MinecleanerStringUtil.timeToString(millis, false) + ChatColor.YELLOW + " erfolgreich lösen!");
}
Bukkit.getScheduler().runTaskLater(plugin, () -> {
diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerPlugin.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerPlugin.java
index 672311f..69efe8f 100644
--- a/src/main/java/de/lunarakai/minecleaner/MinecleanerPlugin.java
+++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerPlugin.java
@@ -12,6 +12,8 @@ import de.lunarakai.minecleaner.commands.InfoCommand;
import de.lunarakai.minecleaner.commands.ListCommand;
import de.lunarakai.minecleaner.commands.StatsCommand;
+import java.util.logging.Level;
+
public final class MinecleanerPlugin extends JavaPlugin {
public static final String PERMISSION_PLAY = "minecleaner.play";
public static final String PERMISSION_ADMIN = "minecleaner.admin";
@@ -29,7 +31,11 @@ public final class MinecleanerPlugin extends JavaPlugin {
public void onLateEnable() {
playerUUIDCache = (PlayerUUIDCache) getServer().getPluginManager().getPlugin("PlayerUUIDCache");
- cubesideStatistics = getServer().getServicesManager().load(CubesideStatisticsAPI.class);
+ if(getServer().getPluginManager().getPlugin("CubesideStatistics") != null) {
+ cubesideStatistics = getServer().getServicesManager().load(CubesideStatisticsAPI.class);
+ } else {
+ this.getLogger().log(Level.WARNING, "Cubeside Statistics not found. No Statistics will be available");
+ }
arenaList = new ArenaList(this);
arenaList.load();
@@ -41,10 +47,13 @@ public final class MinecleanerPlugin extends JavaPlugin {
minecleanerCommand.addCommandMapping(new CreateCommand(this), "create");
minecleanerCommand.addCommandMapping(new DeleteCommand(this), "delete");
minecleanerCommand.addCommandMapping(new ListCommand(this), "list");
- minecleanerCommand.addCommandMapping(new StatsCommand(this), "stats");
- minecleanerCommand.addCommandMapping(new DeletePlayerScoreCommand(this), "deleteplayerscores");
minecleanerCommand.addCommandMapping(new InfoCommand(this), "info");
- minecleanerCommand.addCommandMapping(new SettingsCommand(this), "settings");
+
+ if(isStatisticsEnabled()) {
+ minecleanerCommand.addCommandMapping(new SettingsCommand(this), "settings");
+ minecleanerCommand.addCommandMapping(new StatsCommand(this), "stats");
+ minecleanerCommand.addCommandMapping(new DeletePlayerScoreCommand(this), "deleteplayerscores");
+ }
}
@Override
@@ -62,6 +71,9 @@ public final class MinecleanerPlugin extends JavaPlugin {
return minecleanerManager;
}
+ public boolean isStatisticsEnabled() {
+ return cubesideStatistics != null;
+ }
public CubesideStatisticsAPI getCubesideStatistics() {
return cubesideStatistics;
}