TotalFreedomMod/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java
Paldiu 5c0f77c7c5 Removal of Lombok
Lombok implementation removal.

I have also gone through and replaced things with inline methods and variables, lambdas, and simplified loops down, removed unnecessary guard clauses, and overall cleaned up every single class. This took a long time, please do remember to follow proper naming conventions, don't include unnecessary guard clauses, follow exception rules and comment rules, and please PLEASE remember to use the DIAMOND OPERATOR rather than just inferring RAW TYPES!!!

Thank you!!
2020-12-25 14:46:43 -05:00

135 lines
4.1 KiB
Java

package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.player.FPlayer;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.BOTH, blockHostConsole = true)
@CommandParameters(description = "This is evil, and I never should have wrote it - blocks specified player's input.", usage = "/<command> <all | purge | <<partialname> on | off> [-q]>")
public class Command_lockup extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
boolean silent = (args[args.length - 1].equalsIgnoreCase("-q"));
if (args.length == 1)
{
if (args[0].equalsIgnoreCase("all"))
{
FUtil.adminAction(sender.getName(), "Locking up all players", true);
for (Player player : server.getOnlinePlayers())
{
startLockup(player);
}
msg("Locked up all players.");
}
else if (args[0].equalsIgnoreCase("purge"))
{
FUtil.adminAction(sender.getName(), "Unlocking all players", true);
for (Player player : server.getOnlinePlayers())
{
cancelLockup(player);
}
msg("Unlocked all players.");
}
else
{
return false;
}
}
else if (args.length == 2)
{
if (args[1].equalsIgnoreCase("on"))
{
final Player player = getPlayer(args[0]);
if (player == null)
{
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
return true;
}
if (!silent)
{
FUtil.adminAction(sender.getName(), "Locking up " + player.getName(), true);
}
startLockup(player);
msg("Locked up " + player.getName() + ".");
}
else if ("off".equals(args[1]))
{
final Player player = getPlayer(args[0]);
if (player == null)
{
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
return true;
}
if (!silent)
{
FUtil.adminAction(sender.getName(), "Unlocking " + player.getName(), true);
}
cancelLockup(player);
msg("Unlocked " + player.getName() + ".");
}
else
{
return false;
}
}
else
{
return false;
}
return true;
}
private void cancelLockup(FPlayer playerdata)
{
BukkitTask lockupScheduleId = playerdata.getLockupScheduleID();
if (lockupScheduleId != null)
{
lockupScheduleId.cancel();
playerdata.setLockedUp(false);
playerdata.setLockupScheduleId(null);
}
}
private void cancelLockup(final Player player)
{
cancelLockup(plugin.pl.getPlayer(player));
}
private void startLockup(final Player player)
{
final FPlayer playerdata = plugin.pl.getPlayer(player);
cancelLockup(playerdata);
playerdata.setLockedUp(true);
playerdata.setLockupScheduleId(new BukkitRunnable()
{
@Override
public void run()
{
if (player.isOnline())
{
player.openInventory(player.getInventory());
}
else
{
cancelLockup(playerdata);
}
}
}.runTaskTimer(plugin, 0L, 5L));
}
}