mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-04 11:03:43 +01:00 
			
		
		
		
	Convert /party info to a subcommand
This commit is contained in:
		@@ -33,6 +33,7 @@ public class PartyCommand implements CommandExecutor {
 | 
				
			|||||||
    private CommandExecutor partyLockCommand = new PartyLockCommand();
 | 
					    private CommandExecutor partyLockCommand = new PartyLockCommand();
 | 
				
			||||||
    private CommandExecutor partyChangePasswordCommand = new PartyChangePasswordCommand();
 | 
					    private CommandExecutor partyChangePasswordCommand = new PartyChangePasswordCommand();
 | 
				
			||||||
    private CommandExecutor partyRenameCommand = new PartyRenameCommand();
 | 
					    private CommandExecutor partyRenameCommand = new PartyRenameCommand();
 | 
				
			||||||
 | 
					    private CommandExecutor partyInfoCommand = new PartyInfoCommand();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
 | 
					    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
 | 
				
			||||||
@@ -49,10 +50,9 @@ public class PartyCommand implements CommandExecutor {
 | 
				
			|||||||
        mcMMOPlayer = Users.getPlayer(player);
 | 
					        mcMMOPlayer = Users.getPlayer(player);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (args.length < 1 || args[0].equalsIgnoreCase("info")) {
 | 
					        if (args.length < 1 || args[0].equalsIgnoreCase("info")) {
 | 
				
			||||||
            return party();
 | 
					            return partyInfoCommand.onCommand(sender, command, label, args);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        else if (args[0].equalsIgnoreCase("join")) {
 | 
				
			||||||
        if (args[0].equalsIgnoreCase("join")) {
 | 
					 | 
				
			||||||
            return partyJoinCommand.onCommand(sender, command, label, args);
 | 
					            return partyJoinCommand.onCommand(sender, command, label, args);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        else if (args[0].equalsIgnoreCase("accept")) {
 | 
					        else if (args[0].equalsIgnoreCase("accept")) {
 | 
				
			||||||
@@ -118,71 +118,6 @@ public class PartyCommand implements CommandExecutor {
 | 
				
			|||||||
        return true;
 | 
					        return true;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private boolean party() {
 | 
					 | 
				
			||||||
        if (mcMMOPlayer.inParty()) {
 | 
					 | 
				
			||||||
            Party party = mcMMOPlayer.getParty();
 | 
					 | 
				
			||||||
            String leader = party.getLeader();
 | 
					 | 
				
			||||||
            StringBuilder tempList = new StringBuilder();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            int membersNear = PartyManager.getNearMembers(player, party, Config.getInstance().getPartyShareRange()).size();
 | 
					 | 
				
			||||||
            int membersOnline = party.getOnlineMembers().size() - 1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            String ItemShare = "";
 | 
					 | 
				
			||||||
            String ExpShare = "";
 | 
					 | 
				
			||||||
            String Split = "";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            for (OfflinePlayer otherMember : party.getMembers()) {
 | 
					 | 
				
			||||||
                if (leader.equals(otherMember.getName())) {
 | 
					 | 
				
			||||||
                    tempList.append(ChatColor.GOLD);
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                else if (otherMember.isOnline()) {
 | 
					 | 
				
			||||||
                    tempList.append(ChatColor.WHITE);
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                else {
 | 
					 | 
				
			||||||
                    tempList.append(ChatColor.GRAY);
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                tempList.append(otherMember.getName()).append(" ");
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            String status = LocaleLoader.getString("Party.Status.Locked");
 | 
					 | 
				
			||||||
            if (!party.isLocked()) {
 | 
					 | 
				
			||||||
                status = LocaleLoader.getString("Party.Status.Unlocked");
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            player.sendMessage(LocaleLoader.getString("Commands.Party.Header"));
 | 
					 | 
				
			||||||
            player.sendMessage(LocaleLoader.getString("Commands.Party.Status", party.getName(), status));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            boolean xpShareEnabled = Config.getInstance().getExpShareEnabled();
 | 
					 | 
				
			||||||
            boolean itemShareEnabled = Config.getInstance().getItemShareEnabled();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (xpShareEnabled) {
 | 
					 | 
				
			||||||
                ExpShare = LocaleLoader.getString("Commands.Party.ExpShare", party.getXpShareMode().toString());
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (itemShareEnabled) {
 | 
					 | 
				
			||||||
                ItemShare = LocaleLoader.getString("Commands.Party.ItemShare", party.getItemShareMode().toString());
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (xpShareEnabled && itemShareEnabled) {
 | 
					 | 
				
			||||||
                Split = ChatColor.DARK_GRAY + " || ";
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (xpShareEnabled || itemShareEnabled) {
 | 
					 | 
				
			||||||
                player.sendMessage(LocaleLoader.getString("Commands.Party.ShareMode") + ExpShare + Split + ItemShare);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            player.sendMessage(LocaleLoader.getString("Commands.Party.Members.Header"));
 | 
					 | 
				
			||||||
            player.sendMessage(LocaleLoader.getString("Commands.Party.MembersNear", membersNear, membersOnline));
 | 
					 | 
				
			||||||
            player.sendMessage(LocaleLoader.getString("Commands.Party.Members", tempList));
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        else {
 | 
					 | 
				
			||||||
            return printUsage();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return true;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private boolean printHelp() {
 | 
					    private boolean printHelp() {
 | 
				
			||||||
        player.sendMessage(LocaleLoader.getString("Party.Help.3"));
 | 
					        player.sendMessage(LocaleLoader.getString("Party.Help.3"));
 | 
				
			||||||
        player.sendMessage(LocaleLoader.getString("Party.Help.1"));
 | 
					        player.sendMessage(LocaleLoader.getString("Party.Help.1"));
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,108 @@
 | 
				
			|||||||
 | 
					package com.gmail.nossr50.party.commands;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.bukkit.ChatColor;
 | 
				
			||||||
 | 
					import org.bukkit.OfflinePlayer;
 | 
				
			||||||
 | 
					import org.bukkit.command.Command;
 | 
				
			||||||
 | 
					import org.bukkit.command.CommandExecutor;
 | 
				
			||||||
 | 
					import org.bukkit.command.CommandSender;
 | 
				
			||||||
 | 
					import org.bukkit.entity.Player;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.gmail.nossr50.config.Config;
 | 
				
			||||||
 | 
					import com.gmail.nossr50.datatypes.McMMOPlayer;
 | 
				
			||||||
 | 
					import com.gmail.nossr50.locale.LocaleLoader;
 | 
				
			||||||
 | 
					import com.gmail.nossr50.party.Party;
 | 
				
			||||||
 | 
					import com.gmail.nossr50.party.PartyManager;
 | 
				
			||||||
 | 
					import com.gmail.nossr50.util.Users;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class PartyInfoCommand implements CommandExecutor {
 | 
				
			||||||
 | 
					    private Player player;
 | 
				
			||||||
 | 
					    private Party playerParty;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
 | 
				
			||||||
 | 
					        player = (Player) sender;
 | 
				
			||||||
 | 
					        McMMOPlayer mcMMOPlayer = Users.getPlayer(player);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!mcMMOPlayer.inParty()) {
 | 
				
			||||||
 | 
					            sendUsageStrings(sender);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        playerParty = mcMMOPlayer.getParty();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        displayPartyHeader();
 | 
				
			||||||
 | 
					        displayShareModeInfo();
 | 
				
			||||||
 | 
					        displayMemberInfo();
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private void sendUsageStrings(CommandSender sender) {
 | 
				
			||||||
 | 
					        sender.sendMessage(LocaleLoader.getString("Party.Help.0", "<" + LocaleLoader.getString("Commands.Usage.Player") + ">", "[" + LocaleLoader.getString("Commands.Usage.Password") + "]"));
 | 
				
			||||||
 | 
					        sender.sendMessage(LocaleLoader.getString("Party.Help.1", "<" + LocaleLoader.getString("Commands.Usage.PartyName") + ">", "[" + LocaleLoader.getString("Commands.Usage.Password") + "]"));
 | 
				
			||||||
 | 
					        sender.sendMessage(LocaleLoader.getString("Party.Help.2"));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private String createMembersList() {
 | 
				
			||||||
 | 
					        StringBuilder memberList = new StringBuilder();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        for (OfflinePlayer member : playerParty.getMembers()) {
 | 
				
			||||||
 | 
					            if (playerParty.getLeader().equals(member.getName())) {
 | 
				
			||||||
 | 
					                memberList.append(ChatColor.GOLD).append(member.getName()).append(" ");
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else if (member.isOnline()) {
 | 
				
			||||||
 | 
					                memberList.append(ChatColor.WHITE).append(member.getName()).append(" ");
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else {
 | 
				
			||||||
 | 
					                memberList.append(ChatColor.GRAY).append(member.getName()).append(" ");
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return memberList.toString();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private void displayShareModeInfo() {
 | 
				
			||||||
 | 
					        boolean xpShareEnabled = Config.getInstance().getExpShareEnabled();
 | 
				
			||||||
 | 
					        boolean itemShareEnabled = Config.getInstance().getItemShareEnabled();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!xpShareEnabled && !itemShareEnabled) {
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        String expShareInfo = "";
 | 
				
			||||||
 | 
					        String itemShareInfo = "";
 | 
				
			||||||
 | 
					        String separator = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (xpShareEnabled) {
 | 
				
			||||||
 | 
					            expShareInfo = LocaleLoader.getString("Commands.Party.ExpShare", playerParty.getXpShareMode().toString());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (itemShareEnabled) {
 | 
				
			||||||
 | 
					            itemShareInfo = LocaleLoader.getString("Commands.Party.ItemShare", playerParty.getItemShareMode().toString());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (xpShareEnabled && itemShareEnabled) {
 | 
				
			||||||
 | 
					            separator = ChatColor.DARK_GRAY + " || ";
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        player.sendMessage(LocaleLoader.getString("Commands.Party.ShareMode") + expShareInfo + separator + itemShareInfo);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private void displayPartyHeader() {
 | 
				
			||||||
 | 
					        player.sendMessage(LocaleLoader.getString("Commands.Party.Header"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (playerParty.isLocked()) {
 | 
				
			||||||
 | 
					            player.sendMessage(LocaleLoader.getString("Commands.Party.Status", playerParty.getName(), LocaleLoader.getString("Party.Status.Locked")));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else {
 | 
				
			||||||
 | 
					            player.sendMessage(LocaleLoader.getString("Commands.Party.Status", playerParty.getName(), LocaleLoader.getString("Party.Status.Unlocked")));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private void displayMemberInfo() {
 | 
				
			||||||
 | 
					        int membersNear = PartyManager.getNearMembers(player, playerParty, Config.getInstance().getPartyShareRange()).size();
 | 
				
			||||||
 | 
					        int membersOnline = playerParty.getOnlineMembers().size() - 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        player.sendMessage(LocaleLoader.getString("Commands.Party.Members.Header"));
 | 
				
			||||||
 | 
					        player.sendMessage(LocaleLoader.getString("Commands.Party.MembersNear", membersNear, membersOnline));
 | 
				
			||||||
 | 
					        player.sendMessage(LocaleLoader.getString("Commands.Party.Members", createMembersList()));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -495,7 +495,7 @@ Commands.Usage.3=[[RED]]Proper usage is /{0} {1} {2} {3}
 | 
				
			|||||||
Commands.Usage.Level=level
 | 
					Commands.Usage.Level=level
 | 
				
			||||||
Commands.Usage.Message=message
 | 
					Commands.Usage.Message=message
 | 
				
			||||||
Commands.Usage.Page=page
 | 
					Commands.Usage.Page=page
 | 
				
			||||||
Commands.Usage.PartyName=party-name
 | 
					Commands.Usage.PartyName=name
 | 
				
			||||||
Commands.Usage.Password=password
 | 
					Commands.Usage.Password=password
 | 
				
			||||||
Commands.Usage.Player=player
 | 
					Commands.Usage.Player=player
 | 
				
			||||||
Commands.Usage.Rate=rate
 | 
					Commands.Usage.Rate=rate
 | 
				
			||||||
@@ -507,7 +507,7 @@ mcMMO.NoSkillNote=[[DARK_GRAY]]If you don't have access to a skill it will not b
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
##party
 | 
					##party
 | 
				
			||||||
Party.Forbidden=[mcMMO] Parties not permitted on this world (See Permissions)
 | 
					Party.Forbidden=[mcMMO] Parties not permitted on this world (See Permissions)
 | 
				
			||||||
Party.Help.0=[[RED]]Proper usage is [[DARK_AQUA]]/party join <player> [password].
 | 
					Party.Help.0=[[RED]]Proper usage is [[DARK_AQUA]]/party join {0} {1}.
 | 
				
			||||||
Party.Help.1=[[RED]]To create a party, use [[DARK_AQUA]]/party create <name> [password]
 | 
					Party.Help.1=[[RED]]To create a party, use [[DARK_AQUA]]/party create <name> [password]
 | 
				
			||||||
Party.Help.2=[[RED]]Consult [[DARK_AQUA]]/party ? [[RED]]for more information
 | 
					Party.Help.2=[[RED]]Consult [[DARK_AQUA]]/party ? [[RED]]for more information
 | 
				
			||||||
Party.Help.3=[[RED]]Use [[DARK_AQUA]]/party join <player> [[RED]]to join or [[DARK_AQUA]]/party quit [[RED]]to quit
 | 
					Party.Help.3=[[RED]]Use [[DARK_AQUA]]/party join <player> [[RED]]to join or [[DARK_AQUA]]/party quit [[RED]]to quit
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user