Solved Help! Invalid plugin.yml When trying to add a permission

Discussion in 'Plugin Development' started by mkezar, Jul 24, 2015.

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

    mkezar

    Hey guys! I added a permission to my code and added it into the plugin yml. When I loaded the plugin, the stacktrace said I have an invalid plugin.yml. Here is my plugin yml.
    Code:
    name: UppercutStaff
    main: plugins.mkezar.UppercutStaff
    version: 1.0
    description: Punch players!
    commands:
      punch:
         description: Punches players!
    permissions:
      uppercut.punch:
        Gives people access to punch people!
    
         
    Please help!
     
  2. I tried to verify it at www.yamllint.com and it says there are no errors. Could you please post the whole stack trace here?
     
  3. Offline

    Asc_Nicholas

    @mkezar

    Make sure your main matches your package name (packagename.mainclass)
    Also look at line 10 and figure out what problem exists there.
     
  4. Offline

    mkezar

    Here @FisheyLP
    Code:
    [15:32:05 ERROR]: Permission node 'uppercut.punch' in plugin description file for UppercutStaff v1.0 is invalid
    java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Map
            at org.bukkit.permissions.Permission.loadPermissions(Permission.java:232) [craftbukkit-1.8-R0.1-SNAPSHOT.jar:git-Bukkit-1092acb]
            at org.bukkit.plugin.PluginDescriptionFile.getPermissions(PluginDescriptionFile.java:789) [craftbukkit-1.8-R0.1-SNAPSHOT.jar:git-Bukkit-1092acb]
            at org.bukkit.craftbukkit.v1_8_R1.CraftServer.loadPlugin(CraftServer.java:342) [craftbukkit-1.8-R0.1-SNAPSHOT.jar:git-Bukkit-1092acb]
            at org.bukkit.craftbukkit.v1_8_R1.CraftServer.enablePlugins(CraftServer.java:312) [craftbukkit-1.8-R0.1-SNAPSHOT.jar:git-Bukkit-1092acb]
            at org.bukkit.craftbukkit.v1_8_R1.CraftServer.reload(CraftServer.java:723) [craftbukkit-1.8-R0.1-SNAPSHOT.jar:git-Bukkit-1092acb]
            at org.bukkit.Bukkit.reload(Bukkit.java:543) [craftbukkit-1.8-R0.1-SNAPSHOT.jar:git-Bukkit-1092acb]
            at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23) [craftbukkit-1.8-R0.1-SNAPSHOT.jar:git-Bukkit-1092acb]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:140) [craftbukkit-1.8-R0.1-SNAPSHOT.jar:git-Bukkit-1092acb]
            at org.bukkit.craftbukkit.v1_8_R1.CraftServer.dispatchCommand(CraftServer.java:624) [craftbukkit-1.8-R0.1-SNAPSHOT.jar:git-Bukkit-1092acb]
            at org.bukkit.craftbukkit.v1_8_R1.CraftServer.dispatchServerCommand(CraftServer.java:610) [craftbukkit-1.8-R0.1-SNAPSHOT.jar:git-Bukkit-1092acb]
            at net.minecraft.server.v1_8_R1.DedicatedServer.aM(DedicatedServer.java:320) [craftbukkit-1.8-R0.1-SNAPSHOT.jar:git-Bukkit-1092acb]
            at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:285) [craftbukkit-1.8-R0.1-SNAPSHOT.jar:git-Bukkit-1092acb]
            at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:598) [craftbukkit-1.8-R0.1-SNAPSHOT.jar:git-Bukkit-1092acb]
            at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:506) [craftbukkit-1.8-R0.1-SNAPSHOT.jar:git-Bukkit-1092acb]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_31]
     
  5. Offline

    WPM

    @mkezar
    Code:
    permissions:
      uppercut.punch:
      description: Gives people access to punch people!
    Try this.
     
  6. Offline

    mkezar

    Here is my code:
    Code:
    package plugins.mkezar;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class UppercutStaff extends JavaPlugin implements Listener {
       
        public void onEnable() {
             Bukkit.getServer().getPluginManager().registerEvents(this, this);
        }
       
         @Override
            public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
                if(cmd.getName().equalsIgnoreCase("punch")){
                    if(!sender.hasPermission("uppercut.punch")) {
                        sender.sendMessage(ChatColor.RED + "You do not have permission to do that!");
                    }
                    if(args.length == 0){
                        sender.sendMessage(ChatColor.RED + "Usage: /punch <Player>");
                        return true;
    
                    }
                    @SuppressWarnings("deprecation")
                    Player target = Bukkit.getPlayer(args[0]);
                    if(target == null){
                        sender.sendMessage(ChatColor.RED + args[0] + " is not online!");
                        return true;
                    }
                    Bukkit.broadcastMessage(ChatColor.YELLOW + sender.getName() + ChatColor.AQUA + " has punched " + ChatColor.YELLOW + target.getName());
                }
               
                return false;
            }
        
    }
     
  7. Offline

    WPM

    @mkezar
    Code:
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
              if(cmd.getName().equalsIgnoreCase("punch")){
                  if(!sender.hasPermission("uppercut.punch")) {
                      sender.sendMessage(ChatColor.RED + "You do not have permission to do that!");
                       // You forgot to stop the code if they dont have the perm
                      return true;
     
  8. Offline

    mkezar

    I am confused. Am I supposed to add a return? because this is my code.
    Code:
     @Override
            public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
                if(cmd.getName().equalsIgnoreCase("punch")){
                    if(!sender.hasPermission("uppercut.punch")) {
                        sender.sendMessage(ChatColor.RED + "You do not have permission to do that!");
                    }
                    if(args.length == 0){
                        sender.sendMessage(ChatColor.RED + "Usage: /punch <Player>");
                        return true;
    
                    }
                    @SuppressWarnings("deprecation")
                    Player target = Bukkit.getPlayer(args[0]);
                    if(target == null){
                        sender.sendMessage(ChatColor.RED + args[0] + " is not online!");
                        return true;
                    }
                    Bukkit.broadcastMessage(ChatColor.YELLOW + sender.getName() + ChatColor.AQUA + " has punched " + ChatColor.YELLOW + target.getName());
                }
               
                return false;
            }
    and I do end it.
     
  9. Offline

    HeadGam3z

    Code:
    name: UppercutStaff
    main: plugins.mkezar.UppercutStaff
    version: 1.0
    description: Punch players!
    commands:
      punch:
         description: Punches players!
    permissions:
      uppercut.punch:
      Gives people access to punch people!
    you forgot description: on your permission description. supposed to be:
    Code:
    name: UppercutStaff
    main: plugins.mkezar.UppercutStaff
    version: 1.0
    description: Punch players!
    commands:
      punch:
        description: Punches players!
    permissions:
      uppercut.punch:
        description: Gives people access to punch people!
     
  10. Offline

    mkezar

    what a fail. Lol thank you :p
     
  11. Offline

    WPM

    End the code if the sender does not have permission..
     
Thread Status:
Not open for further replies.

Share This Page