public class ArenaManager { private final Map arenas; private final Map playerToIDMap; private FileConfiguration config = null; private final Main plugin; public ArenaManager(Main plugin) { this.plugin = plugin; arenas = new HashMap<>(); playerToIDMap = new HashMap<>(); } public void createArena(int ID, String arenaName){ if(!arenaExist(ID)){ Arena arena = new Arena(ID, arenaName, false, null, null, null); arenas.put(ID, arena); } } public void saveArenas(){ for(Arena arena: arenas.values()) { config = plugin.getYamlFileManager().getYamlFile("arenadata.yml").getFileConfiguration(); config.set("arenas", arena.getID()); config.set("arenas." + arena.getID() + ".arenaName", arena.getArenaName()); config.set("arenas." + arena.getID() + ".activated", arena.isActivated()); config.set("arenas." + arena.getID() + ".gameLocation", arena.getGameSpawn()); config.set("arenas." + arena.getID() + ".endLocation", arena.getEndSpawn()); config.set("arenas." + arena.getID() + ".lobbyLocation", arena.getLobbySpawn()); MessageManager.sendMessage(ChatColor.GREEN, "Saved arena " + arena.getArenaName()); } } public void loadArenas(){ config = plugin.getYamlFileManager().getYamlFile("arenadata.yml").getFileConfiguration(); ConfigurationSection section = config.getConfigurationSection("arenas"); for(String key: section.getKeys(false)) { int id = Integer.parseInt(key); String arenaName = config.getString("arenas." + id + ".arenaName"); boolean activated = config.getBoolean("arenas." + id + ".activated"); Location gameLocation = config.getLocation("arenas." + id + ".gameLocation"); Location endLocation = config.getLocation("arenas." + id + ".endLocation"); Location lobbyLocation = config.getLocation("arenas." + id + ".lobbyLocation"); Arena arena = new Arena(id, arenaName, activated, gameLocation, lobbyLocation, endLocation); MessageManager.sendMessage(ChatColor.GREEN, "Found arena " + arenaName); if(activated){ arena.setGameState(GameState.LOBBY); } } } public Arena getArena(int ID) { if(arenaExist(ID)) { return arenas.get(ID); } return null; } public boolean arenaExist(int ID) { return arenas.containsKey(ID); } public Map getPlayerToIDMap() { return playerToIDMap; } }