001package fr.aumgn.dac2;
002
003import java.util.logging.Logger;
004
005import fr.aumgn.bukkitutils.localization.Localization;
006import fr.aumgn.bukkitutils.localization.PluginMessages;
007import fr.aumgn.dac2.arena.Arenas;
008import fr.aumgn.dac2.config.Colors;
009import fr.aumgn.dac2.config.DACConfig;
010import fr.aumgn.dac2.stage.Stages;
011
012/**
013 * Main class which offers acces to all components.
014 */
015public class DAC {
016
017    private final DACPlugin plugin;
018
019    private DACConfig config;
020    private Colors colors;
021    private PluginMessages cmdMessages;
022    private PluginMessages messages;
023
024    private Arenas arenas;
025    private Stages stages;
026
027    public DAC(DACPlugin plugin) {
028        this.plugin = plugin;
029        reloadData();
030        this.arenas = new Arenas(this);
031        this.stages = new Stages(this);
032    }
033
034    public Logger getLogger() {
035        return plugin.getLogger();
036    }
037
038    public DACPlugin getPlugin() {
039        return plugin;
040    }
041
042    public DACConfig getConfig() {
043        return config;
044    }
045
046    public Colors getColors() {
047        return colors;
048    }
049
050    public PluginMessages getCmdMessages() {
051        return cmdMessages;
052    }
053
054    public PluginMessages getMessages() {
055        return messages;
056    }
057
058    /*
059     * Reloads all datas.
060     *
061     * <ul>
062     *  <li>Config</li>
063     *  <li>Colors</li>
064     *  <li>Messages</li>
065     * </ul>
066     */
067    public void reloadData() {
068        config = plugin.reloadDACConfig();
069        colors = new Colors(this);
070
071        Localization localization =
072                new Localization(plugin, config.getLocale());
073        cmdMessages = localization.get("commands");
074        messages = localization.get("messages");
075    }
076
077    public Arenas getArenas() {
078        return arenas;
079    }
080
081    public Stages getStages() {
082        return stages;
083    }
084}