package me.asofold.bpl.simplyvanish.util; import me.asofold.bpl.simplyvanish.SimplyVanish; import me.asofold.bpl.simplyvanish.config.Settings; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Server; import org.bukkit.entity.Player; public class Panic { /** * Do online checking and also check settings if to continue. * @param player1 The player to be shown or hidden. * @param player2 * @param tag * @return true if to continue false if to abort. */ public static boolean checkInvolved(Player player1, Player player2, String tag, boolean noAbort){ boolean inconsistent = false; if (!Utils.checkOnline(player1, tag)) inconsistent = true; if (!Utils.checkOnline(player2, tag)) inconsistent = true; if (noAbort){ return true; } else if (inconsistent){ try{ player1.sendMessage(SimplyVanish.msgLabel+ChatColor.RED+"Warning: Could not use "+tag+" to player: "+player2.getName()); } catch (Throwable t){ } } return !inconsistent; // "true = continue = not inconsistent" } public static void onPanic(Settings settings, Player[] involved){ Server server = Bukkit.getServer(); if ( settings.panicKickAll){ for ( Player player : server.getOnlinePlayers()){ try{ player.kickPlayer(settings.panicKickMessage); } catch (Throwable t){ // ignore } } } else if (settings.panicKickInvolved){ for ( Player player : involved){ try{ player.kickPlayer(settings.panicKickMessage); } catch (Throwable t){ // ignore } } } try{ Utils.sendToTargets(settings.panicMessage, settings.panicMessageTargets); } catch ( Throwable t){ Utils.warn("[Panic] Failed to send to: "+settings.panicMessageTargets+" ("+t.getMessage()+")"); t.printStackTrace(); } if (settings.panicRunCommand && !"".equals(settings.panicCommand)){ try{ server.dispatchCommand(server.getConsoleSender(), settings.panicCommand); } catch (Throwable t){ Utils.warn("[Panic] Failed to dispathc command: "+settings.panicCommand+" ("+t.getMessage()+")"); t.printStackTrace(); } } } }