Advertisement
Guest User

Untitled

a guest
Apr 20th, 2018
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.60 KB | None | 0 0
  1. package me.com.devlucas.stackmobs;
  2.  
  3. import org.bukkit.Material;
  4. import org.bukkit.block.CreatureSpawner;
  5. import org.bukkit.enchantments.Enchantment;
  6. import org.bukkit.entity.Entity;
  7. import org.bukkit.entity.EntityType;
  8. import org.bukkit.entity.LivingEntity;
  9. import org.bukkit.entity.Player;
  10. import org.bukkit.event.EventHandler;
  11. import org.bukkit.event.EventPriority;
  12. import org.bukkit.event.Listener;
  13. import org.bukkit.event.entity.CreatureSpawnEvent;
  14. import org.bukkit.event.entity.EntityDeathEvent;
  15. import org.bukkit.event.player.PlayerInteractEvent;
  16. import org.bukkit.inventory.ItemStack;
  17.  
  18. public class Stackar implements Listener {
  19.  
  20. @EventHandler(priority = EventPriority.HIGHEST)
  21. public void aoNascer(CreatureSpawnEvent e) {
  22. if (e.getSpawnReason() != CreatureSpawnEvent.SpawnReason.SPAWNER) {
  23. e.setCancelled(false);
  24. return;
  25. }
  26.  
  27. for (Entity en : e.getEntity().getNearbyEntities(10, 10, 10)) {
  28. if (en.getType() == e.getEntityType()) {
  29. e.getEntity().remove();
  30. int atual = 1;
  31.  
  32. if (en.isCustomNameVisible()) {
  33. atual = Integer.parseInt(en.getCustomName().split(" ")[1].substring(1)) + 1;
  34. }
  35.  
  36. en.setCustomName("§c" + en.getType() + " x" + atual);
  37. en.setCustomNameVisible(true);
  38. return;
  39. }
  40. }
  41.  
  42. e.getEntity().setCustomName("§c" + e.getEntity().getType() + " x1");
  43. e.getEntity().setCustomNameVisible(true);
  44. }
  45.  
  46. @EventHandler(priority = EventPriority.HIGHEST)
  47. public void aoMatar(EntityDeathEvent e) {
  48. LivingEntity en = e.getEntity();
  49. if (en.isCustomNameVisible()) {
  50. if (en.getCustomName().startsWith("§c" + e.getEntity().getType() + "§c x")) {
  51. int x = Integer.parseInt(en.getCustomName().split(" ")[1].substring(1));
  52.  
  53. if (en.getKiller() instanceof Player) {
  54. Player p = en.getKiller();
  55. int plus = 1;
  56.  
  57. if (p.getItemInHand().getEnchantments().containsKey(Enchantment.LOOT_BONUS_MOBS)) {
  58. plus = p.getItemInHand().getEnchantmentLevel(Enchantment.LOOT_BONUS_MOBS);
  59. }
  60.  
  61. for (ItemStack is : e.getDrops()) {
  62. is.setAmount(is.getAmount() * plus * x);
  63. }
  64. } else {
  65. for (ItemStack is : e.getDrops()) {
  66. is.setAmount((is.getAmount()) * x);
  67. }
  68. }
  69. }
  70. }
  71. }
  72.  
  73. @SuppressWarnings("deprecation")
  74. @EventHandler
  75. public void aoInteragir(PlayerInteractEvent e) {
  76. if (e.getClickedBlock() == null) return;
  77. if (e.getItem() == null) return;
  78.  
  79. if (e.getClickedBlock().getState() instanceof CreatureSpawner) {
  80. e.setCancelled(true);
  81. final CreatureSpawner cs = (CreatureSpawner) e.getClickedBlock().getState();
  82.  
  83. if (e.getItem().getType() == Material.MONSTER_EGG) {
  84. cs.setSpawnedType(EntityType.fromId(e.getItem().getDurability()));
  85. cs.update(true);
  86. e.getPlayer().sendMessage("§cVocê alterou o spawner para " + cs.getSpawnedType());
  87.  
  88. } else if (e.getItem().getType() == Material.DRAGON_EGG) {
  89. e.getPlayer().sendMessage("§aVelocidade atual: " + cs.getDelay());
  90. e.getItem().setAmount(e.getItem().getAmount() - 1);
  91. if (e.getItem().getAmount() == 0) {
  92. e.getPlayer().setItemInHand(null);
  93. }
  94. e.getPlayer().updateInventory();
  95. }
  96. }
  97. }
  98.  
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement