Solved Config.yml and Events.java errors

Discussion in 'Plugin Development' started by gamelord327, Apr 16, 2013.

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

    gamelord327

    Ive got my plugin to create a custom login/out message rather then the defult one but when i join the server it gives me a bunch of errors in my console and i have no idea how to fix this.

    Here is the error message:

    Code:
    [INFO] gamelord327[/127.0.0.1:50261] logged in with entity id 259 at ([world] -155.59028802171295, 72.0, 355.5081367887427)
    2013-04-16 17:02:11 [SEVERE] Cannot load plugins\customMessage\config.yml
    org.bukkit.configuration.InvalidConfigurationException: while scanning for the next token
    found character %'%' that cannot start any token
    in "<string>", line 1, column 9:
        onJoin: %player% has joined the server.
                ^
     
        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.FileConfiguration.load(FileConfiguration.java:105)
        at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:175)
        at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:117)
        at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:111)
        at com.adam.custommessage.Events.onPlayerJoin(Events.java:22)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
        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.v1_5_R2.PlayerList.c(PlayerList.java:204)
        at net.minecraft.server.v1_5_R2.PlayerList.a(PlayerList.java:100)
        at net.minecraft.server.v1_5_R2.PendingConnection.d(PendingConnection.java:129)
        at net.minecraft.server.v1_5_R2.PendingConnection.c(PendingConnection.java:44)
        at net.minecraft.server.v1_5_R2.DedicatedServerConnectionThread.a(DedicatedServerConnectionThread.java:41)
        at net.minecraft.server.v1_5_R2.DedicatedServerConnection.b(SourceFile:29)
        at net.minecraft.server.v1_5_R2.MinecraftServer.r(MinecraftServer.java:578)
        at net.minecraft.server.v1_5_R2.DedicatedServer.r(DedicatedServer.java:225)
        at net.minecraft.server.v1_5_R2.MinecraftServer.q(MinecraftServer.java:474)
        at net.minecraft.server.v1_5_R2.MinecraftServer.run(MinecraftServer.java:407)
        at net.minecraft.server.v1_5_R2.ThreadServerApplication.run(SourceFile:573)
    Caused by: while scanning for the next token
    found character %'%' that cannot start any token
    in "<string>", line 1, column 9:
        onJoin: %player% has joined the server.
                ^
     
        at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:358)
        at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:179)
        at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(ParserImpl.java:591)
        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.composeNode(Composer.java:133)
        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)
        ... 25 more
    2013-04-16 17:02:11 [SEVERE] Cannot load configuration from stream
    org.bukkit.configuration.InvalidConfigurationException: while scanning for the next token
    found character %'%' that cannot start any token
    in "<string>", line 1, column 9:
        onJoin: %player% has joined the server.
                ^
     
        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.adam.custommessage.Events.onPlayerJoin(Events.java:22)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
        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.v1_5_R2.PlayerList.c(PlayerList.java:204)
        at net.minecraft.server.v1_5_R2.PlayerList.a(PlayerList.java:100)
        at net.minecraft.server.v1_5_R2.PendingConnection.d(PendingConnection.java:129)
        at net.minecraft.server.v1_5_R2.PendingConnection.c(PendingConnection.java:44)
        at net.minecraft.server.v1_5_R2.DedicatedServerConnectionThread.a(DedicatedServerConnectionThread.java:41)
        at net.minecraft.server.v1_5_R2.DedicatedServerConnection.b(SourceFile:29)
        at net.minecraft.server.v1_5_R2.MinecraftServer.r(MinecraftServer.java:578)
        at net.minecraft.server.v1_5_R2.DedicatedServer.r(DedicatedServer.java:225)
        at net.minecraft.server.v1_5_R2.MinecraftServer.q(MinecraftServer.java:474)
        at net.minecraft.server.v1_5_R2.MinecraftServer.run(MinecraftServer.java:407)
        at net.minecraft.server.v1_5_R2.ThreadServerApplication.run(SourceFile:573)
    Caused by: while scanning for the next token
    found character %'%' that cannot start any token
    in "<string>", line 1, column 9:
        onJoin: %player% has joined the server.
                ^
     
        at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:358)
        at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:179)
        at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(ParserImpl.java:591)
        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.composeNode(Composer.java:133)
        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)
        ... 24 more
    2013-04-16 17:02:11 [SEVERE] Could not pass event PlayerJoinEvent to customMessage v1.0
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
        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.v1_5_R2.PlayerList.c(PlayerList.java:204)
        at net.minecraft.server.v1_5_R2.PlayerList.a(PlayerList.java:100)
        at net.minecraft.server.v1_5_R2.PendingConnection.d(PendingConnection.java:129)
        at net.minecraft.server.v1_5_R2.PendingConnection.c(PendingConnection.java:44)
        at net.minecraft.server.v1_5_R2.DedicatedServerConnectionThread.a(DedicatedServerConnectionThread.java:41)
        at net.minecraft.server.v1_5_R2.DedicatedServerConnection.b(SourceFile:29)
        at net.minecraft.server.v1_5_R2.MinecraftServer.r(MinecraftServer.java:578)
        at net.minecraft.server.v1_5_R2.DedicatedServer.r(DedicatedServer.java:225)
        at net.minecraft.server.v1_5_R2.MinecraftServer.q(MinecraftServer.java:474)
        at net.minecraft.server.v1_5_R2.MinecraftServer.run(MinecraftServer.java:407)
        at net.minecraft.server.v1_5_R2.ThreadServerApplication.run(SourceFile:573)
    Caused by: java.lang.IllegalArgumentException: Path cannot be null
        at org.apache.commons.lang.Validate.notNull(Validate.java:203)
        at org.bukkit.configuration.MemorySection.getDefault(MemorySection.java:697)
        at org.bukkit.configuration.MemorySection.getString(MemorySection.java:276)
        at com.adam.custommessage.Events.onPlayerJoin(Events.java:25)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
        ... 14 more
    2013-04-16 17:02:19 [INFO] Connection reset
    2013-04-16 17:02:19 [INFO] gamelord327 lost connection: disconnect.quitting
    2013-04-16 17:02:19 [SEVERE] Could not pass event PlayerQuitEvent to customMessage v1.0
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
        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.v1_5_R2.PlayerList.disconnect(PlayerList.java:254)
        at net.minecraft.server.v1_5_R2.PlayerConnection.a(PlayerConnection.java:692)
        at net.minecraft.server.v1_5_R2.NetworkManager.b(NetworkManager.java:297)
        at net.minecraft.server.v1_5_R2.PlayerConnection.d(PlayerConnection.java:110)
        at net.minecraft.server.v1_5_R2.ServerConnection.b(SourceFile:35)
        at net.minecraft.server.v1_5_R2.DedicatedServerConnection.b(SourceFile:30)
        at net.minecraft.server.v1_5_R2.MinecraftServer.r(MinecraftServer.java:578)
        at net.minecraft.server.v1_5_R2.DedicatedServer.r(DedicatedServer.java:225)
        at net.minecraft.server.v1_5_R2.MinecraftServer.q(MinecraftServer.java:474)
        at net.minecraft.server.v1_5_R2.MinecraftServer.run(MinecraftServer.java:407)
        at net.minecraft.server.v1_5_R2.ThreadServerApplication.run(SourceFile:573)
    Caused by: java.lang.IllegalArgumentException: Path cannot be null
        at org.apache.commons.lang.Validate.notNull(Validate.java:203)
        at org.bukkit.configuration.MemorySection.getDefault(MemorySection.java:697)
        at org.bukkit.configuration.MemorySection.getString(MemorySection.java:276)
        at com.adam.custommessage.Events.onPlayerLeave(Events.java:39)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
        ... 14 more
    And if this helps, my Main.java:

    Code:
    import java.util.logging.Logger;
     
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class Main extends JavaPlugin{
        public final Logger logger = Logger.getLogger("Minecraft");
        Events events = new Events(this);
        YAML database;
       
        @Override
        public void onEnable(){
            logger.info("[customMessage] is now enabled and ready to use.");
            this.saveDefaultConfig();
            this.getServer().getPluginManager().registerEvents(events, this);
        }
       
        @Override
        public void onDisable(){
            logger.info("[customMessage] is now diabled and is no longer working.");
        }
    }
    And my Events.java:

    Code:
    import org.bukkit.ChatColor;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
     
    public class Events implements Listener{
       
        public static Main plugin;
       
        public Events(Main instance){
                plugin = instance;
        }
       
        @EventHandler
        public void onPlayerJoin(PlayerJoinEvent e){
            Player p = e.getPlayer();
            FileConfiguration config = plugin.getConfig();
            String message = config.getString("onJoin");
            String pName = p.getName();
            e.setJoinMessage(p.getName() + plugin.getConfig().getString(message));
           
            if(!(message.equals(""))){
                message = message.replaceAll("%player%", pName);
                message = ChatColor.translateAlternateColorCodes('&', message);
            }
        }
     
        @EventHandler
        public void onPlayerLeave(PlayerQuitEvent e){
            Player p = e.getPlayer();
            FileConfiguration config = plugin.getConfig();
            String message = config.getString("onQuit");
            String pName = p.getName();
            e.setQuitMessage(p.getName() + plugin.getConfig().getString(message));
           
            if(!(message.equals(""))){
                message = message.replaceAll("%player%", pName);
                message = ChatColor.translateAlternateColorCodes('&', message);
            }
     
        }
    }
     
  2. if you want to use special characters inside yaml, then place quotes around it
     
  3. Offline

    gamelord327

    I tried to do this in my config.yml but it wont work. how would i do this?

    My config.yml if this helps:

    Code:
    onJoin: "%player%" has joined the server.
    onQuit: "%player%" has left the server.
    Do i maybe need to change something in my Events.java aswell or not???
     
  4. Offline

    ZacTheDead

    I think he's talking about ' not "
     
    Dzikoysk likes this.
  5. Offline

    stuntguy3000

    example:

    onJoin: '%player% is awesome and joined the server!'
     
    Dzikoysk likes this.
  6. Offline

    Spikes

    Dont use replaceAll, use replace

    Edit:
    Code:java
    1. @EventHandler
    2. public void onPlayerJoin(PlayerJoinEvent e){
    3. Player p = e.getPlayer();
    4. FileConfiguration config = plugin.getConfig();
    5. String message = config.getString("onJoin");
    6. String pName = p.getName();
    7. if(!(message.equals(""))){
    8. message = message.replace("%player%", pName);
    9. message = ChatColor.translateAlternateColorCodes('&', message);
    10. }
    11. e.setJoinMessage(p.getName() + plugin.getConfig().getString(message));
    12. }
     
  7. Offline

    gamelord327

    Ok so i did what you and and what Stuntguy3000 and when i join it said gamelord327null in the chat but no error came up in the console. What am i doing wrong here?
     
  8. gamelord327
    Code:
    plugin.getConfig().getString(message)
    I don't think you want to do that... just print the message...
     
  9. Offline

    jacklin213

    just saying why have this
    Code:java
    1. e.setJoinMessage(p.getName() + plugin.getConfig().getString(message));


    when u can just do
    Code:java
    1. e.setJoinMessage(p.getName() + message);
     
  10. Offline

    gamelord327

    Thank you guys so much it now works perfectly!
     
  11. Offline

    jacklin213

    Mark as solved using thread tools at top PlZ :D
     
Thread Status:
Not open for further replies.

Share This Page