/** * Copyright (C) 2012 t7seven7t */ package net.t7seven7t.swornguard.handlers; import net.dmulloy2.util.FormatUtil; import net.dmulloy2.util.TimeUtil; import net.dmulloy2.util.Util; import net.t7seven7t.swornguard.SwornGuard; import net.t7seven7t.swornguard.events.CheatEvent; import net.t7seven7t.swornguard.types.Permission; import net.t7seven7t.swornguard.types.PlayerData; import org.bukkit.ChatColor; import org.bukkit.entity.Player; /** * @author t7seven7t */ public class AutoModerator { private final SwornGuard plugin; public AutoModerator(final SwornGuard plugin) { this.plugin = plugin; } public void manageCheatEvent(CheatEvent event) { PlayerData data = plugin.getPlayerDataCache().getData(event.getPlayer()); String reason = null; switch (event.getCheat()) { case FLYING: reason = plugin.getConfig().getString("autoModKickReasonFly"); break; case SPAM: reason = plugin.getConfig().getString("autoModKickReasonSpam"); break; case SPEED: reason = plugin.getConfig().getString("autoModKickReasonSpeed", "Remove your speed hack."); break; case XRAY: reason = plugin.getConfig().getString("autoModKickReasonXray"); break; default: break; } if (reason != null) { Player player = plugin.getServer().getPlayerExact(event.getPlayerName()); if (player == null) return; player.kickPlayer(reason); data.setLastKick(System.currentTimeMillis()); data.setLastKicker("AutoModBot"); data.setLastKickReason(reason); plugin.getLogHandler().log("Player {0} was kicked by AutoModBot for: {1}", event.getPlayerName(), reason); for (Player player1 : Util.getOnlinePlayers()) { if (plugin.getPermissionHandler().hasPermission(player1, Permission.SHOW_CHEAT_REPORTS)) player1.sendMessage(ChatColor.YELLOW + "AutoModBot kicked " + event.getPlayerName() + " for " + reason); } data.getProfilerList().add(FormatUtil.format(plugin.getMessage("profiler_event"), TimeUtil.getLongDateCurr(), FormatUtil.format(plugin.getMessage("profiler_automodbot"), player.getName(), reason))); } } public boolean isOnlyModOnline() { for (Player player : Util.getOnlinePlayers()) { if (plugin.getPermissionHandler().hasPermission(player, Permission.SHOW_CHEAT_REPORTS)) return plugin.getConfig().getBoolean("autoModAlwaysEnabled"); } return true; } }