2012-03-09 19:01:04 +00:00
package me.StevenLawson.TotalFreedomMod.Commands ;
import java.util.ArrayList ;
import java.util.List ;
2014-04-09 20:33:03 +00:00
import me.StevenLawson.TotalFreedomMod.TFM_AdminList ;
2014-04-14 19:11:41 +00:00
import me.StevenLawson.TotalFreedomMod.TFM_Ban ;
import me.StevenLawson.TotalFreedomMod.TFM_BanManager ;
2015-04-25 18:26:48 +00:00
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry ;
2014-06-29 10:09:03 +00:00
import me.StevenLawson.TotalFreedomMod.TFM_Player ;
2014-04-04 14:48:39 +00:00
import me.StevenLawson.TotalFreedomMod.TFM_PlayerList ;
2012-03-09 19:01:04 +00:00
import me.StevenLawson.TotalFreedomMod.TFM_Util ;
2014-08-27 09:40:25 +00:00
import me.StevenLawson.TotalFreedomMod.TFM_UuidManager ;
2014-11-29 19:16:00 +00:00
import org.apache.commons.lang3.StringUtils ;
2012-03-09 19:01:04 +00:00
import org.bukkit.command.Command ;
import org.bukkit.command.CommandSender ;
import org.bukkit.entity.Player ;
2015-09-06 14:42:02 +00:00
@CommandPermissions ( level = AdminLevel . SUPER , source = SourceType . BOTH , blockHostConsole = true )
@CommandParameters ( description = " Bans or unbans any player, even those who are not logged in anymore. " , usage = " /<command> <purge | <ban | unban> <username>> " )
2012-03-09 19:01:04 +00:00
public class Command_glist extends TFM_Command
{
@Override
public boolean run ( CommandSender sender , Player sender_p , Command cmd , String commandLabel , String [ ] args , boolean senderIsConsole )
{
2012-03-12 06:26:13 +00:00
if ( args . length < 1 )
2012-03-09 19:01:04 +00:00
{
return false ;
}
2012-11-24 01:22:52 +00:00
if ( args . length = = 1 )
2012-03-09 19:01:04 +00:00
{
2012-11-24 01:22:52 +00:00
if ( args [ 0 ] . equalsIgnoreCase ( " purge " ) )
2012-03-12 06:26:13 +00:00
{
2014-04-09 20:33:03 +00:00
if ( TFM_AdminList . isSeniorAdmin ( sender ) )
2012-12-09 03:42:29 +00:00
{
2014-05-19 17:32:25 +00:00
TFM_PlayerList . purgeAll ( ) ;
2014-05-13 15:11:13 +00:00
playerMsg ( " Purged playerbase " ) ;
2012-12-09 03:42:29 +00:00
}
else
{
2013-01-07 14:56:53 +00:00
playerMsg ( " Only Senior Admins may purge the userlist. " ) ;
2012-12-09 03:42:29 +00:00
}
2012-11-24 01:22:52 +00:00
return true ;
2012-03-12 06:26:13 +00:00
}
2012-11-24 01:22:52 +00:00
else
2012-03-12 06:26:13 +00:00
{
return false ;
}
2012-11-24 01:22:52 +00:00
}
2012-12-09 03:42:29 +00:00
else if ( args . length = = 2 )
2012-11-24 01:22:52 +00:00
{
2012-12-09 03:42:29 +00:00
String username ;
2014-04-23 14:23:50 +00:00
final List < String > ips = new ArrayList < String > ( ) ;
2012-03-12 06:26:13 +00:00
2014-04-26 11:55:24 +00:00
final Player player = getPlayer ( args [ 1 ] ) ;
2014-05-04 21:03:34 +00:00
2014-04-26 11:55:24 +00:00
if ( player = = null )
2012-12-09 03:42:29 +00:00
{
2014-08-27 09:40:25 +00:00
final TFM_Player entry = TFM_PlayerList . getEntry ( TFM_UuidManager . getUniqueId ( args [ 1 ] ) ) ;
2012-03-09 19:01:04 +00:00
2012-12-09 03:42:29 +00:00
if ( entry = = null )
{
2014-08-14 19:49:48 +00:00
playerMsg ( " Can't find that user. If target is not logged in, make sure that you spelled the name exactly. " ) ;
2012-12-09 03:42:29 +00:00
return true ;
}
2012-03-09 19:01:04 +00:00
2014-06-29 10:09:03 +00:00
username = entry . getLastLoginName ( ) ;
2014-04-23 14:23:50 +00:00
ips . addAll ( entry . getIps ( ) ) ;
2012-03-09 19:01:04 +00:00
}
2014-04-26 11:55:24 +00:00
else
{
username = player . getName ( ) ;
2014-08-27 09:40:25 +00:00
final TFM_Player entry = TFM_PlayerList . getEntry ( TFM_UuidManager . getUniqueId ( player ) ) ;
2014-08-26 16:23:48 +00:00
ips . addAll ( entry . getIps ( ) ) ;
2014-04-26 11:55:24 +00:00
}
2012-03-09 19:01:04 +00:00
2012-12-09 03:42:29 +00:00
String mode = args [ 0 ] . toLowerCase ( ) ;
if ( mode . equalsIgnoreCase ( " ban " ) )
{
2014-08-26 16:23:48 +00:00
TFM_Util . adminAction ( sender . getName ( ) , " Banning " + username + " and IPs: " + StringUtils . join ( ips , " , " ) , true ) ;
2012-03-12 06:26:13 +00:00
2014-08-26 16:23:48 +00:00
final Player target = getPlayer ( username , true ) ;
2014-04-26 11:55:24 +00:00
if ( target ! = null )
2012-12-09 03:42:29 +00:00
{
2014-08-27 09:40:25 +00:00
TFM_BanManager . addUuidBan ( new TFM_Ban ( TFM_UuidManager . getUniqueId ( target ) , target . getName ( ) ) ) ;
2015-04-25 18:26:48 +00:00
target . kickPlayer ( " You have been banned by " + sender . getName ( ) + " \ n If you think you have been banned wrongly, appeal here: " + TFM_ConfigEntry . SERVER_BAN_URL . getString ( ) ) ;
2012-12-09 03:42:29 +00:00
}
else
{
2014-08-27 09:40:25 +00:00
TFM_BanManager . addUuidBan ( new TFM_Ban ( TFM_UuidManager . getUniqueId ( username ) , username ) ) ;
2012-12-09 03:42:29 +00:00
}
2012-03-09 19:01:04 +00:00
2014-04-14 19:11:41 +00:00
for ( String ip : ips )
2012-12-09 03:42:29 +00:00
{
2014-05-19 17:32:25 +00:00
TFM_BanManager . addIpBan ( new TFM_Ban ( ip , username ) ) ;
2014-08-26 16:23:48 +00:00
TFM_BanManager . addIpBan ( new TFM_Ban ( TFM_Util . getFuzzyIp ( ip ) , username ) ) ;
2012-12-09 03:42:29 +00:00
}
}
2014-08-26 16:23:48 +00:00
else if ( mode . equalsIgnoreCase ( " unban " ) )
2012-11-24 01:22:52 +00:00
{
2014-08-26 16:23:48 +00:00
TFM_Util . adminAction ( sender . getName ( ) , " Unbanning " + username + " and IPs: " + StringUtils . join ( ips , " , " ) , true ) ;
2014-08-27 09:40:25 +00:00
TFM_BanManager . unbanUuid ( TFM_UuidManager . getUniqueId ( username ) ) ;
2014-04-14 19:11:41 +00:00
for ( String ip : ips )
2012-12-09 03:42:29 +00:00
{
2014-06-28 20:31:33 +00:00
2014-05-19 17:32:25 +00:00
TFM_BanManager . unbanIp ( ip ) ;
2014-06-28 20:31:33 +00:00
TFM_BanManager . unbanIp ( TFM_Util . getFuzzyIp ( ip ) ) ;
2012-12-09 03:42:29 +00:00
}
2012-03-09 19:01:04 +00:00
}
2012-11-24 01:22:52 +00:00
else
2012-03-09 19:01:04 +00:00
{
2012-12-09 03:42:29 +00:00
return false ;
2012-11-24 01:22:52 +00:00
}
2012-03-09 19:01:04 +00:00
2012-12-09 03:42:29 +00:00
return true ;
2012-03-09 19:01:04 +00:00
}
2012-12-09 03:42:29 +00:00
else
2012-03-09 19:01:04 +00:00
{
2012-12-09 03:42:29 +00:00
return false ;
2012-03-09 19:01:04 +00:00
}
}
}