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 package me.zangoran.kobaltorange.smp; import org.bukkit.Bukkit;import org.bukkit.ChatColor;import org.bukkit.command.Command;import org.bukkit.command.CommandExecutor;import org.bukkit.command.CommandSender;import org.bukkit.craftbukkit.Main;import org.bukkit.entity.Player;import org.bukkit.plugin.java.JavaPlugin; public class SMP extends JavaPlugin implements CommandExecutor { @SuppressWarnings("unused") private static Player player; private Main plugin; public static boolean state = false; public SMP(Main plugin){ this.plugin = plugin; } @Override public void onEnable(){ getLogger().info("onEnable has been enabled!"); } @Override public void onDisable(){ } @SuppressWarnings("null") public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){ Player player = null; if (cmd.getName().equalsIgnoreCase("smp") && sender instanceof Player){ if(!player.hasPermission("smp.toggle")){ player.sendMessage(ChatColor.RED + "You are not allowed to perform this command."); return true; } else if (args.length > 0) { if (args[0].equalsIgnoreCase("on")) { SMP.state = true; for(Player player11 : ((CommandSender) plugin).getServer().getOnlinePlayers()){ if(!player11.hasPermission("smp.bypass")){ player11.kickPlayer("Server is under maintenance!"); player11.sendMessage(ChatColor.RED + "[" + ChatColor.GOLD + "SMP" + ChatColor.RED + "]" + ChatColor.BLUE + " SMP has been turned" + ChatColor.DARK_GREEN + " ON"); return true; } else if (args[0].equalsIgnoreCase("off")) { player11.sendMessage(ChatColor.RED + "[" + ChatColor.GOLD + "SMP" + ChatColor.RED + "]" + ChatColor.BLUE + " SMP has been turned" + ChatColor.RED + " OFF"); return true; } else if (args[0].equalsIgnoreCase("reload")) { if (!(player11 instanceof Player)) { this.reloadConfig(); this.saveConfig(); Bukkit.getLogger().info("[SMP] Config Reloaded! "); return true; } else if (player11.hasPermission("promotion.reload")) { this.reloadConfig(); this.saveConfig(); player11.sendMessage(ChatColor.RED + "[" + ChatColor.GOLD + "SMP" + ChatColor.RED+ "]" + ChatColor.DARK_RED + " Config reloaded!"); System.out.println(ChatColor.RED + "[" + ChatColor.GOLD + "SMP" + ChatColor.RED+ "]" + ChatColor.DARK_RED + " Config reloaded!"); return true; } else { return false; } } else return false; } } else { return true; } } return true; } return false; }} Please help!
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 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.
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 package me.zangoran.kobaltorange.smp; import org.bukkit.Bukkit;import org.bukkit.ChatColor;import org.bukkit.command.Command;import org.bukkit.command.CommandExecutor;import org.bukkit.command.CommandSender;import org.bukkit.craftbukkit.Main;import org.bukkit.entity.Player;import org.bukkit.plugin.java.JavaPlugin; public class SMP extends JavaPlugin implements CommandExecutor { @SuppressWarnings("unused") private static Player player; private Main plugin; public static boolean state = false; public SMP(Main plugin){ this.plugin = plugin; } @Override public void onEnable(){ getLogger().info("onEnable has been enabled!"); } @Override public void onDisable(){ } @SuppressWarnings("null") public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){ Player player = null; if (cmd.getName().equalsIgnoreCase("smp") && sender instanceof Player){ if(!player.hasPermission("smp.toggle")){ player.sendMessage(ChatColor.RED + "You are not allowed to perform this command."); return true; } else if (args.length > 0) { if (args[0].equalsIgnoreCase("on")) { SMP.state = true; for(Player player11 : ((CommandSender) plugin).getServer().getOnlinePlayers()){ if(!player11.hasPermission("smp.bypass")){ player11.kickPlayer("Server is under maintenance!"); player11.sendMessage(ChatColor.RED + "[" + ChatColor.GOLD + "SMP" + ChatColor.RED + "]" + ChatColor.BLUE + " SMP has been turned" + ChatColor.DARK_GREEN + " ON"); return true; } else if (args[0].equalsIgnoreCase("off")) { player11.sendMessage(ChatColor.RED + "[" + ChatColor.GOLD + "SMP" + ChatColor.RED + "]" + ChatColor.BLUE + " SMP has been turned" + ChatColor.RED + " OFF"); return true; } else if (args[0].equalsIgnoreCase("reload")) { if (!(player11 instanceof Player)) { this.reloadConfig(); this.saveConfig(); Bukkit.getLogger().info("[SMP] Config Reloaded! "); return true; } else if (player11.hasPermission("promotion.reload")) { this.reloadConfig(); this.saveConfig(); player11.sendMessage(ChatColor.RED + "[" + ChatColor.GOLD + "SMP" + ChatColor.RED+ "]" + ChatColor.DARK_RED + " Config reloaded!"); System.out.println(ChatColor.RED + "[" + ChatColor.GOLD + "SMP" + ChatColor.RED+ "]" + ChatColor.DARK_RED + " Config reloaded!"); return true; } else { return false; } } else return false; } } else { return true; } } return true; } return false; }} EDIT by Moderator: merged posts, please use the edit button instead of double posting.
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 |
Locked. This topic is now being discussed here: http://forums.bukkit.org/threads/plugin-not-working.274788/