Solved Player Interact Event

Discussion in 'Plugin Development' started by pingpong1999, Apr 14, 2016.

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

    pingpong1999

    Code:
    package PLMC;
    
    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.configuration.file.FileConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.permissions.Permission;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class EnchantP extends JavaPlugin implements Listener {
        public Permission playerPermission = new Permission("Enchants.Admin");
    
        @Override
        public void onEnable(){
            PluginManager pm = getServer().getPluginManager();
            pm.addPermission(playerPermission);
        }
    
        @Override
        public void onDisable(){
            saveConfig();
        }
    
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
    
        
            Player player = (Player) sender;
            int length = args.length;
                
            FileConfiguration config = this.getConfig();
        
            int tokens = 0;
            String path = "tokens." + player.getName().toLowerCase();
        
            if (config.contains(path)){
                tokens = config.getInt(path);
            }
        
        
            if (cmd.getName().equalsIgnoreCase("et") && sender instanceof Player && args.length == 0){
                int total = config.getInt("tokens." + player.getName().toLowerCase());
                player.sendMessage(ChatColor.DARK_GRAY + "(" + ChatColor.GOLD + "Palm" + ChatColor.YELLOW + "life" + ChatColor.GOLD + "MC" + ChatColor.DARK_GRAY + ") " + ChatColor.GRAY + "You have " + ChatColor.DARK_GRAY + ChatColor.BOLD +  total + ChatColor.GRAY + " E-Tokens!");
                return true;
                }else if (args.length == 3 && args[0].equalsIgnoreCase("give") && sender instanceof Player){
                if(player.hasPermission("Enchants.Admin")){
                if (length == 3) {
                    for (Player playerToGiveToken : Bukkit.getServer().getOnlinePlayers()){
                        if(playerToGiveToken.getName().equalsIgnoreCase(args[1])){
                            String pathe = "tokens." + playerToGiveToken.getName().toLowerCase();
                            config.set(pathe, tokens + Integer.parseInt(args[2]));
                            playerToGiveToken.sendMessage(ChatColor.GOLD + player.getName() + " has given you " + ChatColor.GRAY + args[2] + ChatColor.GOLD + " Tokens!");
                            player.sendMessage(ChatColor.GOLD + "You have given " + playerToGiveToken.getName() + ChatColor.GRAY + args[2] + ChatColor.GOLD + " Tokens!");
                        }
                    }
                }    
            } else {
                player.sendMessage(ChatColor.RED + "You do not have any permission to do this!");
            }
            return true;
        }else if (args.length == 1 && args[0].equalsIgnoreCase("help") && sender instanceof Player){
                    if (length == 1){
                        player.sendMessage(ChatColor.GRAY + "/et :" + ChatColor.GOLD + " To Check your eToken Balance");
                        player.sendMessage(ChatColor.GOLD + "Aliases: " + ChatColor.GRAY + "/et bal, /et balance");
                        if(player.hasPermission("Enchants.Admin")){
                        player.sendMessage(" ");
                        player.sendMessage(ChatColor.GRAY + "Admin Commands");
                        player.sendMessage(ChatColor.GRAY + "/et give (player) (amount) :" + ChatColor.GOLD + " Give Player eTokens");
                        player.sendMessage(ChatColor.GRAY + "/et find (player) :" + ChatColor.GOLD + " Find a Player's amount of eTokens");
                        player.sendMessage(ChatColor.GRAY + "/et console send (player) (amount):" + ChatColor.GOLD + " Console based give command");
                        player.sendMessage(ChatColor.GRAY + "/et set (player) (amount):" + ChatColor.GOLD + " Set a Player's eToken Balance");
                        player.sendMessage(ChatColor.GRAY + "/et reset (player):" + ChatColor.GOLD + " Reset a Player's eTokens");
                        }
                    }
        }else if (args.length == 2 && args[0].equalsIgnoreCase("find") && sender instanceof Player){
            if(player.hasPermission("Enchants.Admin")){
            for (Player playerToSeeToken : Bukkit.getServer().getOnlinePlayers()){
                if(playerToSeeToken.getName().equalsIgnoreCase(args[1])){
        
            int totale = config.getInt("tokens." + playerToSeeToken.getName().toLowerCase());
            player.sendMessage(ChatColor.GRAY + playerToSeeToken.getName() + ChatColor.GREEN + " has " + ChatColor.GRAY + totale + ChatColor.GREEN + " Tokens");
                    }else player.sendMessage(ChatColor.RED + "That player is not online or is not valid!");
                }
            }
        }else if (args.length == 4 && args[0].equalsIgnoreCase("Console")){
            if (args.length == 4 && args[1].equalsIgnoreCase("send")){
                if(player.hasPermission("Enchants.Admin")){
                    for (Player playerToCToken : Bukkit.getServer().getOnlinePlayers()){
                        if(playerToCToken.getName().equalsIgnoreCase(args[2])){
                            String pathc = "tokens." + playerToCToken.getName().toLowerCase();
                            config.set(pathc, tokens + Integer.parseInt(args[3]));
                            playerToCToken.sendMessage( ChatColor.DARK_GRAY + "(" + ChatColor.GOLD + "Palm" + ChatColor.YELLOW + "life" + ChatColor.GOLD + "MC" + ChatColor.DARK_GRAY + ") " + ChatColor.GRAY + "You have been awarded with " + ChatColor.DARK_GRAY + ChatColor.BOLD + args[3] + ChatColor.GRAY + " E-Token(s), Congratulations!" );
                    }
                }
            }
        }
        
    }else if (args.length == 2 && args[0].equalsIgnoreCase("reset")){
        for (Player playerToReset : Bukkit.getServer().getOnlinePlayers()){
            if(playerToReset.getName().equalsIgnoreCase(args[1])){
                if(player.hasPermission("Enchants.Admin")){
                String pathd = "tokens." + playerToReset.getName().toLowerCase();
                config.set(pathd, tokens - tokens);
                player.sendMessage( ChatColor.RED + "Reset " + playerToReset.getName() + "'s Tokens");
                playerToReset.sendMessage( ChatColor.RED + player.getName() + " Reset your Tokens" );
                    }
                }
            }
        }else if (args.length == 3 && args[0].equalsIgnoreCase("set")){
            for (Player playerToSet : Bukkit.getServer().getOnlinePlayers()){
                if(playerToSet.getName().equalsIgnoreCase(args[1])){
                    if(player.hasPermission("Enchants.Admin")){
                    String pathe = "tokens." + playerToSet.getName().toLowerCase();
                    config.set(pathe, tokens = Integer.parseInt(args[2]));
                    player.sendMessage(ChatColor.RED + "Set " + playerToSet.getName() + "'s Tokens to " + ChatColor.GRAY + args[2]);
                    playerToSet.sendMessage(ChatColor.RED + player.getName() + " set your Tokens to " + ChatColor.GRAY + args[2]);
                    }
                }
            }
        }else if (args.length == 1 && args[0].equalsIgnoreCase("balance")){
            int totalbal = config.getInt("tokens." + player.getName().toLowerCase());
            player.sendMessage(ChatColor.DARK_GRAY + "(" + ChatColor.GOLD + "Palm" + ChatColor.YELLOW + "life" + ChatColor.GOLD + "MC" + ChatColor.DARK_GRAY + ") " + ChatColor.GRAY + "You have " + ChatColor.DARK_GRAY + ChatColor.BOLD +  totalbal + ChatColor.GRAY + " E-Tokens!");
            return true;
        }else if (args.length == 1 && args[0].equalsIgnoreCase("bal")){
            int totalb = config.getInt("tokens." + player.getName().toLowerCase());
            player.sendMessage(ChatColor.DARK_GRAY + "(" + ChatColor.GOLD + "Palm" + ChatColor.YELLOW + "life" + ChatColor.GOLD + "MC" + ChatColor.DARK_GRAY + ") " + ChatColor.GRAY + "You have " + ChatColor.DARK_GRAY + ChatColor.BOLD +  totalb + ChatColor.GRAY + " E-Tokens!");
            return true;
        }
    return false;
    
    
        }
    @EventHandler
    public void EToke(PlayerInteractEvent e){
        Player p = e.getPlayer();
        FileConfiguration config = this.getConfig();
        p.sendMessage("testa");
        if(p.getItemInHand().equals(Material.MAGMA_CREAM)){
            String pathz = ("tokens. " + p.getName().toLowerCase());
                    int tokens = 0;
                    String path = "tokens." + p.getName().toLowerCase();
                    if (config.contains(path)){
                        tokens = config.getInt(path);
                    }
                
            config.set(pathz, tokens = tokens + 1);
            p.sendMessage("testb");
        }
    }
    
    } [
    I do not know why, But the bottom Event does not register.. That is al li can really explain
    Edit: This is all the code in the plugin, please do not take
     
  2. Offline

    mine-care

    You never register your events :p Thats why.

    Also few other notes:

    Don't blind-cast

    You already checked in your outer if' for the argument length,
    Also don't abuse boolean operators... i see you check if the sender is a player in every if condition, how about:
    Code:
    if(sender is player){
       Player p  = cast to player.
     if(command)
     else if (other command)
    }
    
    follow naming conventions!
     
  3. Offline

    pingpong1999

    Thanks! wow I missed something so simple...;p
     
  4. Offline

    mine-care

    @pingpong1999 Hehe, don't worry. The most frequent mistakes are the simple ones ;)

    Please mark the thread "Solved".
     
Thread Status:
Not open for further replies.

Share This Page