Solved command break on reload?

Discussion in 'Plugin Development' started by guitargun, Feb 25, 2015.

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

    guitargun

    in my plugin there is a section where you can have a party. the party etc works but after any reload the commands for the party are bugging.
    I did some debugging. the hashmaps in the party class are being filled.
    after any reload only the /party info and the /party leave work. you can create another party which shouldn't happen since you are already in 1.
    it seems like the whole connection between the loaded part and the commands is failing somehow but I don't know why.

    before you say check your {} they are already triple checked. I can use the commands when I do /party leave then /party create as if nothing happened.


    the party of the party commands:
    Code:
    if(cmd.getName().equalsIgnoreCase("party")){
    
                if(args.length >= 1 && args.length <= 2 ){
                if((args[0].equalsIgnoreCase("create") || args[0].equalsIgnoreCase("kick") || args[0].equalsIgnoreCase("invite") || args[0].equalsIgnoreCase("setleader")) && args.length == 1){
                    player.sendMessage(ChatColor.DARK_PURPLE + "[" + ChatColor.GOLD + "YParty" + ChatColor.DARK_PURPLE + "] Please use /party " + args[0] + " <name>.");
                    return true;
                }
                    if(args[0].equalsIgnoreCase("create")){
                        party.createParty(player.getUniqueId(), args[1], player);
                    }else
                    if(args[0].equalsIgnoreCase("kick")){
                        if(party.Partymembers.get(player.getUniqueId()) != null){
                        if(party.Partyleaders.get(party.Partymembers.get(player.getUniqueId())) == player.getUniqueId() && !player.getName().equalsIgnoreCase(args[1])){
                            Set<UUID> k = party.Partyswithmembers.get(party.Partymembers.get(player.getUniqueId())); //retrieving the members from the party name
                                for(UUID f : k){
                                    Player member = Bukkit.getPlayer(args[1]);
                                    if(member != null){
                                    if(f == member.getUniqueId()){
                                        party.kickmember(party.Partymembers.get(player.getUniqueId()), member.getUniqueId());
                                        String leader = fw.utilitiesconfig.getString("Partykick.leader");
                                        leader = leader.replace("%member%", member.getName());
                                    
                                        String victim = fw.utilitiesconfig.getString("Partykick.member");
                                        player.sendMessage(ChatColor.DARK_PURPLE + "[" + ChatColor.GOLD + "YParty" + ChatColor.DARK_PURPLE + "] " + leader);
                                        member.sendMessage(ChatColor.DARK_PURPLE + "[" + ChatColor.GOLD + "YParty" + ChatColor.DARK_PURPLE + "] " + victim);
                                    }
                                    }else{
                                        @SuppressWarnings("deprecation")
                                        OfflinePlayer m = (OfflinePlayer) Bukkit.getOfflinePlayer(args[1]);
                                        if(m.getUniqueId() == f){
                                            party.kickmember(party.Partymembers.get(player.getUniqueId()), m.getUniqueId());
                                            String leader = fw.utilitiesconfig.getString("Partykick.leader");
                                            leader = leader.replace("%member%", m.getName());
                                        
                                            player.sendMessage(ChatColor.DARK_PURPLE + "[" + ChatColor.GOLD + "YParty" + ChatColor.DARK_PURPLE + "] " + leader);
                                        }
                                    }
                            }
                        }else{
                            player.sendMessage(ChatColor.DARK_PURPLE + "[" + ChatColor.GOLD + "YParty" + ChatColor.DARK_PURPLE + "] " + fw.utilitiesconfig.getString("Partykick.himself"));
    
                        }
                    }
                    }else if(args[0].equalsIgnoreCase("setleader")){
                        if(party.Partymembers.get(player.getUniqueId()) != null){
                            if(party.Partyleaders.get(party.Partymembers.get(player.getUniqueId())) == player.getUniqueId()){
                                Player newleader = Bukkit.getPlayer(args[1]);
                                if(newleader != null){
                                    if(party.Partymembers.get(newleader.getUniqueId()) != null){
                                        if(party.Partymembers.get(newleader.getUniqueId()).equals(party.Partymembers.get(player.getUniqueId()))){
                                            party.Partyleaders.put(party.Partymembers.get(player.getUniqueId()), newleader.getUniqueId());
                                        }else{
                                            player.sendMessage(ChatColor.DARK_PURPLE + "[" + ChatColor.GOLD + "YParty" + ChatColor.DARK_PURPLE + "] " + fw.utilitiesconfig.getString("newpartyleader.notinparty"));
                                        }
                                    }else{
                                        player.sendMessage(ChatColor.DARK_PURPLE + "[" + ChatColor.GOLD + "YParty" + ChatColor.DARK_PURPLE + "] " + fw.utilitiesconfig.getString("newpartyleader.wrongparty"));
                                    }
                                }else{
                                    player.sendMessage(ChatColor.DARK_PURPLE + "[" + ChatColor.GOLD + "YParty" + ChatColor.DARK_PURPLE + "] " + fw.utilitiesconfig.getString("newpartyleader.notfound"));
                                }
                            }
                        }
                    }else
                    if(args[0].equalsIgnoreCase("invite")){
                        if(party.Partymembers.get(player.getUniqueId()) != null){
                            if(party.Partyleaders.get(party.Partymembers.get(player.getUniqueId())) == player.getUniqueId()){
                                    Player t = Bukkit.getPlayer(args[1]);
                                    if(t!= null){
                                    String message = fw.utilitiesconfig.getString("Partyinvite.leader");
                                    message = message.replace("%player%", t.getName());
                                    message = message.replace("%partyname%", party.Partymembers.get(player.getUniqueId()));
                                    player.sendMessage(ChatColor.DARK_PURPLE + "[" + ChatColor.GOLD + "YParty" + ChatColor.DARK_PURPLE + "] " + message);
                                    party.inviteplayer(t, party.Partymembers.get(player.getUniqueId()), player.getName());
                                    }
                            }
                        }
                    }else
                    if(args[0].equalsIgnoreCase("accept")){
                        if(party.invites.get(player.getUniqueId()) != null){
                            party.addmember(party.invites.get(player.getUniqueId()), player.getUniqueId());
                            return true;
                        }else{
                            player.sendMessage(fw.utilitiesconfig.getString("Partyinvite.no-open"));
                            return true;
                        }
                    }else if(args[0].equalsIgnoreCase("info")){
                        if(args.length == 1){
                            if(party.Partymembers.get(player.getUniqueId()) != null){
                                party.partyinfo(party.Partymembers.get(player.getUniqueId()), player);
                            }else{
                                player.sendMessage(ChatColor.DARK_PURPLE + "[" + ChatColor.GOLD + "YParty" + ChatColor.DARK_PURPLE + "] " + "You must be in a party to use this command, or use it as /party info <partyname>.");
                            }
                        }else{
                            if(party.Partyswithmembers.get(args[1]) != null){
                                party.partyinfo(args[1], player);
                            }else{
                                player.sendMessage(ChatColor.DARK_PURPLE + "[" + ChatColor.GOLD + "YParty" + ChatColor.DARK_PURPLE + "] " + "This party doesn't exists.");
                            }
                        }
                    }else
                    if(args[0].equalsIgnoreCase("chat")){
                        if(party.Partymembers.get(player.getUniqueId()) != null){
                            if(party.Partychat.contains(player.getUniqueId())){
                            party.Partychat.remove(player.getUniqueId());
                            }else{
                            party.Partychat.add(player.getUniqueId());
                            }
                        }else{
                            player.sendMessage(ChatColor.DARK_PURPLE + "[" + ChatColor.GOLD + "YParty" + ChatColor.DARK_PURPLE + "] " + "You must be in a party to use this command.");
                        }
                    return true;
                }else if(args[0].equalsIgnoreCase("disband")){
                    if(party.Partymembers.get(player.getUniqueId()) != null){
                        if(party.Partyleaders.get(party.Partymembers.get(player.getUniqueId())) == player.getUniqueId()){
                            party.Partyswithmembers.remove(party.Partymembers.get(player.getUniqueId()));
                            String name = party.Partymembers.get(player.getUniqueId());
                            ArrayList<UUID> members = new ArrayList<UUID>();
                            members.addAll(party.Partymembers.keySet());
                            for(UUID member : members){
                                if(party.Partymembers.get(member).equals(name)){
                                    party.Partymembers.remove(member);
                                    Player m = Bukkit.getPlayer(member);
                                    if(m != null){
                                        player.sendMessage(ChatColor.DARK_PURPLE + "[" + ChatColor.GOLD + "YParty" + ChatColor.DARK_PURPLE + "] " + fw.utilitiesconfig.getString("Partydisband"));
    
                                    }
                                }
                            }
                            plugin.database.deleteparty(name);
                            party.Partyleaders.remove(name);
                        }
                    }
                }else if(args[0].equalsIgnoreCase("leave")){
                    if(party.Partymembers.get(player.getUniqueId()) != null){
                        if(party.Partyleaders.get(party.Partymembers.get(player.getUniqueId())) != player.getUniqueId()){
                            player.sendMessage(ChatColor.DARK_PURPLE + "[" + ChatColor.GOLD + "YParty" + ChatColor.DARK_PURPLE + "] " + fw.utilitiesconfig.getString("Partyleave.member"));
                                                    party.Partyswithmembers.get(party.Partymembers.get(player.getUniqueId())).remove(player.getUniqueId());
                                                    party.Partymembers.remove(player.getUniqueId());
                                                    party.partymatchmaking.remove(player.getUniqueId());
    
                                                    return true;
                        }else{
                            player.sendMessage(ChatColor.DARK_PURPLE + "[" + ChatColor.GOLD + "YParty" + ChatColor.DARK_PURPLE + "] " + fw.utilitiesconfig.getString("Partyleave.leader"));
                        }
                    }
                }else if(args[0].equalsIgnoreCase("match")){
                    if(party.partymatchmaking.get(player.getUniqueId())){
                        party.partymatchmaking.put(player.getUniqueId(), false);
                    }else{
                        party.partymatchmaking.put(player.getUniqueId(), true);
                    }
                }
            
                else{
                    player.sendMessage(ChatColor.RED + "Please use /party <create/kick/invite/accept/chat/leave/disband/match>.");
                }
                }else{
                    player.sendMessage(ChatColor.RED + "Please use /party <create/kick/invite/accept/chat/leave/disband/match>.");
                }
                return true;
    solved. apparently after reload comparing uuid's with == doesn't work any more. I changed it to compareTo() == 0 or compareTo() != 0. this works now

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 13, 2016
Thread Status:
Not open for further replies.

Share This Page