package me.maker56.survivalgames.scoreboard; import java.util.HashMap; import java.util.List; import org.bukkit.configuration.file.FileConfiguration; import me.maker56.survivalgames.SurvivalGames; import me.maker56.survivalgames.game.GameState; public class ScoreBoardManager { public ScoreBoardManager() { reinitializeDatabase(); } public ScoreboardPhase getNewScoreboardPhase(GameState state) { if(phases.containsKey(state)) return phases.get(state).clone(); return null; } // STATIC private static HashMap<GameState, ScoreboardPhase> phases = new HashMap<>(); public static void reinitializeDatabase() { FileConfiguration c = SurvivalGames.scoreboard; phases.clear(); if(c.contains("Phase")) { for(String key : c.getConfigurationSection("Phase.").getKeys(false)) { try { if(!c.getBoolean("Phase." + key + ".Enabled")) continue; GameState state = GameState.valueOf(key.toUpperCase()); String title = c.getString("Phase." + key + ".Title"); List<String> scores = c.getStringList("Phase." + key + ".Scores"); ScoreboardPhase sp = new ScoreboardPhase(title, scores); phases.put(state, sp); } catch(Exception e) { System.err.println("[SurvivalGames] Can't load scoreboard phase " + key + " - Mabye this is the reason: " + e.toString()); } } } System.out.println("[SurvivalGames] " + phases.size() + " scoreboard phases loaded!"); } }