YAML files aren't working with color codes?

Discussion in 'Plugin Development' started by Baummann, Aug 10, 2011.

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

    Baummann

    I got this method:
    Code:java
    1. public void loadConfig() {
    2. Configuration config = getConfiguration();
    3. config.load();
    4. broadcastMessage = config.getBoolean("broadcast-message-on-rank-change", true);
    5. broadcastRankOnLogin = config.getBoolean("broadcast-rank-on-login", true);
    6. broadcastMessageString = config.getString("rank-change-message", "&4%player%'s rank has been changed to &4%a% %rank%&4!").replace("&", "\u00A7");
    7. joinMessage = config.getString("join-message", "&4%player% %a% %rank% joined the game.").replace("&", "\u00A7");
    8. ownerJoinMessage = config.getString("owner-join-message", "&4%player% the &eOwner &4joined the game.").replace("&", "\u00A7");
    9. ownerName = config.getString("owner-name", "");
    10. config.setProperty("rank-change-message", String.valueOf(broadcastMessageString));
    11. config.setProperty("join-message", String.valueOf(joinMessage));
    12. config.setProperty("owner-join-message", String.valueOf(ownerJoinMessage));
    13. config.setProperty("broadcast-message-on-rank-change", Boolean.valueOf(SetRank.broadcastMessage));
    14. config.setProperty("broadcast-rank-on-login", Boolean.valueOf(SetRank.broadcastRankOnLogin));
    15. config.save();
    16. }


    It's working fine. But when I edit the config file and reload the plugin it gives me this error:

    Code:
    18:27:56 [WARNUNG] Unexpected exception while parsing console command
    org.bukkit.command.CommandException: Unhandled exception executing command 'setrank' in plugin SetRank v1.12
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:129)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:312)
        at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:480)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:465)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: while parsing a block mapping
     in "<reader>", line 1, column 1:
        rank-change-message: '?b%player% ... 
        ^
    expected <block end>, but found Scalar
     in "<reader>", line 1, column 34:
        rank-change-message: '?b%player%'s rank is now %rank%.'
                                         ^
    
        at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:576)
        at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:163)
        at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:148)
        at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:228)
        at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
        at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:122)
        at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:105)
        at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:124)
        at org.yaml.snakeyaml.Yaml.load(Yaml.java:264)
        at org.bukkit.util.config.Configuration.load(Configuration.java:82)
        at com.Baummann.SetRank.SetRank.loadConfig(SetRank.java:100)
        at com.Baummann.SetRank.SetRank.onCommand(SetRank.java:237)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
        ... 6 more
    
     
  2. Offline

    nisovin

    Can you post the edited config file?
     
  3. Offline

    Baummann

    Yes.
    Code:
    rank-change-message: '§b%player%'s rank is now %rank%.'
    owner-join-message: §4%player% the §eOwner §4joined the game.
    join-message: §4%player% %a% %rank% joined the game.
    owner-name: ''
    broadcast-rank-on-login: true
    broadcast-message-on-rank-change: true
     
  4. Offline

    Darkman2412

    Try removing
    Code:java
    1. config.setProperty("rank-change-message", String.valueOf(broadcastMessageString));
    2. config.setProperty("join-message", String.valueOf(joinMessage));
    3. config.setProperty("owner-join-message", String.valueOf(ownerJoinMessage));
    4. config.setProperty("broadcast-message-on-rank-change", Boolean.valueOf(SetRank.broadcastMessage));
    5. config.setProperty("broadcast-rank-on-login", Boolean.valueOf(SetRank.broadcastRankOnLogin));
    6.  


    edit: and try replacing \U00A7 with §
     
  5. Offline

    nisovin

    Your issue is you have a single quote inside a string denoted with single quotes. So that apostrophe ends up terminating the string.
     
Thread Status:
Not open for further replies.

Share This Page