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
2019-08-24 19:18:50 +02:00
public CmdDescription ( ) {
super ( ) ;
this . aliases . add ( " desc " ) ;
this . aliases . add ( " description " ) ;
this . requiredArgs . add ( " desc " ) ;
2019-09-14 21:13:01 +02:00
this . requirements = new CommandRequirements . Builder ( Permission . DESCRIPTION )
. playerOnly ( )
. memberOnly ( )
. noErrorOnManyArgs ( )
. build ( ) ;
2019-08-24 19:18:50 +02:00
}
@Override
2019-09-14 21:13:01 +02:00
public void perform ( CommandContext context ) {
2019-08-24 19:18:50 +02:00
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
2019-09-14 21:13:01 +02:00
if ( ! context . payForCommand ( Conf . econCostDesc , TL . COMMAND_DESCRIPTION_TOCHANGE , TL . COMMAND_DESCRIPTION_FORCHANGE ) ) {
2019-08-24 19:18:50 +02:00
return ;
}
// 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.
2019-09-14 21:13:01 +02:00
context . faction . setDescription ( TextUtil . implode ( context . args , " " ) . replaceAll ( " % " , " " ) . replaceAll ( " (&([a-f0-9klmnor])) " , " & $2 " ) ) ;
2019-08-24 19:18:50 +02:00
if ( ! Conf . broadcastDescriptionChanges ) {
2019-09-14 21:13:01 +02:00
context . msg ( TL . COMMAND_DESCRIPTION_CHANGED , context . faction . describeTo ( context . fPlayer ) ) ;
context . sendMessage ( context . faction . getDescription ( ) ) ;
2019-08-24 19:18:50 +02:00
return ;
}
// Broadcast the description to everyone
for ( FPlayer fplayer : FPlayers . getInstance ( ) . getOnlinePlayers ( ) ) {
2019-09-14 21:13:01 +02:00
fplayer . msg ( TL . COMMAND_DESCRIPTION_CHANGES , context . faction . describeTo ( fplayer ) ) ;
fplayer . sendMessage ( context . faction . getDescription ( ) ) ; // players can inject "&" or "`" or "<i>" or whatever in their description; &k is particularly interesting looking
2019-08-24 19:18:50 +02:00
}
}
@Override
public TL getUsageTranslation ( ) {
return TL . COMMAND_DESCRIPTION_DESCRIPTION ;
}
2015-01-22 00:58:33 +01:00
2019-09-14 21:13:01 +02:00
}