mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-06-25 10:14:43 +02:00
Add new party command /party rename
This commit is contained in:
@ -86,6 +86,21 @@ public class PartyManager {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify party members when the party leader changed the party name.
|
||||
*
|
||||
* @param newPartyName The new name of the party
|
||||
* @param party The concerned party
|
||||
*/
|
||||
public void informPartyMembersNameChange(String newPartyName, Party party) {
|
||||
String leader = party.getLeader();
|
||||
for (Player member : party.getOnlineMembers()) {
|
||||
if (!member.getName().equals(leader)) {
|
||||
member.sendMessage(LocaleLoader.getString("Party.InformedOnNameChange", new Object[] {leader, newPartyName}));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list of all players in this player's party.
|
||||
*
|
||||
|
@ -47,6 +47,8 @@ public class PartyCommand implements CommandExecutor {
|
||||
return accept(sender, args);
|
||||
else if(args[0].equalsIgnoreCase("create"))
|
||||
return create(sender, args);
|
||||
else if(args[0].equalsIgnoreCase("info"))
|
||||
return party(sender);
|
||||
else if(args[0].equalsIgnoreCase("?") || args[0].equalsIgnoreCase("help"))
|
||||
return help(sender, args);
|
||||
if (playerProfile.inParty()) {
|
||||
@ -70,6 +72,8 @@ public class PartyCommand implements CommandExecutor {
|
||||
return unlock(sender, args);
|
||||
else if(args[0].equalsIgnoreCase("password"))
|
||||
return password(sender, args);
|
||||
else if(args[0].equalsIgnoreCase("rename"))
|
||||
return rename(sender, args);
|
||||
else
|
||||
return usage(sender);
|
||||
} else {
|
||||
@ -239,7 +243,7 @@ public class PartyCommand implements CommandExecutor {
|
||||
String password = null;
|
||||
if(args.length > 2) password = args[2];
|
||||
|
||||
Party newParty = partyManagerInstance.getParty(args[1]);
|
||||
Party newParty = partyManagerInstance.getParty(partyname);
|
||||
// Check to see if the party exists, and if it does cancel creating a new party
|
||||
if (newParty != null) {
|
||||
player.sendMessage(LocaleLoader.getString("Commands.Party.AlreadyExists", new Object[] {partyname}));
|
||||
@ -247,7 +251,8 @@ public class PartyCommand implements CommandExecutor {
|
||||
}
|
||||
|
||||
if (playerProfile.inParty()) {
|
||||
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(player, playerProfile.getPlayerName(), partyname, EventReason.CHANGED_PARTIES);
|
||||
String oldPartyName = party.getName();
|
||||
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(player, oldPartyName, partyname, EventReason.CHANGED_PARTIES);
|
||||
plugin.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
if (event.isCancelled()) {
|
||||
@ -545,4 +550,51 @@ public class PartyCommand implements CommandExecutor {
|
||||
player.sendMessage(LocaleLoader.getString("Party.NotOwner"));
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Rename the current party
|
||||
*/
|
||||
private boolean rename(CommandSender sender, String[] args) {
|
||||
if (CommandHelper.noCommandPermissions(sender, "mcmmo.commands.party.rename"))
|
||||
return true;
|
||||
|
||||
Player player = (Player) sender;
|
||||
String playerName = player.getName();
|
||||
PlayerProfile playerProfile = Users.getProfile(player);
|
||||
|
||||
PartyManager partyManagerInstance = PartyManager.getInstance();
|
||||
Party party = playerProfile.getParty();
|
||||
|
||||
if (party.getLeader().equals(playerName)) {
|
||||
if(args.length < 2) {
|
||||
player.sendMessage(LocaleLoader.getString("Commands.Usage.2", new Object[] {"party", "rename", "<" + LocaleLoader.getString("Commands.Usage.PartyName") + ">"}));
|
||||
return true;
|
||||
} else {
|
||||
String newPartyName = args[1];
|
||||
if (!party.getName().equals(newPartyName)) {//This is to prevent party leaders from spamming other players with the rename message
|
||||
Party newParty = partyManagerInstance.getParty(newPartyName);
|
||||
// Check to see if the party exists, and if it does cancel renaming the party
|
||||
if (newParty != null) {
|
||||
player.sendMessage(LocaleLoader.getString("Commands.Party.AlreadyExists", new Object[] {newPartyName}));
|
||||
return true;
|
||||
}
|
||||
|
||||
for (Player onlineMembers : party.getOnlineMembers()) {
|
||||
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(onlineMembers, party.getName(), newPartyName, EventReason.CHANGED_PARTIES);
|
||||
plugin.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
if (event.isCancelled()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
partyManagerInstance.informPartyMembersNameChange(newPartyName, party);
|
||||
party.setName(newPartyName);
|
||||
}
|
||||
player.sendMessage(LocaleLoader.getString("Commands.Party.Rename", new Object[] {newPartyName}));
|
||||
}
|
||||
}
|
||||
else
|
||||
player.sendMessage(LocaleLoader.getString("Party.NotOwner"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user