Advertisement
BaneOfSmite

Untitled

Jan 7th, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.41 KB | None | 0 0
  1. package me.baneofsmite.twodonkeysgm;
  2.  
  3. import com.google.common.collect.Maps;
  4. import java.util.Map;
  5. import java.util.Random;
  6. import java.util.UUID;
  7. import org.apache.commons.lang3.tuple.Pair;
  8. import org.bukkit.Bukkit;
  9. import org.bukkit.ChatColor;
  10. import org.bukkit.Location;
  11. import org.bukkit.Material;
  12. import org.bukkit.OfflinePlayer;
  13. import org.bukkit.block.Block;
  14. import org.bukkit.block.BlockFace;
  15. import org.bukkit.block.Chest;
  16. import org.bukkit.entity.ArmorStand;
  17. import org.bukkit.entity.Entity;
  18. import org.bukkit.entity.EntityType;
  19. import org.bukkit.entity.ExperienceOrb;
  20. import org.bukkit.entity.Horse;
  21. import org.bukkit.entity.Item;
  22. import org.bukkit.entity.Player;
  23. import org.bukkit.event.EventHandler;
  24. import org.bukkit.event.EventPriority;
  25. import org.bukkit.event.Listener;
  26. import org.bukkit.event.block.BlockBreakEvent;
  27. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  28. import org.bukkit.event.entity.EntityDeathEvent;
  29. import org.bukkit.event.entity.ItemSpawnEvent;
  30. import org.bukkit.event.entity.PlayerDeathEvent;
  31. import org.bukkit.event.inventory.CraftItemEvent;
  32. import org.bukkit.event.inventory.PrepareItemCraftEvent;
  33. import org.bukkit.event.player.PlayerDropItemEvent;
  34. import org.bukkit.event.player.PlayerItemConsumeEvent;
  35. import org.bukkit.event.player.PlayerJoinEvent;
  36. import org.bukkit.event.vehicle.VehicleEnterEvent;
  37. import org.bukkit.inventory.CraftingInventory;
  38. import org.bukkit.inventory.ItemStack;
  39. import org.bukkit.inventory.meta.ItemMeta;
  40. import org.bukkit.potion.PotionEffect;
  41. import org.bukkit.potion.PotionEffectType;
  42. import org.bukkit.scheduler.BukkitRunnable;
  43. import org.bukkit.scoreboard.Team;
  44.  
  45. public class EventListener implements Listener {
  46. private final Main plugin;
  47.  
  48. public EventListener(Main plugin) {
  49. this.plugin = plugin;
  50. }
  51.  
  52. private final Map<UUID, Pair<Double, Integer>> scheduledComp = Maps.newHashMap();
  53.  
  54. private void handle(Player player, double maxHealthToAdd, int regenTicks) {
  55. player.setMaxHealth(player.getMaxHealth() + maxHealthToAdd);
  56. int playerRegenTicks = regenTicks;
  57. for (PotionEffect effect : player.getActivePotionEffects()) {
  58. if (effect.getType() == PotionEffectType.REGENERATION) {
  59. playerRegenTicks += effect.getDuration();
  60. player.removePotionEffect(PotionEffectType.REGENERATION);
  61. }
  62. }
  63. player.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, playerRegenTicks, 0, false, true), true);
  64. }
  65.  
  66. @EventHandler
  67. public void on(EntityDeathEvent event) {
  68. Entity ent = event.getEntity();
  69. if (plugin.getConfig().getBoolean("cutclean")) {
  70. if (ent.getType() == EntityType.COW) {
  71. event.getDrops().clear();
  72. event.getDrops().add(new ItemStack(Material.LEATHER, 1));
  73. event.getDrops().add(new ItemStack(Material.COOKED_BEEF, 3));
  74. } else if (ent.getType() == EntityType.RABBIT) {
  75. event.getDrops().clear();
  76. Random rand = new Random();
  77. if (rand.nextInt(100) < 50) {
  78. event.getDrops().add(new ItemStack(Material.RABBIT_HIDE, 1));
  79. }
  80. event.getDrops().add(new ItemStack(Material.COOKED_RABBIT, 1));
  81. if (rand.nextInt(100) < 30) {
  82. event.getDrops().add(new ItemStack(Material.RABBIT_FOOT, 1));
  83. }
  84. } else if (ent.getType() == EntityType.SHEEP) {
  85. event.getDrops().clear();
  86. event.getDrops().add(new ItemStack(Material.COOKED_MUTTON, 3));
  87. } else if (ent.getType() == EntityType.PIG) {
  88. event.getDrops().clear();
  89. event.getDrops().add(new ItemStack(Material.GRILLED_PORK, 3));
  90. } else if (ent.getType() == EntityType.CHICKEN) {
  91. event.getDrops().clear();
  92. event.getDrops().add(new ItemStack(Material.COOKED_CHICKEN, 1));
  93. event.getDrops().add(new ItemStack(Material.FEATHER, 2));
  94. } else if (ent.getType() == EntityType.MUSHROOM_COW) {
  95. event.getDrops().clear();
  96. event.getDrops().add(new ItemStack(Material.LEATHER, 1));
  97. event.getDrops().add(new ItemStack(Material.COOKED_BEEF, 3));
  98. }
  99. }
  100. }
  101.  
  102. @EventHandler
  103. public void on(BlockBreakEvent e) {
  104. Block block = e.getBlock();
  105. Material blocktypething = block.getType();
  106. Player p = e.getPlayer();
  107. if (plugin.getConfig().getBoolean("cutclean")) {
  108. if ((block.getType() == Material.IRON_ORE) && ((p.getItemInHand().getType() == Material.IRON_PICKAXE)
  109. || (p.getItemInHand().getType() == Material.DIAMOND_PICKAXE)
  110. || (p.getItemInHand().getType() == Material.STONE_PICKAXE))) {
  111. ((ExperienceOrb) e.getBlock().getWorld().spawn(block.getLocation(), ExperienceOrb.class))
  112. .setExperience(1);
  113. }
  114. if ((block.getType() == Material.GOLD_ORE) && ((p.getItemInHand().getType() == Material.IRON_PICKAXE)
  115. || (p.getItemInHand().getType() == Material.DIAMOND_PICKAXE))) {
  116. ((ExperienceOrb) e.getBlock().getWorld().spawn(block.getLocation(), ExperienceOrb.class))
  117. .setExperience(1);
  118. }
  119. }
  120. if (plugin.getConfig().getBoolean("veinminer")) {
  121. if (p.isSneaking()) {
  122. if ((block.getType() == Material.IRON_ORE) || (block.getType() == Material.GOLD_ORE)
  123. || (block.getType() == Material.COAL_ORE) || (block.getType() == Material.DIAMOND_ORE)
  124. || (block.getType() == Material.EMERALD_ORE) || (block.getType() == Material.LAPIS_ORE)
  125. || (block.getType() == Material.REDSTONE_ORE)
  126. || (block.getType() == Material.GLOWING_REDSTONE_ORE)
  127. || (block.getType() == Material.QUARTZ_ORE)) {
  128. if (((block.getType() == Material.COAL_ORE) || (block.getType() == Material.QUARTZ_ORE))
  129. && (p.getItemInHand().getType() != Material.IRON_PICKAXE)
  130. && (p.getItemInHand().getType() != Material.DIAMOND_PICKAXE)
  131. && (p.getItemInHand().getType() != Material.STONE_PICKAXE)
  132. && (p.getItemInHand().getType() != Material.WOOD_PICKAXE)
  133. && (p.getItemInHand().getType() != Material.GOLD_PICKAXE)) {
  134. return;
  135. }
  136. if (((block.getType() == Material.LAPIS_ORE) || (block.getType() == Material.IRON_ORE))
  137. && (p.getItemInHand().getType() != Material.IRON_PICKAXE)
  138. && (p.getItemInHand().getType() != Material.DIAMOND_PICKAXE)
  139. && (p.getItemInHand().getType() != Material.STONE_PICKAXE)) {
  140. return;
  141. }
  142. if (((block.getType() == Material.DIAMOND_ORE) || (block.getType() == Material.EMERALD_ORE)
  143. || (block.getType() == Material.REDSTONE_ORE)
  144. || (block.getType() == Material.GLOWING_REDSTONE_ORE)
  145. || (block.getType() == Material.GOLD_ORE))
  146. && (p.getItemInHand().getType() != Material.IRON_PICKAXE)
  147. && (p.getItemInHand().getType() != Material.DIAMOND_PICKAXE)) {
  148. return;
  149. }
  150. for (int x = -1; x <= 1; x++) {
  151. for (int y = -1; y <= 1; y++) {
  152. for (int z = -1; z <= 1; z++) {
  153. Block vmi = e.getBlock().getWorld().getBlockAt(e.getBlock().getX() + x,
  154. e.getBlock().getY() + y, e.getBlock().getZ() + z);
  155. if ((blocktypething == Material.REDSTONE_ORE)
  156. || (blocktypething == Material.GLOWING_REDSTONE_ORE)) {
  157. if ((vmi.getType() == Material.REDSTONE_ORE)
  158. || (vmi.getType() == Material.GLOWING_REDSTONE_ORE)) {
  159. vmi.breakNaturally();
  160. ((ExperienceOrb) e.getBlock().getWorld().spawn(vmi.getLocation(),
  161. ExperienceOrb.class)).setExperience(3);
  162. }
  163. } else if (vmi.getType() == Material.COAL_ORE) {
  164. ((ExperienceOrb) e.getBlock().getWorld().spawn(vmi.getLocation(),
  165. ExperienceOrb.class)).setExperience(1);
  166. } else if (((vmi.getType() == Material.IRON_ORE)
  167. || (vmi.getType() == Material.GOLD_ORE))
  168. && (plugin.getConfig().getBoolean("cutclean"))) {
  169. ((ExperienceOrb) e.getBlock().getWorld().spawn(vmi.getLocation(),
  170. ExperienceOrb.class)).setExperience(1);
  171. } else if ((vmi.getType() == Material.LAPIS_ORE)
  172. || (vmi.getType() == Material.QUARTZ_ORE)) {
  173. ((ExperienceOrb) e.getBlock().getWorld().spawn(vmi.getLocation(),
  174. ExperienceOrb.class)).setExperience(3);
  175. } else if ((vmi.getType() == Material.EMERALD_ORE)
  176. || (vmi.getType() == Material.DIAMOND_ORE)) {
  177. ((ExperienceOrb) e.getBlock().getWorld().spawn(vmi.getLocation(),
  178. ExperienceOrb.class)).setExperience(5);
  179. }
  180. if (blocktypething == Material.COAL_ORE) {
  181. if (vmi.getType() == Material.COAL_ORE) {
  182. vmi.breakNaturally();
  183. }
  184. } else if (blocktypething == Material.LAPIS_ORE) {
  185. if (vmi.getType() == Material.LAPIS_ORE) {
  186. vmi.breakNaturally();
  187. }
  188. } else if (blocktypething == Material.DIAMOND_ORE) {
  189. if (vmi.getType() == Material.DIAMOND_ORE) {
  190. if ((plugin.getConfig().getBoolean("blooddiamonds"))
  191. && (p.getHealth() != 0.0D)) {
  192. p.setHealth(p.getHealth() - 1.0D);
  193. }
  194. vmi.breakNaturally();
  195. }
  196. } else if (blocktypething == Material.EMERALD_ORE) {
  197. if (vmi.getType() == Material.EMERALD_ORE) {
  198. vmi.breakNaturally();
  199. }
  200. } else if (blocktypething == Material.QUARTZ_ORE) {
  201. if (vmi.getType() == Material.QUARTZ_ORE) {
  202. vmi.breakNaturally();
  203. }
  204. } else if ((blocktypething == Material.IRON_ORE)
  205. && (vmi.getType() == Material.IRON_ORE)) {
  206. vmi.breakNaturally();
  207. } else if ((blocktypething == Material.GOLD_ORE)
  208. && (vmi.getType() == Material.GOLD_ORE)) {
  209. vmi.breakNaturally();
  210. } else if ((blocktypething == Material.IRON_ORE)
  211. && (vmi.getType() == Material.IRON_ORE)) {
  212. vmi.breakNaturally();
  213. }
  214. }
  215. }
  216. }
  217. }
  218. } else {
  219. if ((plugin.getConfig().getBoolean("blooddiamonds")) && (block.getType() == Material.DIAMOND_ORE)) {
  220. if ((p.getItemInHand().getType() != Material.IRON_PICKAXE)
  221. && (p.getItemInHand().getType() != Material.DIAMOND_PICKAXE)) {
  222. return;
  223. }
  224. if (p.getHealth() != 0.0D) {
  225. p.setHealth(p.getHealth() - 1.0D);
  226. }
  227. }
  228. if (plugin.getConfig().getBoolean("barebones")) {
  229. if (block.getType() == Material.DIAMOND_ORE) {
  230. if ((p.getItemInHand().getType() != Material.IRON_PICKAXE)
  231. && (p.getItemInHand().getType() != Material.DIAMOND_PICKAXE)) {
  232. return;
  233. }
  234. e.setExpToDrop(0);
  235. ((ExperienceOrb) e.getBlock().getWorld().spawn(block.getLocation(), ExperienceOrb.class))
  236. .setExperience(1);
  237. }
  238. if (block.getType() == Material.GOLD_ORE) {
  239. if ((p.getItemInHand().getType() != Material.IRON_PICKAXE)
  240. && (p.getItemInHand().getType() != Material.DIAMOND_PICKAXE)) {
  241. return;
  242. }
  243. ((ExperienceOrb) e.getBlock().getWorld().spawn(block.getLocation(), ExperienceOrb.class))
  244. .setExperience(1);
  245. }
  246. }
  247. }
  248. } else {
  249. if ((plugin.getConfig().getBoolean("barebones")) && (block.getType() == Material.DIAMOND_ORE)) {
  250. if ((p.getItemInHand().getType() != Material.IRON_PICKAXE)
  251. && (p.getItemInHand().getType() != Material.DIAMOND_PICKAXE)) {
  252. return;
  253. }
  254. e.setExpToDrop(0);
  255. ((ExperienceOrb) e.getBlock().getWorld().spawn(block.getLocation(), ExperienceOrb.class))
  256. .setExperience(1);
  257. }
  258. if ((plugin.getConfig().getBoolean("blooddiamonds")) && (block.getType() == Material.DIAMOND_ORE)) {
  259. if ((p.getItemInHand().getType() != Material.IRON_PICKAXE)
  260. && (p.getItemInHand().getType() != Material.DIAMOND_PICKAXE)) {
  261. return;
  262. }
  263. if (p.getHealth() != 0.0D) {
  264. p.setHealth(p.getHealth() - 1.0D);
  265. }
  266. }
  267. }
  268. }
  269.  
  270. @EventHandler
  271. public void On(PlayerDropItemEvent e) {
  272. if ((e.getItemDrop().getItemStack().getType() == Material.DIAMOND)
  273. && (plugin.getConfig().getBoolean("barebones"))) {
  274. ItemStack i = e.getItemDrop().getItemStack();
  275. ItemMeta im = i.getItemMeta();
  276. im.setDisplayName(ChatColor.RED + "DiamondCode1112");
  277. i.setItemMeta(im);
  278. }
  279. }
  280.  
  281. @EventHandler
  282. public void on(ItemSpawnEvent e) {
  283. Item ei = e.getEntity();
  284. Material em = ei.getItemStack().getType();
  285. if (plugin.getConfig().getBoolean("cutclean")) {
  286. if (em == Material.IRON_ORE) {
  287. ei.getItemStack().setType(Material.IRON_INGOT);
  288. }
  289. if (plugin.getConfig().getBoolean("barebones")) {
  290. if (em == Material.GOLD_ORE) {
  291. ei.getItemStack().setType(Material.IRON_INGOT);
  292. }
  293. if (em == Material.DIAMOND) {
  294. ei.getItemStack().setType(Material.IRON_INGOT);
  295. }
  296. } else if (em == Material.GOLD_ORE) {
  297. ei.getItemStack().setType(Material.GOLD_INGOT);
  298. }
  299. } else if (plugin.getConfig().getBoolean("barebones")) {
  300. if (em == Material.GOLD_ORE) {
  301. ei.getItemStack().setType(Material.IRON_INGOT);
  302. }
  303. if (em == Material.DIAMOND) {
  304. ei.getItemStack().setType(Material.IRON_INGOT);
  305. }
  306. }
  307. if ((ei.getItemStack().hasItemMeta()) && (ei.getItemStack().getItemMeta().hasDisplayName())
  308. && (ei.getItemStack().getItemMeta().getDisplayName().equals(ChatColor.RED + "DiamondCode1112"))) {
  309. ItemStack i = ei.getItemStack();
  310. ItemMeta im = i.getItemMeta();
  311. im.setDisplayName(null);
  312. i.setItemMeta(im);
  313. ei.getItemStack().setType(Material.DIAMOND);
  314. }
  315. }
  316.  
  317. @EventHandler
  318. public void onMount(VehicleEnterEvent e) {
  319. if (plugin.getConfig().getBoolean("krenzinator")) {
  320. if (((e.getVehicle() instanceof Horse)) && ((e.getEntered() instanceof Player))) {
  321. Horse horse = (Horse) e.getVehicle();
  322. if (horse.getVariant().equals(Horse.Variant.DONKEY)) {
  323. return;
  324. }
  325. ((Player) e.getEntered())
  326. .sendMessage(Main.getPrefix() + ChatColor.GRAY + " You can't mount horses in this gamemode!");
  327. e.setCancelled(true);
  328. }
  329. }
  330. }
  331.  
  332. @EventHandler(priority = EventPriority.HIGHEST)
  333. public void on(PlayerDeathEvent e) {
  334. final Player player = e.getEntity();
  335. Player killer = player.getKiller();
  336. double maxHealth = player.getMaxHealth();
  337. Team team = Bukkit.getScoreboardManager().getMainScoreboard().getEntryTeam(player.getName());
  338. if (plugin.getConfig().getBoolean("krenzinator")) {
  339. if ((player.getName().equals("kacperrutka26")) || (player.getName().equals("SergeantGnome"))) {
  340. ItemStack diamonds = new ItemStack(Material.DIAMOND, 10);
  341. e.getDrops().add(diamonds);
  342. }
  343. }
  344. if (plugin.getConfig().getBoolean("compensation")) {
  345. if (team != null) {
  346. team.removeEntry(player.getName());
  347. double maxHealthToAdd = maxHealth / team.getSize();
  348. int regenTicks = (int) (maxHealthToAdd * 50.0D);
  349. for (String teammate : team.getEntries()) {
  350. OfflinePlayer playeroffline = Bukkit.getOfflinePlayer(teammate);
  351. Player p = playeroffline.getPlayer();
  352. if (p == null) {
  353. UUID uuid = playeroffline.getUniqueId();
  354. if (this.scheduledComp.containsKey(uuid)) {
  355. Pair<Double, Integer> sch = (Pair) this.scheduledComp.get(uuid);
  356. this.scheduledComp.put(uuid,
  357. Pair.of(Double.valueOf(maxHealthToAdd + ((Double) sch.getLeft()).doubleValue()),
  358. Integer.valueOf(regenTicks + ((Integer) sch.getRight()).intValue())));
  359. } else {
  360. this.scheduledComp.put(uuid,
  361. Pair.of(Double.valueOf(maxHealthToAdd), Integer.valueOf(regenTicks)));
  362. }
  363. } else {
  364. handle(p, maxHealthToAdd, regenTicks);
  365. }
  366. }
  367. }
  368. player.setMaxHealth(20.0D);
  369. }
  370. if (plugin.getConfig().getBoolean("barebones")) {
  371. for (ItemStack i : e.getDrops()) {
  372. if (i.getType() == Material.DIAMOND) {
  373. ItemMeta im = i.getItemMeta();
  374. im.setDisplayName(ChatColor.RED + "DiamondCode1112");
  375. i.setItemMeta(im);
  376. }
  377. }
  378. ItemStack bbd = new ItemStack(Material.DIAMOND, 1);
  379. ItemMeta bbm = bbd.getItemMeta();
  380. bbm.setDisplayName(ChatColor.RED + "DiamondCode1112");
  381. bbd.setItemMeta(bbm);
  382. e.getDrops().add(new ItemStack(Material.ARROW, 32));
  383. e.getDrops().add(new ItemStack(Material.GOLDEN_APPLE));
  384. e.getDrops().add(bbd);
  385. e.getDrops().add(new ItemStack(Material.STRING, 2));
  386. }
  387. if (plugin.getConfig().getBoolean("timebomb")) {
  388. final Location loc = player.getLocation().clone();
  389.  
  390. if (loc.getWorld().getName().equals("world")) {
  391. return;
  392. }
  393.  
  394. Block block = loc.getBlock();
  395.  
  396. block = block.getRelative(BlockFace.DOWN);
  397. block.setType(Material.CHEST);
  398.  
  399. Chest chest = (Chest) block.getState();
  400.  
  401. block = block.getRelative(BlockFace.NORTH);
  402. block.setType(Material.CHEST);
  403.  
  404. for (ItemStack item : e.getDrops()) {
  405. if (item == null || item.getType() == Material.AIR) {
  406. continue;
  407. }
  408.  
  409. chest.getInventory().addItem(item);
  410. }
  411. if (plugin.getConfig().getBoolean("enchanteddeath")) {
  412. if (killer != null) {
  413. if (player != killer) {
  414. ItemStack enchanteddeath = new ItemStack(Material.ENCHANTMENT_TABLE, 1);
  415. chest.getInventory().addItem(enchanteddeath);
  416. }
  417. }
  418. }
  419. e.getDrops().clear();
  420. final ArmorStand stand = player.getWorld().spawn(chest.getLocation().clone().add(0.5, 1, 0),
  421. ArmorStand.class);
  422. stand.setCustomNameVisible(true);
  423. stand.setSmall(true);
  424. stand.setGravity(false);
  425. stand.setVisible(false);
  426. stand.setMarker(true);
  427. new BukkitRunnable() {
  428. private int time = 31; // add one for countdown.
  429.  
  430. public void run() {
  431. time--;
  432. if (time == 0) {
  433. Bukkit.getServer().broadcastMessage(Main.getPrefix() + " " + ChatColor.RED + player.getName()
  434. + ChatColor.GRAY + "'s §fcorpse has exploded!");
  435. loc.getBlock().setType(Material.AIR);
  436. loc.getWorld().createExplosion(loc.getBlockX() + 0.5, loc.getBlockY() + 0.5,
  437. loc.getBlockZ() + 0.5, 10, false, true);
  438. loc.getWorld().strikeLightning(loc); // Using actual lightning to kill the items.
  439. stand.remove();
  440. cancel();
  441. return;
  442. } else if (time == 1) {
  443. stand.setCustomName("§4" + time + "s");
  444. } else if (time == 2) {
  445. stand.setCustomName("§c" + time + "s");
  446. } else if (time == 3) {
  447. stand.setCustomName("§6" + time + "s");
  448. } else if (time <= 15) {
  449. stand.setCustomName("§e" + time + "s");
  450. } else {
  451. stand.setCustomName("§a" + time + "s");
  452. }
  453. }
  454. }.runTaskTimer(plugin, 0, 20);
  455.  
  456. } else if (plugin.getConfig().getBoolean("enchanteddeath")) {
  457. if (killer == null) {
  458. return;
  459. }
  460.  
  461. if (player == killer) {
  462. return;
  463. }
  464. e.getDrops().add(new ItemStack(Material.ENCHANTMENT_TABLE, 1));
  465. }
  466. }
  467.  
  468. @EventHandler(priority = EventPriority.HIGH)
  469. public void death(EntityDamageByEntityEvent event) {
  470. if (plugin.getConfig().getBoolean("krenzinator")) {
  471. if (event.getDamager().getType().equals(EntityType.EGG)) {
  472. event.setDamage(1.0D);
  473. }
  474. }
  475. }
  476.  
  477. @EventHandler
  478. public void on(CraftItemEvent event) {
  479. if (plugin.getConfig().getBoolean("barebones")) {
  480. Material cannott = event.getRecipe().getResult().getType();
  481. if ((cannott == Material.ENCHANTMENT_TABLE) || (cannott == Material.GOLDEN_APPLE)
  482. || (cannott == Material.ANVIL)) {
  483. event.setCancelled(true);
  484. event.getRecipe().getResult().setType(Material.AIR);
  485. }
  486. }
  487. if (plugin.getConfig().getBoolean("krenzinator")) {
  488. if (event.getCurrentItem().getType().equals(Material.DIAMOND_SWORD)) {
  489. event.getWhoClicked().damage(2.0D);
  490. }
  491. }
  492. }
  493.  
  494. @EventHandler
  495. public void on(PlayerItemConsumeEvent event) {
  496. Player player = event.getPlayer();
  497. ItemStack item = event.getItem();
  498. if ((plugin.getConfig().getBoolean("compensation")) && (item.getType() == Material.GOLDEN_APPLE)) {
  499. double health = player.getMaxHealth() / 5.0D;
  500. int hearts = (int) health;
  501. player.setHealth(player.getHealth() + health - hearts);
  502. player.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, hearts * 25, 1), true);
  503. }
  504. }
  505.  
  506. @EventHandler
  507. public void on(PlayerJoinEvent event) {
  508. Player player = event.getPlayer();
  509. UUID uuid = player.getUniqueId();
  510. if (!this.scheduledComp.containsKey(uuid)) {
  511. return;
  512. }
  513. if (plugin.getConfig().getBoolean("compensation")) {
  514. Pair<Double, Integer> scheduled = (Pair) this.scheduledComp.get(uuid);
  515. handle(player, ((Double) scheduled.getLeft()).doubleValue(), ((Integer) scheduled.getRight()).intValue());
  516. }
  517. this.scheduledComp.remove(uuid);
  518. }
  519.  
  520. @EventHandler
  521. public void on(PrepareItemCraftEvent event) {
  522. CraftingInventory inv = event.getInventory();
  523. ItemStack item = inv.getResult();
  524. if (plugin.getConfig().getBoolean("compensation")) {
  525. if (item == null) {
  526. return;
  527. }
  528. if (item.getType() != Material.ARROW) {
  529. return;
  530. }
  531. inv.getResult().setAmount(item.getAmount() * 4);
  532. }
  533. if (plugin.getConfig().getBoolean("enchanteddeath")) {
  534. if (item.getType() == Material.ENCHANTMENT_TABLE) {
  535. inv.setResult(new ItemStack(Material.AIR));
  536. }
  537. }
  538. }
  539. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement