Advertisement
Maniek2341

Untitled

Jan 22nd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.72 KB | None | 0 0
  1. package me.maniek.drop.listeners;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Collection;
  5. import java.util.List;
  6. import java.util.Random;
  7.  
  8. import org.bukkit.ChatColor;
  9. import org.bukkit.GameMode;
  10. import org.bukkit.Material;
  11. import org.bukkit.block.Block;
  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.block.BlockBreakEvent;
  17. import org.bukkit.inventory.ItemStack;
  18.  
  19. import me.maniek.drop.objects.Drop;
  20. import me.maniek.drop.objects.utils.DropUtils;
  21.  
  22. public class BlockBreakListener implements Listener {
  23.  
  24. @SuppressWarnings("deprecation")
  25. @EventHandler(priority = EventPriority.HIGHEST)
  26. public static void onBreak(BlockBreakEvent e) {
  27. if (e.isCancelled()) return;
  28.  
  29. Player p = e.getPlayer();
  30. if (p.getGameMode() == GameMode.SURVIVAL) {
  31. Block b = e.getBlock();
  32. if (b.getType() == Material.GOLD_ORE || b.getType() == Material.DIAMOND_ORE || b.getType() == Material.EMERALD_ORE
  33. || b.getType() == Material.IRON_ORE || b.getType() == Material.REDSTONE_ORE || b.getType() == Material.GLOWING_REDSTONE_ORE) {
  34. b.setType(Material.COBBLESTONE);
  35. e.getPlayer().sendMessage("§7Rudy dropia tylko ze stona");
  36. }
  37. if (b.getType() == Material.STONE && b.getData() == 0) {
  38. Collection<ItemStack> drops = b.getDrops();
  39. List<ItemStack> itemsToDrop = new ArrayList<ItemStack>();
  40. for (Drop d : DropUtils.getDrops()) {
  41. Random rand = new Random();
  42. int luck = rand.nextInt(101);
  43. if (luck > d.getSzansa()) {
  44. continue;
  45. }
  46. if (b.getLocation().getBlockY() > d.getMinY()) {
  47. continue;
  48. }
  49. int ilosc = rand.nextInt(d.getIlosc()) + 1;
  50. ItemStack is = new ItemStack(d.getType());
  51. is.setDurability(d.getData());
  52. is.setAmount(ilosc);
  53. itemsToDrop.add(is);
  54. e.getPlayer().sendMessage("§7Wydropiles " + ChatColor.translateAlternateColorCodes('&', d.getDname()) + " §7x§6" + ilosc);
  55. }
  56. for (ItemStack is : itemsToDrop) {
  57. if (canGet(is.getType(), p, is.getDurability())) {
  58. p.getInventory().addItem(is);
  59. } else {
  60. b.getWorld().dropItemNaturally(b.getLocation(), is);
  61. }
  62. }
  63. for(ItemStack ii : drops) {
  64. if(canGet(ii.getType(), p, ii.getDurability())) p.getInventory().addItem(ii);
  65. else b.getWorld().dropItemNaturally(b.getLocation(), ii);
  66. }
  67. b.setType(Material.AIR);
  68. }
  69. }
  70. }
  71. private static boolean canGet(Material mat, Player p, double data) {
  72. int count = 0;
  73. for (int i=0; i<p.getInventory().getSize(); i++) {
  74. try {
  75. if (p.getInventory().firstEmpty() >=0) {
  76. count++;
  77. }
  78. } catch (Exception e) {
  79. }
  80. }
  81. return count > 0;
  82. }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement