Settings + Displayed Plugin Name is now configurable in config.yml
This commit is contained in:
parent
c8978e2625
commit
82a4920899
12 changed files with 240 additions and 28 deletions
|
|
@ -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<Integer, StatisticKey> statisticsTimeRecord;
|
||||
private final HashMap<Integer, StatisticKey> 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<Integer, String> 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<Integer, String> getSizes() {
|
||||
return sizes;
|
||||
}
|
||||
|
||||
public Inventory getConfirmPlayingInventory() {
|
||||
return confirmPlayingInventory;
|
||||
}
|
||||
|
||||
public Inventory getSettingsInventory() {
|
||||
return settingsInventory;
|
||||
}
|
||||
|
||||
public SettingKey getMinecleanerSettingTimerKey() {
|
||||
return minecleanerSettingTimerKey;
|
||||
}
|
||||
|
||||
public SettingKey getMinecleanerAdditionalDisplaySettingKey() {
|
||||
return minecleanerAdditionalDisplaySettingKey;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue