Permissions?

Discussion in 'Plugin Development' started by SirMonkeyFood, May 28, 2015.

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

    SirMonkeyFood

    Alright, so, I've been coding this plugin called "Mining Fish" that works as a sell feature from inside of a mine on my prison server. You right click the fish to sell, rather than having to type in the command all the time. As I'm a class 5 noob, and don't feel that I should attempt to hook into the QuickSell Plugin, I'm using Console to send the command to sell with sudo. The plugin needs to automatically detect what rank the user is, which I have a whole lot of permissions set up for in the plugin.yml corresponding to the rank the player is. Starting with Z, the plugin checks for the highest possible rank the player can sell at. However, it doesn't. When I'm troubleshooting, I add in messages at each spot the plugin could go wrong in, but none of them are working. I've done stuff like this before, and referencing that, I still can't figure out what's going on. I'd blame permissions, but I mean, this is the first time I've used them. Here's my code:

    Listener:
    Code:
    package me.SirMonkeyFood.SMMiningFish;
    
    import me.SirMonkeyFood.SMMiningFish.Main;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerInteractEvent;
    
        public class PlayerListener implements Listener{
    
            public PlayerListener(Main plugin) {
                plugin.getServer().getPluginManager().registerEvents(this, plugin);
            }
            public void OnRightClickEvent(PlayerInteractEvent e){
                    Player p = e.getPlayer();
                    p.sendMessage("start");
                    if (p.getItemInHand().getItemMeta().getDisplayName().contains(ChatColor.DARK_RED + "" + ChatColor.BOLD + "Mining Fish")) {
                        p.sendMessage("miningfish");
                        if (p.getItemInHand().getType() == Material.RAW_FISH) {
                    p.sendMessage("fish");
                        if(p.hasPermission("z")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall Z");
                        }else{
                        if(p.hasPermission("y")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall y");
                        }else{
                        if(p.hasPermission("x")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall x");
                        }else{
                        if(p.hasPermission("w")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall w");
                        }else{
                        if(p.hasPermission("v")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall v");
                        }else{
                        if(p.hasPermission("u")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall u");
                        }else{
                        if(p.hasPermission("t")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall t");
                        }else{
                        if(p.hasPermission("s")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall s");
                        }else{
                        if(p.hasPermission("r")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall r");
                        }else{
                        if(p.hasPermission("q")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall q");
                        }else{
                        if(p.hasPermission("p")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall p");
                        }else{
                        if(p.hasPermission("o")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall o");
                        }else{
                        if(p.hasPermission("n")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall n");
                        }else{
                        if(p.hasPermission("m")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall m");
                        }else{
                        if(p.hasPermission("l")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall l");
                        }else{
                        if(p.hasPermission("k")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall k");
                        }else{
                            p.sendMessage("In");
                        if(p.hasPermission("j")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall j");
                        }else{
                        if(p.hasPermission("i")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall i");
                        }else{
                        if(p.hasPermission("h")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall h");
                        }else{
                        if(p.hasPermission("g")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall g");
                        }else{
                        if(p.hasPermission("f")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall f");
                        }else{
                        if(p.hasPermission("e")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall e");
                        }else{
                        if(p.hasPermission("d")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall d");
                        }else{
                        if(p.hasPermission("c")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall c");
                        }else{
                        if(p.hasPermission("b")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall b");
                        }else{
                        if(p.hasPermission("a")){
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "sudo "
                        + p.getName() + " sellall a");
                            p.sendMessage("Done");
                        }}}}}}}}}}}}}}}}}}}}}}}}}}
                    }
                }
            }
        }  
    
    Main:
    Code:
    package me.SirMonkeyFood.SMMiningFish;
    
    import me.SirMonkeyFood.SMMiningFish.PlayerListener;
    
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class Main extends JavaPlugin{
    
        public void onEnable(){
            new PlayerListener(this);
        }
    }
    
    Yml:
    Code:
    name: SMMiningFish
    version: 1.0
    author: SirMonkeyFood
    main: me.SirMonkeyFood.SMMiningFish.Main
    description: I Never Leave Home Without It!
    commands:
    permissions:
        a:
          default: op
        b:
          default: op
        c:
          default: op
        d:
          default: op
        e:
          default: op
        f:
          default: op
        g:
          default: op
        h:
          default: op
        i:
          default: op
        j:
          default: op
        k:
          default: op
        l:
          default: op
        m:
          default: op
        n:
          default: op
        o:
          default: op
        p:
          default: op
        q:
          default: op
        r:
          default: op
        s:
          default: op
        t:
          default: op
        u:
          default: op
        v:
          default: op
        w:
          default: op
        x:
          default: op
        y:
          default: op
        z:
          default: op
    
    Also, If there's a Simpler way of doing this, I'd love to hear it =3 Thanks for any help.
     
    Last edited: May 29, 2015
  2. Offline

    mine-care

    Please follow java naming conventions.
    You have a huge nested if checking for each permision and if the user DOES NOT have it then checks for the next, that can be done with a simple loop :- ) take a look into java loops , arrays, and mabe array lists, they will guide you smoothly to the possible fix :- )
    If you need further help leme know.
     
  3. Offline

    Agentleader1

    Don't name permissions with "a," "b," "c," etc.

    Name it something like:
    Example Permission (open)
    miningfish.sell.a
     
Thread Status:
Not open for further replies.

Share This Page