CustomConfig Instance Problem

Discussion in 'Plugin Development' started by jarnoboy404, Feb 13, 2018.

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

    timtower Administrator Administrator Moderator

    @jarnoboy404 And where did you put it then? It was an example, not copy paste code.
     
  2. Offline

    jarnoboy404

    I putted it in the ConfigurationManager. But i thought i could paste it.
     
  3. Offline

    timtower Administrator Administrator Moderator

    Never blankly copy paste.
    Look at what it does.

    this.Test = new File(this.Test, main.getDataFolder())
    Why the red part btw? That wasn't there before.
     
  4. Offline

    jarnoboy404

    Oh maybe you can explain why this is not working?

    Code:
        private Main main;
        public ConfigurationManager(Main main) {
            this.main = main;
        }   
        public File Test = new File(main.getDataFolder() + "/Test.yml");
     
  5. Offline

    timtower Administrator Administrator Moderator

    @jarnoboy404 main is null when the line for Test is being called. Constructor hasn't been called yet.
    Java call order:
    1. Fields
    2. Constructor
    3. Any method you call after the constructor
     
  6. Offline

    jarnoboy404

    How do i get the getDataFolder then?
     
  7. Offline

    timtower Administrator Administrator Moderator

    Code:
        private Main main;
        public File Test;
        public ConfigurationManager(Main main) {
            this.main = main;
            this.Test = new File(main.getDataFolder() + "/Test.yml");
        }  
    
     
  8. Offline

    jarnoboy404

    Then i says again that the File is null

    Error (open)

    Code:
    [16:56:12 ERROR]: Error occurred while enabling Test v1.0 (Is it up to date?)
    java.lang.IllegalArgumentException: File cannot be null
            at org.apache.commons.lang.Validate.notNull(Validate.java:192) ~[spigot.
    jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(Yam
    lConfiguration.java:173) ~[spigot.jar:git-Spigot-3d850ec-809c399]
            at me.jarnoboy404.TestConfig.ConfigurationManager.<init>(ConfigurationMa
    nager.java:19) ~[?:?]
            at me.jarnoboy404.TestConfig.Main.onEnable(Main.java:8) ~[?:?]
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[s
    pigot.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader
    .java:337) [spigot.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage
    r.java:403) [spigot.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugin(CraftServer.
    java:382) [spigot.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugins(CraftServer
    .java:331) [spigot.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.reload(CraftServer.java:7
    53) [spigot.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.Bukkit.reload(Bukkit.java:525) [spigot.jar:git-Spigot-3d85
    0ec-809c399]
            at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:
    27) [spigot.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:14
    1) [spigot.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServ
    er.java:649) [spigot.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchServerCommand(Cra
    ftServer.java:635) [spigot.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.DedicatedServer.aP(DedicatedServer.java
    :444) [spigot.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:
    407) [spigot.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:
    679) [spigot.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.jav
    a:577) [spigot.jar:git-Spigot-3d850ec-809c399]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_161]
     
  9. Offline

    timtower Administrator Administrator Moderator

  10. Offline

    jarnoboy404

    I don't know. See the error in the message i send before
     
  11. Offline

    timtower Administrator Administrator Moderator

    @jarnoboy404 It was a hint to find out what.
    Debug the values, print them to the console.
     
  12. Offline

    jarnoboy404

    I have found it thank you. This is what i needed to do:

    ConfigurationManager Class (open)

    Code:
    package me.jarnoboy404.TestConfig;
    
    import java.io.File;
    import java.io.IOException;
    
    import org.bukkit.configuration.InvalidConfigurationException;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.configuration.file.YamlConfiguration;
    
    public class ConfigurationManager {
           @SuppressWarnings("unused")
        private Main main;
            public File Test;
            public FileConfiguration testdata;
            public ConfigurationManager(Main main) {
                this.main = main;
                this.Test = new File(main.getDataFolder() + "/Test.yml");
                this.testdata = YamlConfiguration.loadConfiguration(Test);
            } 
        //public File Test = new File(main.getDataFolder() + "/Test.yml");
        //public FileConfiguration testdata = YamlConfiguration.loadConfiguration(Test);
       
        public void saveFiles(){
            try {
                testdata.save(Test);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
       
        public void loadFiles(){
           if(Test.exists()){
           try {
               testdata.load(Test);
           } catch (IOException | InvalidConfigurationException e) {
               e.printStackTrace();
           }
         }else{
               try {
                   testdata.options().copyDefaults(true);
                   testdata.save(Test);
               } catch (IOException e) {
                   e.printStackTrace();
                 }
         }
        }
    }
    


    But one question. There is no simpeler way to do this?

    @timtower Can you explain the whole thing because nothing works =(

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Feb 14, 2018
  13. Offline

    timtower Administrator Administrator Moderator

    @jarnoboy404 This is the sinple way.
    And again: explain what doesn't work.
    Saying "nothing works" won't cut it, we need to know what doesn't work, what you have etc.
     
Thread Status:
Not open for further replies.

Share This Page