plugin.yml help

Discussion in 'Plugin Development' started by Zangoran, May 29, 2014.

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

    Zangoran

    Here is my crash report
    [19:28:43 ERROR]: Could not load 'plugins\SMP.jar' in folder 'plugins'

    org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml
    at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPluginLoader.java:160) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-
    Bukkit-1.7.9-R0.1-2-g1e4dcde-b3086jnks]
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:133) [craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.
    7.9-R0.1-2-g1e4dcde-b3086jnks]
    at org.bukkit.craftbukkit.v1_7_R3.CraftServer.loadPlugins(CraftServer.java:355) [craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9
    -R0.1-2-g1e4dcde-b3086jnks]
    at org.bukkit.craftbukkit.v1_7_R3.CraftServer.<init>(CraftServer.java:317) [craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-R0.1
    -2-g1e4dcde-b3086jnks]
    at net.minecraft.server.v1_7_R3.PlayerList.<init>(PlayerList.java:68) [craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-R0.1-2-g1
    e4dcde-b3086jnks]
    at net.minecraft.server.v1_7_R3.DedicatedPlayerList.<init>(SourceFile:14) [craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-R0.1-
    2-g1e4dcde-b3086jnks]
    at net.minecraft.server.v1_7_R3.DedicatedServer.init(DedicatedServer.java:126) [craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-
    R0.1-2-g1e4dcde-b3086jnks]
    at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:436) [craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-R
    0.1-2-g1e4dcde-b3086jnks]
    at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628) [craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-R0.
    1-2-g1e4dcde-b3086jnks]
    Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning an anchor; expected alphabetic or numeric character, but found &(38)
    at org.yaml.snakeyaml.scanner.ScannerImpl.scanAnchor(ScannerImpl.java:1169) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-R0
    .1-2-g1e4dcde-b3086jnks]
    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchAnchor(ScannerImpl.java:782) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-R0
    .1-2-g1e4dcde-b3086jnks]
    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:315) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.
    9-R0.1-2-g1e4dcde-b3086jnks]
    at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:179) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-R0.
    1-2-g1e4dcde-b3086jnks]
    at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(ParserImpl.java:591) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git
    -Bukkit-1.7.9-R0.1-2-g1e4dcde-b3086jnks]
    at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:161) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-R0.1-2-
    g1e4dcde-b3086jnks]
    at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:146) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-R0.1-2
    -g1e4dcde-b3086jnks]
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:133) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-R0.1-2-
    g1e4dcde-b3086jnks]
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:237) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-
    R0.1-2-g1e4dcde-b3086jnks]
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-R0.1-2-
    g1e4dcde-b3086jnks]
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:237) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-
    R0.1-2-g1e4dcde-b3086jnks]
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-R0.1-2-
    g1e4dcde-b3086jnks]
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:237) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-
    R0.1-2-g1e4dcde-b3086jnks]
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-R0.1-2-
    g1e4dcde-b3086jnks]
    at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:123) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-R0.
    1-2-g1e4dcde-b3086jnks]
    at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:106) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-R0.1-
    2-g1e4dcde-b3086jnks]
    at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:121) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-B
    ukkit-1.7.9-R0.1-2-g1e4dcde-b3086jnks]
    at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:480) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-R0.1-2-g1e4dcde-b3086
    jnks]
    at org.yaml.snakeyaml.Yaml.load(Yaml.java:411) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.7.9-R0.1-2-g1e4dcde-b3086jnks]
    at org.bukkit.plugin.PluginDescriptionFile.<init>(PluginDescriptionFile.java:232) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-Bukkit-1.
    7.9-R0.1-2-g1e4dcde-b3086jnks]
    at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPluginLoader.java:155) ~[craftbukkit-1.7.9-R0.2-20140520.082451-2.jar:git-
    Bukkit-1.7.9-R0.1-2-g1e4dcde-b3086jnks]
    ... 8 more



    Here is my plugin.yml


    name: SMP
    main: me.zangoran.kobaltorange.smp.SMP
    version: 1.0
    author: Zangoran

    commands:
    smp:
    description: Kicks everyplayer when they join unless they have the smp.bypass permission!
    usage: Error! Perhaps you meant /smp <command>
    permission-message: &kI&4[&6SMP&4]&2You do not have &6permission &4to do this! &c(&d<permission>&c)&kI

    permissions:
    smp.*:
    description: Gives access to all commands
    children:
    smp.toggle: true
    smp.bypass: true
    smp.kickmsg: true
    smp.toggle:
    description: Allows you to toggle /smp on|off|status|reload
    default: op
    smp.bypass
    description: Allows you to not be kicked when smp is active
    default: op




    Here is my code for the plugin

    Code:java
    1. package me.zangoran.kobaltorange.smp;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.ChatColor;
    5. import org.bukkit.command.Command;
    6. import org.bukkit.command.CommandExecutor;
    7. import org.bukkit.command.CommandSender;
    8. import org.bukkit.craftbukkit.Main;
    9. import org.bukkit.entity.Player;
    10. import org.bukkit.plugin.java.JavaPlugin;
    11.  
    12. public class SMP extends JavaPlugin implements CommandExecutor {
    13. @SuppressWarnings("unused")
    14. private static Player player;
    15. private Main plugin;
    16. public static boolean state = false;
    17.  
    18. public SMP(Main plugin){
    19. this.plugin = plugin;
    20.  
    21. }
    22.  
    23. @Override
    24. public void onEnable(){
    25. getLogger().info("onEnable has been enabled!");
    26. }
    27. @Override
    28. public void onDisable(){
    29.  
    30. }
    31. @SuppressWarnings("null")
    32. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
    33. Player player = null;
    34. if (cmd.getName().equalsIgnoreCase("smp") && sender instanceof Player){
    35.  
    36. if(!player.hasPermission("smp.toggle")){
    37. player.sendMessage(ChatColor.RED + "You are not allowed to perform this command.");
    38. return true;
    39. }
    40.  
    41.  
    42. else if (args.length > 0)
    43. {
    44. if (args[0].equalsIgnoreCase("on"))
    45. {
    46. SMP.state = true;
    47. for(Player player11 : ((CommandSender) plugin).getServer().getOnlinePlayers()){
    48. if(!player11.hasPermission("smp.bypass")){
    49. player11.kickPlayer("Server is under maintenance!");
    50. player11.sendMessage(ChatColor.RED + "[" + ChatColor.GOLD + "SMP" + ChatColor.RED + "]" + ChatColor.BLUE + " SMP has been turned" + ChatColor.DARK_GREEN + " ON");
    51. return true;
    52. }
    53. else if (args[0].equalsIgnoreCase("off"))
    54. {
    55. player11.sendMessage(ChatColor.RED + "[" + ChatColor.GOLD + "SMP" + ChatColor.RED + "]" + ChatColor.BLUE + " SMP has been turned" + ChatColor.RED + " OFF");
    56. return true;
    57. }
    58. else if (args[0].equalsIgnoreCase("reload"))
    59. {
    60. if (!(player11 instanceof Player)) {
    61.  
    62. this.reloadConfig();
    63. this.saveConfig();
    64. Bukkit.getLogger().info("[SMP] Config Reloaded! ");
    65.  
    66. return true;
    67. } else if (player11.hasPermission("promotion.reload")) {
    68.  
    69. this.reloadConfig();
    70. this.saveConfig();
    71. player11.sendMessage(ChatColor.RED + "[" + ChatColor.GOLD + "SMP" + ChatColor.RED+ "]" + ChatColor.DARK_RED + " Config reloaded!");
    72. System.out.println(ChatColor.RED + "[" + ChatColor.GOLD + "SMP" + ChatColor.RED+ "]" + ChatColor.DARK_RED + " Config reloaded!");
    73. return true;
    74.  
    75. } else {
    76. return false;
    77.  
    78. }
    79. }
    80. else return false;
    81. }
    82. }
    83. else
    84. {
    85.  
    86. return true;
    87. }
    88. }
    89.  
    90. return true;
    91.  
    92. }
    93. return false;
    94. }
    95. }
    96.  



    Please help!
     
  2. Offline

    fireblast709

    Zangoran next time, for the love of god pastbin the error, wrap your config in [code ][/code ], and as the actual answer, wrap the strings in the .yml in '' or ""
     
    justin_393 likes this.
  3. Offline

    justin_393

    We can't help you unless we can see your spacing in the plugin.yml
     
  4. Offline

    AoH_Ruthless

    justin_393
    Actually, we can help him. Looking at the full stacktrace:

    Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning an anchor; expected alphabetic or numeric character, but found &(38)

    Zangoran
    As mentioned by fireblast709, you are trying to put in & symbols without properly recognizing the description as a string value. You must enclose your description string in ' ' if you decide to use symbols that are not alphanumeric.
     
    es359 likes this.
  5. Offline

    Zangoran

    AoH_Ruthless Thank you so much, now I can finish my school project!

    Ok I am still having problems here is the crash report: http://pastebin.com/YFMSzgR7
    Here is my plugin.yml:
    Code:
    name: SMP
    main: me.zangoran.kobaltorange.smp.SMP
    version: 1.0
    author: Zangoran
     
    commands:
      smp:
        description: Kicks everyplayer when they join unless they have the smp.bypass permission!
        usage: "Error! Perhaps you meant /smp <command>"
        permission-message: "&kI&4[&6SMP&4]&2You do not have &6permission &4to do this! &c(&d<permission>&c)&kI"
     
    permissions:
      smp.*:
        description: Gives access to all commands
        children:
          smp.toggle: true
          smp.bypass: true
          smp.kickmsg: true
      smp.toggle:
        description: Allows you to toggle /smp on|off|status|reload
        default: op
      smp.bypass
        description: Allows you to not be kicked when smp is active
        default: op
    Here is my code:
    Code:java
    1. package me.zangoran.kobaltorange.smp;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.ChatColor;
    5. import org.bukkit.command.Command;
    6. import org.bukkit.command.CommandExecutor;
    7. import org.bukkit.command.CommandSender;
    8. import org.bukkit.craftbukkit.Main;
    9. import org.bukkit.entity.Player;
    10. import org.bukkit.plugin.java.JavaPlugin;
    11.  
    12. public class SMP extends JavaPlugin implements CommandExecutor {
    13. @SuppressWarnings("unused")
    14. private static Player player;
    15. private Main plugin;
    16. public static boolean state = false;
    17.  
    18. public SMP(Main plugin){
    19. this.plugin = plugin;
    20.  
    21. }
    22.  
    23. @Override
    24. public void onEnable(){
    25. getLogger().info("onEnable has been enabled!");
    26. }
    27. @Override
    28. public void onDisable(){
    29.  
    30. }
    31. @SuppressWarnings("null")
    32. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
    33. Player player = null;
    34. if (cmd.getName().equalsIgnoreCase("smp") && sender instanceof Player){
    35.  
    36. if(!player.hasPermission("smp.toggle")){
    37. player.sendMessage(ChatColor.RED + "You are not allowed to perform this command.");
    38. return true;
    39. }
    40.  
    41.  
    42. else if (args.length > 0)
    43. {
    44. if (args[0].equalsIgnoreCase("on"))
    45. {
    46. SMP.state = true;
    47. for(Player player11 : ((CommandSender) plugin).getServer().getOnlinePlayers()){
    48. if(!player11.hasPermission("smp.bypass")){
    49. player11.kickPlayer("Server is under maintenance!");
    50. player11.sendMessage(ChatColor.RED + "[" + ChatColor.GOLD + "SMP" + ChatColor.RED + "]" + ChatColor.BLUE + " SMP has been turned" + ChatColor.DARK_GREEN + " ON");
    51. return true;
    52. }
    53. else if (args[0].equalsIgnoreCase("off"))
    54. {
    55. player11.sendMessage(ChatColor.RED + "[" + ChatColor.GOLD + "SMP" + ChatColor.RED + "]" + ChatColor.BLUE + " SMP has been turned" + ChatColor.RED + " OFF");
    56. return true;
    57. }
    58. else if (args[0].equalsIgnoreCase("reload"))
    59. {
    60. if (!(player11 instanceof Player)) {
    61.  
    62. this.reloadConfig();
    63. this.saveConfig();
    64. Bukkit.getLogger().info("[SMP] Config Reloaded! ");
    65.  
    66. return true;
    67. } else if (player11.hasPermission("promotion.reload")) {
    68.  
    69. this.reloadConfig();
    70. this.saveConfig();
    71. player11.sendMessage(ChatColor.RED + "[" + ChatColor.GOLD + "SMP" + ChatColor.RED+ "]" + ChatColor.DARK_RED + " Config reloaded!");
    72. System.out.println(ChatColor.RED + "[" + ChatColor.GOLD + "SMP" + ChatColor.RED+ "]" + ChatColor.DARK_RED + " Config reloaded!");
    73. return true;
    74.  
    75. } else {
    76. return false;
    77.  
    78. }
    79. }
    80. else return false;
    81. }
    82. }
    83. else
    84. {
    85.  
    86. return true;
    87. }
    88. }
    89.  
    90. return true;
    91.  
    92. }
    93. return false;
    94. }
    95. }
    96.  


    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jul 1, 2016
  6. Offline

    AoH_Ruthless

    Zangoran
    Like I told you, strings need to be enclosed in quotes if containing non-alphanumeric keys. In your command description /smp toggle (plugin.yml) you have ||| but no quotes. Fix that. Learn to read your own stacktraces, as you would have seen this error.

    However, it is mildly strange. It says the invalid key is ":"; there is no colon in the plugin.yml you posted which leads to one of two conclusions: You aren't posting the full plugin.yml or : represents another character, most likely |
     
  7. Offline

    JaguarJo

Thread Status:
Not open for further replies.

Share This Page