2011-10-09 21:57:43 +02:00
package com.massivecraft.factions.cmd ;
2011-03-22 15:45:41 +01:00
2011-07-18 22:06:02 +02:00
import com.massivecraft.factions.Conf ;
import com.massivecraft.factions.FPlayer ;
2011-10-09 14:53:38 +02:00
import com.massivecraft.factions.FPlayers ;
import com.massivecraft.factions.struct.Permission ;
2014-12-08 00:12:52 +01:00
import com.massivecraft.factions.zcore.util.TL ;
2011-10-09 14:53:38 +02:00
import com.massivecraft.factions.zcore.util.TextUtil ;
2011-03-22 15:45:41 +01:00
2014-04-04 20:55:21 +02:00
public class CmdDescription extends FCommand {
2014-08-05 17:17:27 +02:00
2014-04-04 20:55:21 +02:00
public CmdDescription ( ) {
2014-07-01 22:10:18 +02:00
super ( ) ;
this . aliases . add ( " desc " ) ;
2016-01-02 04:05:02 +01:00
this . aliases . add ( " description " ) ;
2014-04-04 20:55:21 +02:00
2014-07-01 22:10:18 +02:00
this . requiredArgs . add ( " desc " ) ;
this . errorOnToManyArgs = false ;
2014-04-04 20:55:21 +02:00
//this.optionalArgs
2014-07-01 22:10:18 +02:00
this . permission = Permission . DESCRIPTION . node ;
this . disableOnLock = true ;
2014-04-04 20:55:21 +02:00
2014-07-01 22:10:18 +02:00
senderMustBePlayer = true ;
senderMustBeMember = false ;
senderMustBeModerator = true ;
senderMustBeAdmin = false ;
2014-04-04 20:55:21 +02:00
}
@Override
public void perform ( ) {
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
2014-12-08 00:12:52 +01:00
if ( ! payForCommand ( Conf . econCostDesc , TL . COMMAND_DESCRIPTION_TOCHANGE , TL . COMMAND_DESCRIPTION_FORCHANGE ) ) {
2014-04-04 20:55:21 +02:00
return ;
2014-07-01 21:49:42 +02:00
}
2014-04-04 20:55:21 +02:00
2015-08-06 23:09:07 +02:00
// since "&" color tags seem to work even through plain old FPlayer.sendMessage() for some reason, we need to break those up
// And replace all the % because it messes with string formatting and this is easy way around that.
2016-06-29 19:10:07 +02:00
myFaction . setDescription ( TextUtil . implode ( args , " " ) . replaceAll ( " % " , " " ) . replaceAll ( " (&([a-f0-9klmnor])) " , " & $2 " ) ) ;
2014-04-04 20:55:21 +02:00
if ( ! Conf . broadcastDescriptionChanges ) {
2014-12-08 00:12:52 +01:00
fme . msg ( TL . COMMAND_DESCRIPTION_CHANGED , myFaction . describeTo ( fme ) ) ;
2014-07-01 22:10:18 +02:00
fme . sendMessage ( myFaction . getDescription ( ) ) ;
return ;
2014-04-04 20:55:21 +02:00
}
// Broadcast the description to everyone
2014-10-19 07:37:25 +02:00
for ( FPlayer fplayer : FPlayers . getInstance ( ) . getOnlinePlayers ( ) ) {
2014-12-08 00:12:52 +01:00
fplayer . msg ( TL . COMMAND_DESCRIPTION_CHANGES , myFaction . describeTo ( fplayer ) ) ;
2014-04-04 20:55:21 +02:00
fplayer . sendMessage ( myFaction . getDescription ( ) ) ; // players can inject "&" or "`" or "<i>" or whatever in their description; &k is particularly interesting looking
}
}
2015-01-22 00:58:33 +01:00
@Override
public TL getUsageTranslation ( ) {
return TL . COMMAND_DESCRIPTION_DESCRIPTION ;
}
2011-03-22 15:45:41 +01:00
}