2016-03-02 19:28:01 +00:00
package me.totalfreedom.totalfreedommod.command ;
2012-12-06 09:32:08 +00:00
2023-04-10 06:18:06 +00:00
import me.totalfreedom.totalfreedommod.command.handling.CommandParameters ;
import me.totalfreedom.totalfreedommod.command.handling.CommandPermissions ;
import me.totalfreedom.totalfreedommod.command.handling.FreedomCommand ;
import me.totalfreedom.totalfreedommod.command.handling.SourceType ;
2015-10-19 17:43:46 +00:00
import me.totalfreedom.totalfreedommod.player.FPlayer ;
2021-06-17 12:56:52 +00:00
import me.totalfreedom.totalfreedommod.punishments.Punishment ;
import me.totalfreedom.totalfreedommod.punishments.PunishmentType ;
2015-10-19 17:43:46 +00:00
import me.totalfreedom.totalfreedommod.util.FUtil ;
2023-03-28 00:42:43 +00:00
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder ;
2012-12-06 09:32:08 +00:00
import org.bukkit.command.Command ;
import org.bukkit.command.CommandSender ;
import org.bukkit.entity.Player ;
2023-03-29 05:46:32 +00:00
@CommandPermissions ( permission = " blockcmd " , source = SourceType . BOTH )
2020-03-30 23:43:57 +00:00
@CommandParameters ( description = " Block all commands for everyone on the server, or a specific player. " , usage = " /<command> <-a | purge | <player>> " , aliases = " blockcommands,blockcommand,bc,bcmd " )
2015-10-19 17:43:46 +00:00
public class Command_blockcmd extends FreedomCommand
2012-12-06 09:32:08 +00:00
{
2015-11-22 18:26:47 +00:00
2012-12-06 09:32:08 +00:00
@Override
2015-11-22 18:26:47 +00:00
public boolean run ( CommandSender sender , Player playerSender , Command cmd , String commandLabel , String [ ] args , boolean senderIsConsole )
2012-12-06 09:32:08 +00:00
{
2012-12-08 01:01:52 +00:00
if ( args . length ! = 1 )
{
2012-12-06 09:32:08 +00:00
return false ;
}
2016-05-12 19:40:39 +00:00
if ( args [ 0 ] . equals ( " purge " ) )
2013-01-07 14:56:53 +00:00
{
2020-12-04 00:28:53 +00:00
FUtil . adminAction ( sender . getName ( ) , " Unblocking commands for all players " , true ) ;
2013-01-07 14:56:53 +00:00
int counter = 0 ;
2013-08-14 14:01:42 +00:00
for ( Player player : server . getOnlinePlayers ( ) )
2013-01-07 14:56:53 +00:00
{
2015-10-19 17:43:46 +00:00
FPlayer playerdata = plugin . pl . getPlayer ( player ) ;
2013-01-07 14:56:53 +00:00
if ( playerdata . allCommandsBlocked ( ) )
{
counter + = 1 ;
playerdata . setCommandsBlocked ( false ) ;
}
}
2023-03-28 00:42:43 +00:00
msgNew ( " Unblocked commands for <count> players. " , Placeholder . unparsed ( " count " , String . valueOf ( counter ) ) ) ;
2013-01-07 14:56:53 +00:00
return true ;
}
2016-05-12 19:40:39 +00:00
if ( args [ 0 ] . equals ( " -a " ) )
{
2020-12-04 00:28:53 +00:00
FUtil . adminAction ( sender . getName ( ) , " Blocking commands for all non-admins " , true ) ;
2016-05-12 19:40:39 +00:00
int counter = 0 ;
for ( Player player : server . getOnlinePlayers ( ) )
{
2020-12-04 00:28:53 +00:00
if ( isAdmin ( player ) )
2016-05-12 19:40:39 +00:00
{
continue ;
}
counter + = 1 ;
plugin . pl . getPlayer ( player ) . setCommandsBlocked ( true ) ;
2023-03-28 00:42:43 +00:00
msgNew ( player , " <red>Your commands have been blocked by an admin. " ) ;
2016-05-12 19:40:39 +00:00
}
2023-03-28 00:42:43 +00:00
msgNew ( " Blocked commands for <count> players. " , Placeholder . unparsed ( " count " , String . valueOf ( counter ) ) ) ;
2016-05-12 19:40:39 +00:00
return true ;
}
2014-04-26 11:55:24 +00:00
final Player player = getPlayer ( args [ 0 ] ) ;
2014-05-04 21:03:34 +00:00
2014-04-26 11:55:24 +00:00
if ( player = = null )
2012-12-06 09:32:08 +00:00
{
2023-03-26 23:13:05 +00:00
msg ( PLAYER_NOT_FOUND ) ;
2013-01-07 14:56:53 +00:00
return true ;
}
2020-12-04 00:28:53 +00:00
if ( isAdmin ( player ) )
2013-01-07 14:56:53 +00:00
{
2023-03-28 00:42:43 +00:00
msgNew ( " <player> is an admin, and cannot have their commands blocked. " , Placeholder . unparsed ( " player " , player . getName ( ) ) ) ;
2012-12-06 09:32:08 +00:00
return true ;
}
2015-10-19 17:43:46 +00:00
FPlayer playerdata = plugin . pl . getPlayer ( player ) ;
2020-07-25 03:24:14 +00:00
if ( ! playerdata . allCommandsBlocked ( ) )
{
2020-12-04 00:28:53 +00:00
FUtil . adminAction ( sender . getName ( ) , " Blocking all commands for " + player . getName ( ) , true ) ;
2021-06-17 12:56:52 +00:00
playerdata . setCommandsBlocked ( true ) ;
2023-03-28 00:42:43 +00:00
msgNew ( " Blocked commands for <player>. " , Placeholder . unparsed ( " player " , player . getName ( ) ) ) ;
2021-06-17 12:56:52 +00:00
plugin . pul . logPunishment ( new Punishment ( player . getName ( ) , FUtil . getIp ( player ) , sender . getName ( ) , PunishmentType . BLOCKCMD , null ) ) ;
2020-07-25 03:24:14 +00:00
}
else
{
2023-03-28 00:42:43 +00:00
msgNew ( " <red>That player's commands are already blocked. " ) ;
2020-07-25 03:24:14 +00:00
}
2012-12-06 09:32:08 +00:00
return true ;
}
2020-07-25 03:24:14 +00:00
}