Bukkit 1.1-R3 (1846) saveConfig() Problem

Discussion in 'Plugin Development' started by surtic, Feb 5, 2012.

Thread Status:
Not open for further replies.
  1. Offline

    surtic

    Hi all,

    I have a Problem with saveConfig() in this Build. In the old for 1.0.1 is there a Bug?

    My Config Loads right but i cant Save my Config... i get no error ore somethings...


    Here a bit of my Code from SettingsManager
    Code:
    public void save() {
            //config.set("Messages", getMessages().toArray() );
           
            // Test
            ArrayList<String> message = new ArrayList<String>();
            message.add("Save Test");
            message.add("Save Test");
            message.add("Save Test");
            message.add("Save Test");
           
            config.set("Messages", message);
           
            plugin.saveConfig();
            plugin.log("Config : save");
    }
    Here my SettingsManager is there i mistake?

    Code:
    package ch.nonameweb.bukkit.plugins.simpleautoannouncer.manager;
     
     
    import java.util.ArrayList;
    import java.util.List;
    import java.util.ListIterator;
     
    import org.bukkit.configuration.Configuration;
     
    import ch.nonameweb.bukkit.plugins.simpleautoannouncer.SimpleAutoAnnouncer;
     
    public class SettingsManager {
     
     
        private SimpleAutoAnnouncer plugin;
        private Configuration config;
     
        private Boolean debug;
     
        private String announceName;
        private Integer time;
     
        private ArrayList<String> messages;
     
        public SettingsManager() {
       
            this.plugin = SimpleAutoAnnouncer.getInstance();
            this.config = plugin.getConfig();
       
            this.addDeafaults();
            this.load();
        }
     
     
        public void addDeafaults() {
       
            config.addDefault("Settings.Debug", false);
       
            config.addDefault("Settings.Announce.Name", "Announcement");
            config.addDefault("Settings.Time", 20);
       
       
            // Beispiel Nachricht
            ArrayList<String> message = new ArrayList<String>();
            message.add("<yellow>MKD50 will be your new Master");
            message.add("<dark_red>Your Minecraft Client will Explode in 20sec <tick> <tick>");
     
            config.addDefault("Messages", message);
       
            config.options().copyDefaults(true);
            plugin.saveConfig();
       
            plugin.log("Config : Defaults load");
        }
     
     
        public void load() {
       
            plugin.reloadConfig();
       
            setDebug( config.getBoolean("Settings.Debug") );
       
            setAnnounceName( config.getString("Settings.Announce.Name") );
            setTime( config.getInt("Settings.Time") );
       
            setMessages( config.getList("Messages") );
       
            plugin.log("Config : load");
        }
     
     
        public void save() {
       
            config.set("Settings.Debug", getDebug() );
       
            config.set("Settings.Debug", true);
       
            config.set("Settings.Announce.Name", getAnnounceName() );
            config.set("Settings.Time",    getTime() );
       
            //config.set("Messages", getMessages().toArray() );
       
            // Test
            ArrayList<String> message = new ArrayList<String>();
            message.add("Save Test");
            message.add("Save Test");
            message.add("Save Test");
            message.add("Save Test");
       
            config.set("Messages", message);
       
            plugin.saveConfig();
            plugin.log("Config : save");
        }
     
     
        public Integer getTime() {
            return time;
        }
     
     
        public void setTime(Integer time) {
            this.time = time;
        }
     
     
        public void setMessages(List<String> messages) {
       
            this.messages = new ArrayList<String>();
       
            for ( String message : messages ) {
                this.messages.add(message);
            }
       
        }
     
     
        public ArrayList<String> getMessages() {
            return this.messages;
        }
     
     
        public void addMessage( String message ) {
            this.messages.add(message);
        }
     
     
        public void removeMessage( Integer id ) {
       
            ListIterator<String> listIterator = this.messages.listIterator();
            Integer counter = 0;
       
            listIterator.next();
       
            for ( String message : this.messages ) {
           
                if ( counter == id ) {
                    listIterator.remove();
                } else {
                    listIterator.next();
                    counter++;
                }
           
            }
       
        }
     
     
        public String getAnnounceName() {
            return announceName;
        }
     
     
        public void setAnnounceName(String announceName) {
            this.announceName = announceName;
        }
     
     
        public Boolean getDebug() {
            return debug;
        }
     
     
        public void setDebug(Boolean debug) {
            this.debug = debug;
        }
    }
    
    And my Main Class onDisable

    Code:
    @Override
        public void onDisable() {
           
            this.settingsManager.save();
            saveConfig();
            this.log("SimpleAutoAnnounce : Disabled");
        }
    pleas close :)

    i had found the problem...

    https://bukkit.atlassian.net/browse/BUKKIT-616

    i had add this to my save()

    plugin.reloadConfig();
    this.config = plugin.getConfig();

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 23, 2016
Thread Status:
Not open for further replies.

Share This Page