permissions on and off

Discussion in 'Plugin Development' started by NoLife, Apr 8, 2015.

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

    NoLife

    This is no big deal, but i was just wondeing why it not working, i have in my config file set so you can set permissions to true or false. But it will not work. The line i think is wrong is this
    Line:53
    Code:
    if (p.hasPermission("IE.switch") || !(plugin.getConfig().getBoolean("ItemSwitcher.Permissions"))) {
    The rest of the code:

    Main:
    Code:
    package io.github.Waterman2707.ItemSwitcher;
    
    import java.util.HashMap;
    
    import io.github.Waterman2707.ItemSwitcher.ItemSwitcherCommandExecutor;
    
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class Main extends JavaPlugin{
    
        @Override
        public void onEnable() {
            this.getCommand("switch").setExecutor(new ItemSwitcherCommandExecutor(this));
            final FileConfiguration config = this.getConfig();
            this.getConfig().options().copyDefaults(true);
            config.addDefault("ItemSwitcher.Permissions", true);
            this.saveConfig();
        }
    }
    
    CommandExecutor:
    Code:
    package io.github.Waterman2707.ItemSwitcher;
    
    import java.util.HashMap;
    
    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.entity.Player;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class ItemSwitcherCommandExecutor implements CommandExecutor{
       
        private final Main plugin;
       
        public ItemSwitcherCommandExecutor(Main plugin) {
            this.plugin = plugin;
        }
       
        private HashMap<String , ItemStack[]> armor1 = new HashMap<String , ItemStack[]>();
        private HashMap<String , ItemStack[]> armor2 = new HashMap<String , ItemStack[]>();
        private HashMap<String , ItemStack[]> inv1 = new HashMap<String , ItemStack[]>();
        private HashMap<String , ItemStack[]> inv2 = new HashMap<String , ItemStack[]>();
       
        public HashMap<String, ItemStack[]> getArmor1() {
            return armor1;
        }
    
        public HashMap<String, ItemStack[]> getArmor2() {
            return armor2;
        }
    
        public HashMap<String, ItemStack[]> getInv1() {
            return inv1;
        }
    
        public HashMap<String, ItemStack[]> getInv2() {
            return inv2;
        }
    
        public boolean onCommand(CommandSender sender, Command cmd,
                String label, String[] args) {
            if (!(sender instanceof Player)) {
                return false;
            }
           
            Player p = (Player) sender;
            String pn = p.getName();
           
            if (cmd.getName().equalsIgnoreCase("switch")){
                if (p.hasPermission("IE.switch") || !(plugin.getConfig().getBoolean("ItemSwitcher.Permissions"))) {
                if (args.length == 0) {
                    if(armor1.containsKey(pn)) {
                        armor2.put(pn, p.getInventory().getArmorContents());
                        inv2.put(pn, p.getInventory().getContents());
                        p.getInventory().clear();
                        p.getInventory().setArmorContents(armor1.get(pn));
                        p.getInventory().setContents(inv1.get(pn));
                        armor1.remove(pn);
                        inv1.remove(pn);
                        p.sendMessage(ChatColor.AQUA + "[ItemSwitcher] " + ChatColor.RED + "Your item has switced");
                        return true;
                    } else if (armor2.containsKey(pn)) {
                        armor1.put(pn, p.getInventory().getArmorContents());
                        inv1.put(pn, p.getInventory().getContents());
                        p.getInventory().clear();
                        p.getInventory().setArmorContents(armor2.get(pn));
                        p.getInventory().setContents(inv2.get(pn));
                        armor2.remove(pn);
                        inv2.remove(pn);
                        p.sendMessage(ChatColor.AQUA + "[ItemSwitcher] " + ChatColor.RED + "Your item has switced");
                        return true;
                    } else {
                        armor1.put(pn, p.getInventory().getArmorContents());
                        inv1.put(pn, p.getInventory().getContents());
                        p.getInventory().clear();
                        p.sendMessage(ChatColor.AQUA + "[ItemSwitcher] " + ChatColor.RED + "Your item has switced");
                        return true;
                    }
                   
                   
                } else return false;
            } else return false;
            }
            return true;
        }
    
    }
    
     
  2. Offline

    WesJD

    Use && instead of ||.
     
  3. Offline

    NoLife

    @WesJD But && is AND but i want OR
     
  4. Offline

    WesJD

    My mistake. Check if they have turned on permissions. If so, check their permission, otherwise continue.
     
Thread Status:
Not open for further replies.

Share This Page