BungeeCord YML?

Discussion in 'BungeeCord Plugin Development' started by Inkzzz, May 20, 2015.

  1. Inkzzz

    Resource Staff

    Ok, so I'm creating a plugin, which has a YML file, however it's not generating, nor throwing errors.

    YML Class:
    Code (Text):
    package me.bungee.pvpingbs.Inkzzz;

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.ArrayList;
    import java.util.List;

    import com.google.common.io.ByteStreams;

    import net.md_5.bungee.api.plugin.Plugin;
    import net.md_5.bungee.config.Configuration;
    import net.md_5.bungee.config.ConfigurationProvider;
    import net.md_5.bungee.config.YamlConfiguration;

    public class YML {

        private Configuration config;
        private File file = null;
        private Plugin p;

        void loadConfig() {
            p = Main.getInstance();
            if (!p.getDataFolder().exists()) {
                p.getDataFolder().mkdir();
            }
            File configFile = new File(p.getDataFolder(), "config.yml");
            if (!configFile.exists()) {
                try {
                    configFile.createNewFile();
                    try (InputStream is = p.getResourceAsStream("config.yml");
                            OutputStream os = new FileOutputStream(configFile)) {
                        ByteStreams.copy(is, os);
                    }
                } catch (IOException e) {
                    throw new RuntimeException(
                            "Unable to create configuration file", e);
                }
            }
            try {
                config = ConfigurationProvider.getProvider(
                        YamlConfiguration.class).load(file);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        public void saveConfig() {
            p = Main.getInstance();
            try {
                ConfigurationProvider.getProvider(YamlConfiguration.class).save(
                        config, new File(p.getDataFolder(), "config.yml"));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        public File getFile(Plugin p) {
            if (file == null) {
                File configFile = new File(p.getDataFolder(), "config.yml");
                if (configFile.exists()) {
                    file = new File(p.getDataFolder(), "config.yml");
                } else
                    loadConfig();
            }
            return file;
        }

        void putConfig() {
            if (config.getString("Maintenance") == null) {
                config.set("Maintenance", Boolean.valueOf(false));
            }
            if (config.getString("Players") == null) {
                List<String> players = new ArrayList<String>();
                players.add("Inkzzz");
                config.set("Players", players);
            }
            saveConfig();
        }

        public Configuration getData() {
            return config;
        }

    }
     
    OnEnable Method:
    Code (Text):
        public void onEnable() {
            instance = this;
            data = yml;
            loadCommands();
            loadListeners();
            yml.getFile(this);
            yml.loadConfig();
            yml.putConfig();
        }
     
    • Like Like x 1
  2. Inkzzz

    Resource Staff

    Thank you!