[SOLVED] Mapping Values Are Not Allowed Here: Configuration Issues

Discussion in 'Plugin Development' started by np98765, Sep 4, 2012.

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

    np98765

    Read the above edit. ^_^

    And I will, but I need to find a nice YAML parser that will allow for comments... I strongly dislike throwing the entire config explanation in the header. But I don't want to even think about that until I get this main issue fixed...
     
  2. Offline

    QuantumDev

    Did you load your config in your onEnable() method?

    If not, here's what I do:

    Code:
    //Global Variables
    private FileConfiguration config = null;
    private File configFile = null; 
    ...
    //At the top of onEnable()
    configFile = new File("plugins" + File.separator + "Grenades" + File.separator + "config.yml");
    config = YamlConfiguration.loadConfiguration(configFile);
     
    InputStream defaultStream = this.getResource("config.yml");
    if (defaultStream != null) {
        YamlConfiguration defaultConfig = YamlConfiguration.loadConfiguration(defaultStream);
        config.setDefaults(defaultConfig);
    }
     
  3. Offline

    np98765

    ... "Load"? Is there something special I need to do?
    It works from the plugin point-of-view, because I can print from it...
     
  4. Offline

    QuantumDev

    Can you print from the config from your listener?
     
  5. Offline

    np98765

    Yep (I posted above).

    I printed a "grenade-effect" from the config from the EggListener. I also printed the plugin name.

    Before the prints, I got an error (also posted above -- twice).
     
  6. Offline

    QuantumDev

    Well on your successful test you said you used:

    Code:
    plugin.getConfig().getInt("grenades.egg.grenade-effect");
    Why would you use

    Code:
    plugin.getConfig().getString("grenades.egg.grenade-effect")
    If the getInt() is working?
     
  7. Offline

    np98765

    That's weird, I dunno why I put getInt there. It's a String. (And says string right now:
    Code:
    System.out.println(plugin.getConfig().getString("grenades.egg.grenade-effect"));
    
    )
     
  8. Offline

    QuantumDev

    Does the getString() return properly?
     
  9. Offline

    np98765

    Yep.
     
  10. Offline

    QuantumDev

    PM me a link to all of the source, I'll check it out there. It's much faster and easier on both of our ends.

    On your line 54, you have getString("grenades.egg") instead of getString("grenades.egg.grenade-effect")

    And on line 59 you're comparing strings wrong (which is weird because you did it right everywhere else).

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 28, 2016
  11. Offline

    np98765

    I feel like I just did that. ^_^
    Changed, and testing....

    Same error as always:
    Show Spoiler
    Code:
    [SEVERE] Cannot load configuration from stream
    org.bukkit.configuration.InvalidConfigurationException: mapping values are not allowed here
    in "<string>", line 4, column 31:
                    confusion-duration: 10
                                      ^
     
    at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:55)
    at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:138)
    at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:202)
    at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:121)
    at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:111)
    at com.lavacraftserver.UltimateGrenades.EggListener.onProjectileHit(EggListener.java:35)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:330)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
    at net.minecraft.server.EntityProjectile.h_(EntityProjectile.java:159)
    at net.minecraft.server.World.entityJoinedWorld(World.java:1239)
    at net.minecraft.server.WorldServer.entityJoinedWorld(WorldServer.java:498)
    at net.minecraft.server.World.playerJoinedWorld(World.java:1221)
    at net.minecraft.server.World.tickEntities(World.java:1119)
    at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:567)
    at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:212)
    at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:476)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:408)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    Caused by: mapping values are not allowed here
    in "<string>", line 4, column 31:
                    confusion-duration: 10
                                      ^
     
    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchValue(ScannerImpl.java:733)
    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:305)
    at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:179)
    at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:563)
    at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:161)
    at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:146)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:237)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:237)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:123)
    at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:106)
    at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:121)
    at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:480)
    at org.yaml.snakeyaml.Yaml.load(Yaml.java:399)
    at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:53)
    ... 23 more
    
     
  12. Offline

    QuantumDev

    Try putting apostrophes around the confusion-duration value, like

    confusion-duration: '10'
     
  13. Offline

    np98765

    Tried that before as well, didn't work. -_- I'll try it again...
    - Nope, didn't work.

    I'm just going to delete the entire data folder and rewrite the config (again).

    EDIT: Hmmmm... This is the new config:

    Code:
    #This is an awesome plugin!
    grenades:
      egg:
        grenade-radius: '10'
        grenade-effect: confusion
        blindness-duration: '10'
        burn-time: '10'
    
    And it's the same error... It says:
    Code:
    [SEVERE] Cannot load configuration from stream
    org.bukkit.configuration.InvalidConfigurationException: mapping values are not allowed here
    in "<string>", line 4, column 31:
                    confusion-duration: 10
                                      ^
    ....
    
     
  14. Offline

    QuantumDev

    I will also and see what happens.

    I believe I've figured it out.

    Do this and tell me what happens:

    On the top of your main class (after extends JavaPlugin {) add these two global variables:

    Code:
    public FileConfiguration config = null;
    private File configFile = null; 
    Then on the top of your onEnable() function add this:

    Code:
    configFile = new File("plugins" + File.separator + "UltimateGrenades" + File.separator + "config.yml");
    config = YamlConfiguration.loadConfiguration(configFile);
     
    InputStream defaultStream = this.getResource("config.yml");
    if (defaultStream != null) {
        YamlConfiguration defaultConfig = YamlConfiguration.loadConfiguration(defaultStream);
        config.setDefaults(defaultConfig);
    }
    Then in your listener, change all of the:

    Code:
    plugin.getConfig()
    to

    Code:
    plugin.config
    And make sure your YML config file is called config.yml and is in plugins/UltimateGrenades/config.yml

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 28, 2016
  15. Offline

    np98765

    QuantumDev:

    Defined the global variables and set them up
    Changed all instances of plugin.getConfig() to plugin.config
    The config is in plugins/UltimateGrenades and is called config.yml

    Yet I still get:
    Code:
    [SEVERE] Cannot load configuration from stream
    org.bukkit.configuration.InvalidConfigurationException: mapping values are not allowed here
    in "<string>", line 4, column 31:
                    confusion-duration: 10
                                      ^
     
    at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:55)
    at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:138)
    at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:202)
    at com.lavacraftserver.UltimateGrenades.UltimateGrenades.onEnable(UltimateGrenades.java:25)
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:365)
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381)
    at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:265)
    at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:247)
    at org.bukkit.craftbukkit.CraftServer.reload(CraftServer.java:567)
    at org.bukkit.Bukkit.reload(Bukkit.java:183)
    at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:21)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168)
    at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:492)
    at org.bukkit.craftbukkit.CraftServer.dispatchServerCommand(CraftServer.java:488)
    at net.minecraft.server.DedicatedServer.ah(DedicatedServer.java:248)
    at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213)
    at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:476)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:408)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    Caused by: mapping values are not allowed here
    in "<string>", line 4, column 31:
                    confusion-duration: 10
                                      ^
     
    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchValue(ScannerImpl.java:733)
    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:305)
    at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:179)
    at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:563)
    at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:161)
    at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:146)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:237)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:237)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:123)
    at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:106)
    at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:121)
    at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:480)
    at org.yaml.snakeyaml.Yaml.load(Yaml.java:399)
    at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:53)
    ... 19 more
    
    :mad: This plugin angers me.

    But thanks for all the help, it really means a lot.

    Any other suggestions? I've redone the config thrice, and consistently gotten the error on that ":" on confusion-duration. I've tried single-quotes, no quotes, everything -- Yet I still have the feeling that it's the config.
     
  16. Offline

    QuantumDev

    What's your line 25 on your main class? Mine's... considerably different to say the least ;)

    Also, here's my config.yml, don't touch it until it works :) Your text editor might be encoding it in something YAML doesn't like.

    https://dl.dropbox.com/s/18msoa5isbpnxel/config.yml?dl=1

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 28, 2016
  17. Offline

    np98765

    Ok, I tested something else.

    I first deleted the data folder, then made a new one and made a new config.yml. I removed the "-" from "confusion-duration" and "blindness-duration".

    This is the error:
    Code:
    [SEVERE] Cannot load configuration from stream
    org.bukkit.configuration.InvalidConfigurationException: mapping values are not allowed here
     in "<string>", line 4, column 31:
                    confusion-duration: 10
                                      ^
     
    at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:55)
    at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:138)
    at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:202)
    at com.lavacraftserver.UltimateGrenades.UltimateGrenades.onEnable(UltimateGrenades.java:25)
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:365)
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381)
    at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:265)
    at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:247)
    at org.bukkit.craftbukkit.CraftServer.reload(CraftServer.java:567)
    at org.bukkit.Bukkit.reload(Bukkit.java:183)
    at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:21)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168)
    at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:492)
    at org.bukkit.craftbukkit.CraftServer.dispatchServerCommand(CraftServer.java:488)
    at net.minecraft.server.DedicatedServer.ah(DedicatedServer.java:248)
    at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213)
    at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:476)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:408)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    Caused by: mapping values are not allowed here
     in "<string>", line 4, column 31:
                    confusion-duration: 10
                                      ^
     
    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchValue(ScannerImpl.java:733)
    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:305)
    at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:179)
    at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:563)
    at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:161)
    at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:146)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:237)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:237)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:123)
    at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:106)
    at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:121)
    at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:480)
    at org.yaml.snakeyaml.Yaml.load(Yaml.java:399)
    at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:53)
    ... 19 more
    
    It's still acting as if I have a "-" there!

    The config:
    Code:
    grenades:
      egg:
        grenade-effect: confusion
        confusionduration: 10
        blindnessduration: 10
        burn: 10
    # And I know there are no single-quotes :P
    
    Line 25:
    YamlConfiguration defaultConfig = YamlConfiguration.loadConfiguration(defaultStream);

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 28, 2016
  18. Offline

    QuantumDev

    Do you have a config.yml in your JAR file? I know sometimes the default getConfig() will search there first, so get rid of it.

    Download my config.yml and replace your's.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 28, 2016
    np98765 likes this.
  19. Offline

    np98765

    Oh my... *gasp*

    Loaded without a YAML error... Going on the server to see if it's fixed...

    Auth servers down, turning to offline mode...

    IT WORKED! Deleting the config seemed to fix the issue! Finally! Thank you!

    :') As you can tell I'm overjoyed... Been working on this issue since last Sunday.

    Thank you so much! This finally works!
     
  20. Offline

    QuantumDev

    No problem, I'm glad to help :)
     
  21. Offline

    mavis

    So... the ultimate problem was a poorly formatted config.yml in the .jar?
     
  22. Offline

    np98765

    Yeah. I honestly don't even know what the problem was, I deleted it so quickly.
    (No, it wasn't tabs :3)
     
Thread Status:
Not open for further replies.

Share This Page