Can't read string from config

Discussion in 'Plugin Development' started by Shevchik, Jun 4, 2012.

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

    Shevchik

    Code:
    package autosave;
     
    import java.io.*;
    import org.bukkit.configuration.Configuration;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.configuration.file.YamlConfiguration;
     
    public class AutoSaveConfigMSG {
        private Configuration configmsg;
        public AutoSaveConfigMSG(Configuration configmsg) {
            this.configmsg = configmsg;
        }
        // Messages
        protected String messageBroadcastPre = "&9AutoSaving";
        protected String messageBroadcastPost = "&9AutoSave Complete";
        protected String messageStatusFail = "&9AutoSave has stopped, check the server logs for more info";
        protected String messageStatusNotRun = "&9AutoSave is running but has not yet saved.";
        protected String messageStatusSuccess = "&9AutoSave is running and last saved at ${DATE}.";
        protected String messageStatusOff = "&9AutoSave is not running (disabled)";
        protected String messageInsufficientPermissions = "&cYou do not have access to that command.";
        protected String messageStopping = "&9AutoSave Stopping";
        protected String messageStarting = "&9AutoSave Starting";
        protected String messageInfoNaN = "&cYou must enter a valid number, ex: 300";
        protected String messageInfoChangeSuccess = "&9${VARIABLE} has been updated.";
        protected String messageInfoLookup = "&9${VARIABLE} is ${VALUE}";
        protected String messageInfoListLookup = "&9${VARIABLE} is set to [${VALUE}]";
        protected String messageInfoInvalid = "&cYou must enter a valid setting (${VALIDSETTINGS})";
        protected String messageVersion = "&9AutoSave v${VERSION}, Instance ${UUID}";
        protected String messageWarning = "&9Warning, AutoSave will commence soon.";
        protected String messageBroadcastBackupPre = "&9AutoBackuping";
        protected String messageBroadcastBackupPost = "&9AutoBackup Complete";
        protected String messageBackupWarning = "&9Warning, AutoBackup will commence soon";
     
     
        public void loadmsg() {
            configmsg = new YamlConfiguration();
            YamlConfiguration.loadConfiguration(new File("plugins/AutoSaveWorld/configmsg.yml"));
            messageBroadcastPre =configmsg.get("broadcast.pre", messageBroadcastPre).toString();
            messageBroadcastPost =configmsg.get("broadcast.post", messageBroadcastPost).toString();
            messageBroadcastBackupPre =configmsg.get("broadcastbackup.pre", messageBroadcastBackupPre).toString();
            messageBroadcastBackupPost =configmsg.get("broadcastbackup.post", messageBroadcastBackupPost).toString();
            messageStatusFail =configmsg.get("status.fail", messageStatusFail).toString();
            messageStatusNotRun =configmsg.get("status.notrun", messageStatusNotRun).toString();
            messageStatusSuccess =configmsg.get("status.success", messageStatusSuccess).toString();
            messageStatusOff =configmsg.get("status.off", messageStatusOff).toString();
            messageInsufficientPermissions =configmsg.get("insufficentpermissions", messageInsufficientPermissions).toString();
            messageStopping =configmsg.get("stopping", messageStopping).toString();
            messageStarting =configmsg.get("starting", messageStarting).toString();
            messageInfoNaN =configmsg.get("info.nan", messageInfoNaN).toString();
            messageInfoChangeSuccess =configmsg.get("info.changesuccess", messageInfoChangeSuccess).toString();
            messageInfoLookup =configmsg.get("infolookup", messageInfoLookup).toString();
            messageInfoListLookup =configmsg.get("infolistlookup", messageInfoListLookup).toString();
            messageInfoInvalid =configmsg.get("infoinvalid", messageInfoInvalid).toString();
            messageVersion =configmsg.get("version", messageVersion).toString();
            messageWarning =configmsg.get("warning", messageWarning).toString();
            messageBackupWarning =configmsg.get("warningbackup", messageBackupWarning).toString();
     
            configmsg.set("broadcast.pre", messageBroadcastPre);
            configmsg.set("broadcast.post", messageBroadcastPost);
            configmsg.set("broadcastbackup.pre", messageBroadcastBackupPre);
            configmsg.set("broadcastbackup.post", messageBroadcastBackupPost);
            configmsg.set("status.fail", messageStatusFail);
            configmsg.set("status.notrun", messageStatusNotRun);
            configmsg.set("status.success", messageStatusSuccess);
            configmsg.set("status.off", messageStatusOff);
            configmsg.set("insufficentpermissions", messageInsufficientPermissions);
            configmsg.set("stopping", messageStopping);
            configmsg.set("starting", messageStarting);
            configmsg.set("info.nan", messageInfoNaN);
            configmsg.set("info.changesuccess", messageInfoChangeSuccess);
            configmsg.set("infolookup", messageInfoLookup);
            configmsg.set("infolistlookup", messageInfoListLookup);
            configmsg.set("infoinvalid", messageInfoInvalid);
            configmsg.set("version", messageVersion);
            configmsg.set("warning", messageWarning);
            configmsg.set("warningbackup", messageBackupWarning);
     
         
            try {
                ((FileConfiguration) configmsg).save(new File("plugins/AutoSaveWorld/configmsg.yml"));
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
         
        }
     
     
     
     
    }
    
    It doesn't work(always returns a default value). getString() also doesn't work. Others methods like getInt() , getBoolean() are working.
    Why?
     
  2. Offline

    CorrieKay

    post your configuration file.

    also, you should use FileConfiguration, instead of Configuration.

    also also, use getString(path,default) instead of get(path,default).toString();
     
  3. Offline

    Shevchik

    file:
    Code:
    broadcast:
      pre: '&9AutoSaving'
      post: '&9AutoSave Complete'
    broadcastbackup:
      pre: '&9AutoBackuping'
      post: '&9AutoBackup Complete'
    status:
      fail: '&9AutoSave has stopped, check the server logs for more info'
      notrun: '&9AutoSave is running but has not yet saved.'
      success: '&9AutoSave is running and last saved at ${DATE}.'
      'off': '&9AutoSave is not running (disabled)'
    insufficentpermissions: '&cYou do not have access to that command.'
    stopping: '&9AutoSave Stopping'
    starting: '&9AutoSave Starting'
    info:
      nan: '&cYou must enter a valid number, ex: 300'
      changesuccess: '&9${VARIABLE} has been updated.'
    infolookup: '&9${VARIABLE} is ${VALUE}'
    infolistlookup: '&9${VARIABLE} is set to [${VALUE}]'
    infoinvalid: '&cYou must enter a valid setting (${VALIDSETTINGS})'
    version: '&9AutoSave v${VERSION}, Instance ${UUID}'
    warning: '&9Warning, AutoSave will commence soon.'
    warningbackup: '&9Warning, AutoBackup will commence soon'
    
    P.S getString() also doen't work.
     
  4. Offline

    CorrieKay

    i found the problem.

    do this

    private FileConfiguration configmsg;

    then in loadmsg():
    configmsg = YamlConfiguration.loadConfiguration(new File("wherever the config is located"));
     
  5. Offline

    Shevchik

    Now it works, thanks!
    But still intresting why getInt() and others were working?
     
  6. Offline

    CorrieKay

    ...not a clue :D
     
Thread Status:
Not open for further replies.

Share This Page