2013-01-22 18:43:25 +01:00
package com.gmail.nossr50.party.commands ;
2012-01-09 20:00:13 +01:00
2013-01-26 00:40:23 +01:00
import org.bukkit.Bukkit ;
2012-01-09 20:00:13 +01:00
import org.bukkit.ChatColor ;
2012-06-11 07:45:14 +02:00
import org.bukkit.Server ;
2012-01-09 20:00:13 +01:00
import org.bukkit.command.Command ;
import org.bukkit.command.CommandExecutor ;
import org.bukkit.command.CommandSender ;
import org.bukkit.entity.Player ;
2012-06-07 00:02:22 +02:00
import com.gmail.nossr50.mcMMO ;
2012-04-22 08:55:58 +02:00
import com.gmail.nossr50.commands.CommandHelper ;
2012-01-09 20:00:13 +01:00
import com.gmail.nossr50.datatypes.PlayerProfile ;
2012-03-27 23:09:23 +02:00
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent ;
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason ;
2012-04-27 11:47:11 +02:00
import com.gmail.nossr50.locale.LocaleLoader ;
2012-01-09 20:00:13 +01:00
import com.gmail.nossr50.party.Party ;
2012-06-08 23:48:41 +02:00
import com.gmail.nossr50.party.PartyManager ;
2012-04-27 11:47:11 +02:00
import com.gmail.nossr50.util.Users ;
2012-01-09 20:00:13 +01:00
public class PartyCommand implements CommandExecutor {
2012-06-07 00:02:22 +02:00
private final mcMMO plugin ;
2012-04-21 00:09:50 +02:00
2012-06-07 00:02:22 +02:00
public PartyCommand ( mcMMO plugin ) {
2012-04-21 00:09:50 +02:00
this . plugin = plugin ;
}
2012-04-22 08:55:58 +02:00
@Override
public boolean onCommand ( CommandSender sender , Command command , String label , String [ ] args ) {
if ( CommandHelper . noConsoleUsage ( sender ) ) {
return true ;
}
if ( CommandHelper . noCommandPermissions ( sender , " mcmmo.commands.party " ) ) {
return true ;
}
2013-01-26 00:40:23 +01:00
Player player = ( Player ) sender ;
PlayerProfile playerProfile = Users . getProfile ( player ) ;
if ( args . length < 1 )
return party ( sender ) ;
if ( args [ 0 ] . equalsIgnoreCase ( " join " ) )
return join ( sender , args ) ;
else if ( args [ 0 ] . equalsIgnoreCase ( " accept " ) )
return accept ( sender , args ) ;
else if ( args [ 0 ] . equalsIgnoreCase ( " create " ) )
return create ( sender , args ) ;
2013-01-26 19:31:17 +01:00
else if ( args [ 0 ] . equalsIgnoreCase ( " info " ) )
return party ( sender ) ;
2013-01-26 00:40:23 +01:00
else if ( args [ 0 ] . equalsIgnoreCase ( " ? " ) | | args [ 0 ] . equalsIgnoreCase ( " help " ) )
return help ( sender , args ) ;
if ( playerProfile . inParty ( ) ) {
if ( args [ 0 ] . equalsIgnoreCase ( " quit " ) | | args [ 0 ] . equalsIgnoreCase ( " q " ) | | args [ 0 ] . equalsIgnoreCase ( " leave " ) )
return quit ( sender , args ) ;
else if ( args [ 0 ] . equalsIgnoreCase ( " expshare " ) )
return expshare ( sender , args ) ;
else if ( args [ 0 ] . equalsIgnoreCase ( " itemshare " ) )
return itemshare ( sender , args ) ;
else if ( args [ 0 ] . equalsIgnoreCase ( " invite " ) )
return invite ( sender , args ) ;
else if ( args [ 0 ] . equalsIgnoreCase ( " kick " ) )
return kick ( sender , args ) ;
else if ( args [ 0 ] . equalsIgnoreCase ( " disband " ) )
return disband ( sender , args ) ;
else if ( args [ 0 ] . equalsIgnoreCase ( " owner " ) )
return owner ( sender , args ) ;
else if ( args [ 0 ] . equalsIgnoreCase ( " lock " ) )
return lock ( sender , args ) ;
else if ( args [ 0 ] . equalsIgnoreCase ( " unlock " ) )
return unlock ( sender , args ) ;
else if ( args [ 0 ] . equalsIgnoreCase ( " password " ) )
return password ( sender , args ) ;
2013-01-26 19:31:17 +01:00
else if ( args [ 0 ] . equalsIgnoreCase ( " rename " ) )
return rename ( sender , args ) ;
2013-01-26 00:40:23 +01:00
else
return usage ( sender ) ;
} else {
player . sendMessage ( LocaleLoader . getString ( " Commands.Party.None " ) ) ;
return usage ( sender ) ;
}
}
private boolean usage ( CommandSender sender ) {
Player player = ( Player ) sender ;
player . sendMessage ( LocaleLoader . getString ( " Party.Help.0 " ) ) ;
player . sendMessage ( LocaleLoader . getString ( " Party.Help.1 " ) ) ;
player . sendMessage ( LocaleLoader . getString ( " Party.Help.2 " ) ) ;
return true ;
}
private boolean party ( CommandSender sender ) {
Player player = ( Player ) sender ;
PlayerProfile playerProfile = Users . getProfile ( player ) ;
if ( playerProfile . inParty ( ) ) {
Party party = playerProfile . getParty ( ) ;
Server server = plugin . getServer ( ) ;
String leader = party . getLeader ( ) ;
StringBuffer tempList = new StringBuffer ( ) ;
for ( String otherPlayerName : party . getMembers ( ) ) {
if ( leader . equals ( otherPlayerName ) ) {
tempList . append ( ChatColor . GOLD ) ;
}
else if ( server . getPlayer ( otherPlayerName ) ! = null ) {
tempList . append ( ChatColor . WHITE ) ;
}
else {
tempList . append ( ChatColor . GRAY ) ;
}
tempList . append ( otherPlayerName + " " ) ;
}
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 " , new Object [ ] { party . getName ( ) , status } ) ) ;
// player.sendMessage(LocaleLoader.getString("Commands.Party.ShareMode", new Object[] { "NONE", "NONE" })); Party share modes will get implemented later
player . sendMessage ( LocaleLoader . getString ( " Commands.Party.Members.Header " ) ) ;
player . sendMessage ( LocaleLoader . getString ( " Commands.Party.Members " , new Object [ ] { tempList } ) ) ;
} else {
return usage ( sender ) ;
}
return true ;
}
private boolean join ( CommandSender sender , String [ ] args ) {
if ( CommandHelper . noCommandPermissions ( sender , " mcmmo.commands.party.join " ) )
return true ;
2012-04-22 08:55:58 +02:00
Player player = ( Player ) sender ;
String playerName = player . getName ( ) ;
2012-06-08 23:48:41 +02:00
PlayerProfile playerProfile = Users . getProfile ( player ) ;
2012-04-22 08:55:58 +02:00
2012-06-08 23:48:41 +02:00
PartyManager partyManagerInstance = PartyManager . getInstance ( ) ;
Party party = playerProfile . getParty ( ) ;
2012-04-22 08:55:58 +02:00
2013-01-26 00:40:23 +01:00
if ( args . length < 2 ) {
player . sendMessage ( LocaleLoader . getString ( " Party.Help.0 " ) ) ;
return true ;
} else {
Player target = Bukkit . getServer ( ) . getPlayer ( args [ 1 ] ) ;
if ( target = = null ) {
player . sendMessage ( LocaleLoader . getString ( " Party.NotOnline " , new Object [ ] { args [ 1 ] } ) ) ;
return false ;
2012-04-22 08:55:58 +02:00
}
2013-01-26 00:40:23 +01:00
if ( ! Users . getProfile ( target ) . inParty ( ) ) {
player . sendMessage ( LocaleLoader . getString ( " Party.PlayerNotInParty " , new Object [ ] { args [ 1 ] } ) ) ;
return false ;
2012-04-22 08:55:58 +02:00
}
2013-01-26 00:40:23 +01:00
String password = null ;
if ( args . length > 2 ) password = args [ 2 ] ;
2012-04-22 08:55:58 +02:00
2013-01-26 00:40:23 +01:00
String partyTarget = partyManagerInstance . getPlayerParty ( target . getName ( ) ) . getName ( ) ;
Party newParty = partyManagerInstance . getParty ( args [ 0 ] ) ;
2012-03-27 23:09:23 +02:00
2013-01-26 00:40:23 +01:00
// Check to see if the party exists, and if it does, can the player join it?
if ( newParty ! = null & & ! partyManagerInstance . checkJoinability ( player , newParty , null ) ) {
return true ; // End before any event is fired.
}
2012-04-22 08:55:58 +02:00
2013-01-26 00:40:23 +01:00
if ( party ! = null ) {
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent ( player , party . getName ( ) , partyTarget , EventReason . CHANGED_PARTIES ) ;
plugin . getServer ( ) . getPluginManager ( ) . callEvent ( event ) ;
2012-04-22 08:55:58 +02:00
2013-01-26 00:40:23 +01:00
if ( event . isCancelled ( ) ) {
return true ;
2012-04-22 08:55:58 +02:00
}
2013-01-26 00:40:23 +01:00
partyManagerInstance . removeFromParty ( playerName , party ) ;
2012-04-22 08:55:58 +02:00
}
2013-01-26 00:40:23 +01:00
else {
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent ( player , null , partyTarget , EventReason . JOINED_PARTY ) ;
plugin . getServer ( ) . getPluginManager ( ) . callEvent ( event ) ;
if ( event . isCancelled ( ) ) {
return true ;
2012-04-22 08:55:58 +02:00
}
}
2013-01-26 00:40:23 +01:00
partyManagerInstance . joinParty ( player , playerProfile , partyTarget , password ) ;
return true ;
}
}
private boolean accept ( CommandSender sender , String [ ] args ) {
if ( CommandHelper . noCommandPermissions ( sender , " mcmmo.commands.party.accept " ) )
return true ;
Player player = ( Player ) sender ;
PlayerProfile playerProfile = Users . getProfile ( player ) ;
if ( playerProfile . hasPartyInvite ( ) ) {
PartyManager partyManagerInstance = PartyManager . getInstance ( ) ;
if ( playerProfile . inParty ( ) ) {
Party party = playerProfile . getParty ( ) ;
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent ( player , party . getName ( ) , playerProfile . getInvite ( ) . getName ( ) , EventReason . CHANGED_PARTIES ) ;
plugin . getServer ( ) . getPluginManager ( ) . callEvent ( event ) ;
if ( event . isCancelled ( ) ) {
return true ;
2012-04-22 08:55:58 +02:00
}
2013-01-26 00:40:23 +01:00
partyManagerInstance . removeFromParty ( player . getName ( ) , party ) ;
2012-04-22 08:55:58 +02:00
}
else {
2013-01-26 00:40:23 +01:00
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent ( player , null , playerProfile . getInvite ( ) . getName ( ) , EventReason . JOINED_PARTY ) ;
plugin . getServer ( ) . getPluginManager ( ) . callEvent ( event ) ;
2012-12-29 13:39:36 +01:00
2013-01-26 00:40:23 +01:00
if ( event . isCancelled ( ) ) {
return true ;
2012-12-29 13:39:36 +01:00
}
2013-01-26 00:40:23 +01:00
}
partyManagerInstance . joinInvitedParty ( player , playerProfile ) ;
}
else {
player . sendMessage ( LocaleLoader . getString ( " mcMMO.NoInvites " ) ) ;
}
return true ;
}
private boolean create ( CommandSender sender , String [ ] args ) {
if ( CommandHelper . noCommandPermissions ( sender , " mcmmo.commands.party.create " ) )
return true ;
Player player = ( Player ) sender ;
String playerName = player . getName ( ) ;
PlayerProfile playerProfile = Users . getProfile ( player ) ;
PartyManager partyManagerInstance = PartyManager . getInstance ( ) ;
Party party = playerProfile . getParty ( ) ;
2012-12-29 13:39:36 +01:00
2013-01-26 00:40:23 +01:00
if ( args . length < 2 ) {
player . sendMessage ( LocaleLoader . getString ( " Party.Help.1 " ) ) ;
return true ;
} else {
String partyname = args [ 1 ] ;
String password = null ;
if ( args . length > 2 ) password = args [ 2 ] ;
2013-01-26 19:31:17 +01:00
Party newParty = partyManagerInstance . getParty ( partyname ) ;
2013-01-26 00:40:23 +01:00
// 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 } ) ) ;
return true ;
}
2012-04-22 08:55:58 +02:00
2013-01-26 00:40:23 +01:00
if ( playerProfile . inParty ( ) ) {
2013-01-26 19:31:17 +01:00
String oldPartyName = party . getName ( ) ;
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent ( player , oldPartyName , partyname , EventReason . CHANGED_PARTIES ) ;
2013-01-26 00:40:23 +01:00
plugin . getServer ( ) . getPluginManager ( ) . callEvent ( event ) ;
2012-04-22 08:55:58 +02:00
2013-01-26 00:40:23 +01:00
if ( event . isCancelled ( ) ) {
return true ;
2012-04-22 08:55:58 +02:00
}
2012-03-27 23:09:23 +02:00
2013-01-26 00:40:23 +01:00
partyManagerInstance . removeFromParty ( playerName , party ) ;
partyManagerInstance . createParty ( player , playerProfile , partyname , password ) ;
} else {
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent ( player , null , partyname , EventReason . JOINED_PARTY ) ;
plugin . getServer ( ) . getPluginManager ( ) . callEvent ( event ) ;
if ( event . isCancelled ( ) ) {
return true ;
2012-04-22 08:55:58 +02:00
}
2013-01-26 00:40:23 +01:00
partyManagerInstance . createParty ( player , playerProfile , partyname , password ) ;
return true ;
2012-04-22 08:55:58 +02:00
}
2013-01-26 00:40:23 +01:00
}
return true ;
}
private boolean quit ( CommandSender sender , String [ ] args ) {
if ( CommandHelper . noCommandPermissions ( sender , " mcmmo.commands.party.quit " ) )
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 ! = null ) {
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent ( player , party . getName ( ) , null , EventReason . LEFT_PARTY ) ;
plugin . getServer ( ) . getPluginManager ( ) . callEvent ( event ) ;
if ( event . isCancelled ( ) ) {
return true ;
}
partyManagerInstance . removeFromParty ( playerName , party ) ;
player . sendMessage ( LocaleLoader . getString ( " Commands.Party.Leave " ) ) ;
}
else
player . sendMessage ( LocaleLoader . getString ( " Commands.Party.None " ) ) ;
return false ;
}
private boolean expshare ( CommandSender sender , String [ ] args ) {
if ( CommandHelper . noCommandPermissions ( sender , " mcmmo.commands.party.expshare " ) )
return true ;
return true ;
}
private boolean itemshare ( CommandSender sender , String [ ] args ) {
if ( CommandHelper . noCommandPermissions ( sender , " mcmmo.commands.party.itemshare " ) )
return true ;
return true ;
}
2012-04-22 08:55:58 +02:00
2013-01-26 00:40:23 +01:00
private boolean help ( CommandSender sender , String [ ] args ) {
Player player = ( Player ) sender ;
player . sendMessage ( LocaleLoader . getString ( " Party.Help.3 " ) ) ;
player . sendMessage ( LocaleLoader . getString ( " Party.Help.1 " ) ) ;
player . sendMessage ( LocaleLoader . getString ( " Party.Help.4 " ) ) ;
player . sendMessage ( LocaleLoader . getString ( " Party.Help.5 " ) ) ;
player . sendMessage ( LocaleLoader . getString ( " Party.Help.6 " ) ) ;
player . sendMessage ( LocaleLoader . getString ( " Party.Help.7 " ) ) ;
player . sendMessage ( LocaleLoader . getString ( " Party.Help.8 " ) ) ;
return true ;
}
private boolean invite ( CommandSender sender , String [ ] args ) {
if ( CommandHelper . noCommandPermissions ( sender , " mcmmo.commands.party.invite " ) )
2012-04-22 08:55:58 +02:00
return true ;
2013-01-26 00:40:23 +01:00
switch ( args . length ) {
2012-04-22 08:55:58 +02:00
case 2 :
2013-01-26 00:40:23 +01:00
Player player = ( Player ) sender ;
PlayerProfile playerProfile = Users . getProfile ( player ) ;
if ( ! playerProfile . inParty ( ) ) {
player . sendMessage ( LocaleLoader . getString ( " Commands.Party.None " ) ) ;
return true ;
}
Player target = plugin . getServer ( ) . getPlayer ( args [ 1 ] ) ;
if ( target ! = null ) {
if ( PartyManager . getInstance ( ) . inSameParty ( player , target ) ) {
player . sendMessage ( LocaleLoader . getString ( " Party.Player.InSameParty " ) ) ;
return true ;
2012-04-22 08:55:58 +02:00
}
2013-01-26 00:40:23 +01:00
if ( PartyManager . getInstance ( ) . canInvite ( player , playerProfile ) ) {
Party party = playerProfile . getParty ( ) ;
Users . getProfile ( target ) . setInvite ( party ) ;
player . sendMessage ( LocaleLoader . getString ( " Commands.Invite.Success " ) ) ;
target . sendMessage ( LocaleLoader . getString ( " Commands.Party.Invite.0 " , new Object [ ] { party . getName ( ) , player . getName ( ) } ) ) ;
target . sendMessage ( LocaleLoader . getString ( " Commands.Party.Invite.1 " ) ) ;
return true ;
2012-04-22 08:55:58 +02:00
}
2012-12-29 13:39:36 +01:00
2013-01-26 00:40:23 +01:00
player . sendMessage ( LocaleLoader . getString ( " Party.Locked " ) ) ;
return true ;
}
player . sendMessage ( LocaleLoader . getString ( " Party.Player.Invalid " ) ) ;
return true ;
default :
sender . sendMessage ( LocaleLoader . getString ( " Commands.Usage.2 " , new Object [ ] { " party " , " invite " , " < " + LocaleLoader . getString ( " Commands.Usage.Player " ) + " > " } ) ) ;
return true ;
}
}
/ * *
* Kick a party member
* /
private boolean kick ( CommandSender sender , String [ ] args ) {
if ( CommandHelper . noCommandPermissions ( sender , " mcmmo.commands.party.kick " ) )
return true ;
Player player = ( Player ) sender ;
String playerName = player . getName ( ) ;
PlayerProfile playerProfile = Users . getProfile ( player ) ;
PartyManager partyManagerInstance = PartyManager . getInstance ( ) ;
Party party = playerProfile . getParty ( ) ;
2012-12-29 13:39:36 +01:00
2013-01-26 00:40:23 +01:00
if ( party . getLeader ( ) . equals ( playerName ) ) {
if ( ! party . getMembers ( ) . contains ( args [ 1 ] ) ) {
player . sendMessage ( LocaleLoader . getString ( " Party.NotInYourParty " , new Object [ ] { args [ 1 ] } ) ) ;
return true ;
}
2012-04-22 08:55:58 +02:00
2013-01-26 00:40:23 +01:00
Player target = plugin . getServer ( ) . getOfflinePlayer ( args [ 1 ] ) . getPlayer ( ) ;
if ( target ! = null ) {
String partyName = party . getName ( ) ;
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent ( target , partyName , null , EventReason . KICKED_FROM_PARTY ) ;
2012-04-22 08:55:58 +02:00
2013-01-26 00:40:23 +01:00
plugin . getServer ( ) . getPluginManager ( ) . callEvent ( event ) ;
if ( event . isCancelled ( ) ) {
return true ;
2012-04-22 08:55:58 +02:00
}
2013-01-26 00:40:23 +01:00
target . sendMessage ( LocaleLoader . getString ( " Commands.Party.Kick " , new Object [ ] { partyName } ) ) ;
2012-04-22 08:55:58 +02:00
}
2013-01-26 00:40:23 +01:00
partyManagerInstance . removeFromParty ( args [ 1 ] , party ) ;
}
else
player . sendMessage ( LocaleLoader . getString ( " Party.NotOwner " ) ) ;
return true ;
}
2012-12-29 13:39:36 +01:00
2013-01-26 00:40:23 +01:00
/ * *
* Disband the current party , kicks out all party members .
* /
private boolean disband ( CommandSender sender , String [ ] args ) {
if ( CommandHelper . noCommandPermissions ( sender , " mcmmo.commands.party.disband " ) )
return true ;
2012-12-29 13:39:36 +01:00
2013-01-26 00:40:23 +01:00
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 ) ) {
for ( Player onlineMembers : party . getOnlineMembers ( ) ) {
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent ( onlineMembers , party . getName ( ) , null , EventReason . KICKED_FROM_PARTY ) ;
2012-04-21 00:09:50 +02:00
plugin . getServer ( ) . getPluginManager ( ) . callEvent ( event ) ;
2012-03-27 23:09:23 +02:00
if ( event . isCancelled ( ) ) {
return true ;
}
2013-01-26 00:40:23 +01:00
onlineMembers . sendMessage ( LocaleLoader . getString ( " Party.Disband " ) ) ;
}
partyManagerInstance . disbandParty ( party ) ;
}
else
player . sendMessage ( LocaleLoader . getString ( " Party.NotOwner " ) ) ;
return true ;
}
/ * *
* Change the owner of the current party
* /
private boolean owner ( CommandSender sender , String [ ] args ) {
if ( CommandHelper . noCommandPermissions ( sender , " mcmmo.commands.party.owner " ) )
return true ;
Player player = ( Player ) sender ;
String playerName = player . getName ( ) ;
PlayerProfile playerProfile = Users . getProfile ( player ) ;
PartyManager partyManagerInstance = PartyManager . getInstance ( ) ;
Party party = playerProfile . getParty ( ) ;
if ( args . length < 2 ) {
player . sendMessage ( " Usage: /party owner [player] " ) ;
return true ;
}
if ( party . getLeader ( ) . equals ( playerName ) ) {
if ( ! party . getMembers ( ) . contains ( args [ 1 ] ) ) {
player . sendMessage ( LocaleLoader . getString ( " Party.NotInYourParty " , new Object [ ] { args [ 1 ] } ) ) ;
return true ;
}
partyManagerInstance . setPartyLeader ( args [ 1 ] , party ) ;
}
return true ;
}
/ * *
* Lock the current party
* /
private boolean lock ( CommandSender sender , String [ ] args ) {
if ( CommandHelper . noCommandPermissions ( sender , " mcmmo.commands.party.lock " ) )
return true ;
Player player = ( Player ) sender ;
String playerName = player . getName ( ) ;
PlayerProfile playerProfile = Users . getProfile ( player ) ;
Party party = playerProfile . getParty ( ) ;
if ( party ! = null ) {
if ( party . getLeader ( ) . equals ( playerName ) ) {
if ( party . isLocked ( ) ) {
player . sendMessage ( LocaleLoader . getString ( " Party.IsLocked " ) ) ;
}
else {
party . setLocked ( true ) ;
player . sendMessage ( LocaleLoader . getString ( " Party.Locked " ) ) ;
}
}
else
player . sendMessage ( LocaleLoader . getString ( " Party.NotOwner " ) ) ;
}
else
player . sendMessage ( " Commands.Party.None " ) ;
return true ;
}
/ * *
* Unlock the current party
* /
private boolean unlock ( CommandSender sender , String [ ] args ) {
if ( CommandHelper . noCommandPermissions ( sender , " mcmmo.commands.party.unlock " ) )
return true ;
2012-04-22 08:55:58 +02:00
2013-01-26 00:40:23 +01:00
Player player = ( Player ) sender ;
String playerName = player . getName ( ) ;
PlayerProfile playerProfile = Users . getProfile ( player ) ;
Party party = playerProfile . getParty ( ) ;
if ( party ! = null ) {
if ( party . getLeader ( ) . equals ( playerName ) ) {
if ( ! party . isLocked ( ) ) {
player . sendMessage ( LocaleLoader . getString ( " Party.IsntLocked " ) ) ;
}
else {
party . setLocked ( false ) ;
player . sendMessage ( LocaleLoader . getString ( " Party.Unlocked " ) ) ;
}
2012-03-27 23:09:23 +02:00
}
2013-01-26 00:40:23 +01:00
else
player . sendMessage ( LocaleLoader . getString ( " Party.NotOwner " ) ) ;
}
else
player . sendMessage ( " Commands.Party.None " ) ;
return true ;
}
2012-01-09 20:00:13 +01:00
2013-01-26 00:40:23 +01:00
private boolean password ( CommandSender sender , String [ ] args ) {
if ( CommandHelper . noCommandPermissions ( sender , " mcmmo.commands.party.password " ) )
2012-04-22 08:55:58 +02:00
return true ;
2013-01-26 00:40:23 +01:00
Player player = ( Player ) sender ;
String playerName = player . getName ( ) ;
PlayerProfile playerProfile = Users . getProfile ( player ) ;
Party party = playerProfile . getParty ( ) ;
if ( args . length < 2 ) {
player . sendMessage ( LocaleLoader . getString ( " Commands.Usage.2 " , new Object [ ] { " party " , " password " , " < " + LocaleLoader . getString ( " Commands.Usage.Password " ) + " > " } ) ) ;
2012-04-22 08:55:58 +02:00
return true ;
}
2013-01-26 00:40:23 +01:00
if ( party . getLeader ( ) . equals ( playerName ) ) {
party . setLocked ( true ) ;
party . setPassword ( args [ 1 ] ) ;
player . sendMessage ( LocaleLoader . getString ( " Party.PasswordSet " , new Object [ ] { args [ 1 ] } ) ) ;
}
else
player . sendMessage ( LocaleLoader . getString ( " Party.NotOwner " ) ) ;
return true ;
2012-04-22 08:55:58 +02:00
}
2013-01-26 19:31:17 +01:00
/ * *
* 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 ( ) ;
2013-01-26 19:40:20 +01:00
String leader = party . getLeader ( ) ;
2013-01-26 19:31:17 +01:00
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 ;
}
2013-01-26 19:40:20 +01:00
if ( ! onlineMembers . getName ( ) . equals ( leader ) ) {
onlineMembers . sendMessage ( LocaleLoader . getString ( " Party.InformedOnNameChange " , new Object [ ] { leader , newPartyName } ) ) ;
}
2013-01-26 19:31:17 +01:00
}
party . setName ( newPartyName ) ;
}
player . sendMessage ( LocaleLoader . getString ( " Commands.Party.Rename " , new Object [ ] { newPartyName } ) ) ;
}
}
else
player . sendMessage ( LocaleLoader . getString ( " Party.NotOwner " ) ) ;
return true ;
}
2012-01-09 20:00:13 +01:00
}