package xyz.etztech.qol.commands; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import xyz.etztech.qol.EtzTechUtil; import xyz.etztech.qol.Lang; import xyz.etztech.qol.QoL; import java.util.Arrays; import java.util.List; public class WhitelistCommand implements CommandExecutor { private final List TRUE = Arrays.asList("on", "yes", "true"); private final List FALSE = Arrays.asList("off", "no", "false"); QoL plugin; public WhitelistCommand(QoL paramQoL) { this.plugin = paramQoL; } @Override public boolean onCommand(CommandSender commandSender, Command command, String s, String[] args) { if (!commandSender.hasPermission("qol.whitelist.command")) { EtzTechUtil.sms(commandSender, Lang.NO_PERMISSION.getDef()); return true; } if (args.length < 1) { EtzTechUtil.sms(commandSender, ChatColor.RED + "/whitelist on|off|yes|no|true|false"); return true; } Boolean enabled = parse(args[0]); if (enabled == null) { EtzTechUtil.sms(commandSender, ChatColor.RED + "/whitelist on|off|yes|no|true|false"); return true; } QoL.setWhitelist(enabled); EtzTechUtil.sms(commandSender, ChatColor.GREEN + "Whitelist mode: " + ChatColor.YELLOW + enabled); if (enabled) { for (Player player : Bukkit.getOnlinePlayers()) { if (!player.hasPermission("qol.whitelist.bypass")) { player.kickPlayer("Whitelist mode has been enabled. Please check back later."); } } } return true; } private Boolean parse(String bool) { if (TRUE.contains(bool)) { return true; } if (FALSE.contains(bool)) { return false; } return null; } }