Permissions

Discussion in 'Plugin Development' started by goldenpie6, Sep 20, 2017.

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

    goldenpie6

    Hi! So the problem is that I get the permission in console, but it won't let me use the command. I changed the command to /duck to see if it helps a bit and it didn't. (Its still at /duck). Anyone willing to help out?

    Main:
    Code:
    package me.goldenpie6;
    
    import java.util.ArrayList;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.inventory.InventoryClickEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.plugin.Plugin;
    import org.bukkit.plugin.PluginDescriptionFile;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.RegisteredServiceProvider;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import net.milkbowl.vault.economy.Economy;
    import net.milkbowl.vault.permission.Permission;
    
    public class Main
      extends JavaPlugin
    {
    
      Plugin plugin;
      public static Economy economy = null;
      public static Permission permission = null;
         
      private boolean setupPermissions() {
          RegisteredServiceProvider<Permission> permissionProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.permission.Permission.class);
          if(permissionProvider != null) {
              permission = permissionProvider.getProvider();
          }
          return (permission != null);
      }
     
      private Boolean setupEconomy()
      {
        RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(Economy.class);
        if (economyProvider != null) {
          economy = (Economy)economyProvider.getProvider();
        }
        if (economyProvider != null) {
          return Boolean.valueOf(true);
        }
        return Boolean.valueOf(false);
      }
      private final ClickListener clickListener = new ClickListener(this);
     
      @Override
      public void onEnable()
      {
        PluginManager pm = getServer().getPluginManager();
        pm.registerEvents(clickListener, this);
        getConfig();
        PluginDescriptionFile pdfFile = getDescription();
        getLogger().info("A wild " + pdfFile.getName() + " version " + pdfFile.getVersion() + " appeared!");
        setupEconomy();
        setupPermissions();
        if (getConfig().getString("starting-rank") == null) {
          saveDefaultConfig();
        }
      }
     
    
      public void onDisable()
      {
        saveConfig();
      }
     
      public boolean onCommand(CommandSender sender, Command command, String flag, String[] args)
      {
         
        Player player = (Player) sender;
        if ((sender instanceof Player))
        {
          player = (Player)sender;
        }
        if ((command.getName().equalsIgnoreCase("buycommands")) || (command.getName().equalsIgnoreCase("buyc")) || (command.getName().equalsIgnoreCase("bcommands")))
        {
            Bukkit.broadcastMessage("TEST");
          if ((sender instanceof Player))
          {
            if ((args.length == 0))
            {
               
                ItemStack tpa = new ItemStack(Material.PAPER);
                ItemMeta meta = tpa.getItemMeta();
                meta.setDisplayName(ChatColor.AQUA + "Tpa");
                ArrayList<String> lore = new ArrayList<String>();
                lore.add(ChatColor.GREEN + "Price: " + this.getConfig().getString("prices.tpa"));
                meta.setLore(lore);
                tpa.setItemMeta(meta);
               
                ItemStack withdraw = new ItemStack(Material.PAPER);
                ItemMeta meta2 = withdraw.getItemMeta();
                meta2.setDisplayName(ChatColor.AQUA + "Withdraw");
                ArrayList<String> lore2 = new ArrayList<String>();
                lore2.add(ChatColor.GREEN + "Price: " + this.getConfig().getString("prices.withdraw"));
                meta2.setLore(lore2);
                withdraw.setItemMeta(meta2);
               
                ItemStack balance = new ItemStack(Material.EMERALD);
                ItemMeta meta3 = balance.getItemMeta();
                meta3.setDisplayName(ChatColor.GREEN + "Balance: " + economy.getBalance(player));
                balance.setItemMeta(meta3);
               
                Inventory inv = Bukkit.createInventory(null, 3*9, ChatColor.BLACK + "Commands");
                inv.setItem(10, tpa);
                inv.setItem(11, withdraw);
                inv.setItem(0, balance);
                player.openInventory(inv);
               
                return true;
            }
           
          }
          return false;
        }
        if((command.getName().equalsIgnoreCase("duck") && player.hasPermission("buycommands.command1"))) {
            player.sendMessage("TEST ARG");
            return true;
        } else if((command.getName().equalsIgnoreCase("duck") && !player.hasPermission("buycommands.command1"))) {
            return false;
        }
       
        return true;
      }
       
    }
    
    ClickListener:
    Code:
    package me.goldenpie6;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.inventory.InventoryClickEvent;
    import org.bukkit.plugin.Plugin;
    import org.bukkit.plugin.RegisteredServiceProvider;
    
    import net.milkbowl.vault.permission.Permission;
    
    public class ClickListener implements Listener {
    
        private static Plugin plugin;
    
        @SuppressWarnings("static-access")
        public ClickListener(Plugin plugin)
        {
            this.plugin = plugin;
        }
       
        @EventHandler
        public void Inventory(InventoryClickEvent event) {
            Player player = (Player) event.getWhoClicked();
           
            if((event.getInventory().getTitle().equalsIgnoreCase("Commands")));
    
            if ((event.getSlot() == 10) && (Main.economy.getBalance(player) >= plugin.getConfig().getInt("prices.tpa"))) {
                event.setCancelled(true);
    
                Bukkit.getServer().dispatchCommand(player.getServer().getConsoleSender(), "manuaddp " + player.getName() + " buycommands.command2");
    
            }
               
            else if((event.getSlot() == 11 && (Main.economy.getBalance(player) >= plugin.getConfig().getInt("prices.withdraw")))) {
                event.setCancelled(true);
                Bukkit.getServer().dispatchCommand(player.getServer().getConsoleSender(), "manuaddp " + player.getName() + " buycommands.command1");
                player.sendMessage(ChatColor.GREEN + "You have purchased the withdraw command!");
            }
       
    }
    }
    
     
  2. Offline

    timtower Administrator Administrator Moderator

    @goldenpie6 You are probably getting a ClassCastException when you use it from the console or do you get something else?
     
  3. Offline

    goldenpie6

    @timtower i dont get any errors from console
     
  4. Offline

    timtower Administrator Administrator Moderator

Thread Status:
Not open for further replies.

Share This Page