Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.maniek.drop.listeners;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.List;
- import java.util.Random;
- import org.bukkit.ChatColor;
- import org.bukkit.GameMode;
- import org.bukkit.Material;
- import org.bukkit.block.Block;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.EventPriority;
- import org.bukkit.event.Listener;
- import org.bukkit.event.block.BlockBreakEvent;
- import org.bukkit.inventory.ItemStack;
- import me.maniek.drop.objects.Drop;
- import me.maniek.drop.objects.utils.DropUtils;
- public class BlockBreakListener implements Listener {
- @SuppressWarnings("deprecation")
- @EventHandler(priority = EventPriority.HIGHEST)
- public static void onBreak(BlockBreakEvent e) {
- if (e.isCancelled()) return;
- Player p = e.getPlayer();
- if (p.getGameMode() == GameMode.SURVIVAL) {
- Block b = e.getBlock();
- if (b.getType() == Material.GOLD_ORE || b.getType() == Material.DIAMOND_ORE || b.getType() == Material.EMERALD_ORE
- || b.getType() == Material.IRON_ORE || b.getType() == Material.REDSTONE_ORE || b.getType() == Material.GLOWING_REDSTONE_ORE) {
- b.setType(Material.COBBLESTONE);
- e.getPlayer().sendMessage("§7Rudy dropia tylko ze stona");
- }
- if (b.getType() == Material.STONE && b.getData() == 0) {
- Collection<ItemStack> drops = b.getDrops();
- List<ItemStack> itemsToDrop = new ArrayList<ItemStack>();
- for (Drop d : DropUtils.getDrops()) {
- Random rand = new Random();
- int luck = rand.nextInt(101);
- if (luck > d.getSzansa()) {
- continue;
- }
- if (b.getLocation().getBlockY() > d.getMinY()) {
- continue;
- }
- int ilosc = rand.nextInt(d.getIlosc()) + 1;
- ItemStack is = new ItemStack(d.getType());
- is.setDurability(d.getData());
- is.setAmount(ilosc);
- itemsToDrop.add(is);
- e.getPlayer().sendMessage("§7Wydropiles " + ChatColor.translateAlternateColorCodes('&', d.getDname()) + " §7x§6" + ilosc);
- }
- for (ItemStack is : itemsToDrop) {
- if (canGet(is.getType(), p, is.getDurability())) {
- p.getInventory().addItem(is);
- } else {
- b.getWorld().dropItemNaturally(b.getLocation(), is);
- }
- }
- for(ItemStack ii : drops) {
- if(canGet(ii.getType(), p, ii.getDurability())) p.getInventory().addItem(ii);
- else b.getWorld().dropItemNaturally(b.getLocation(), ii);
- }
- b.setType(Material.AIR);
- }
- }
- }
- private static boolean canGet(Material mat, Player p, double data) {
- int count = 0;
- for (int i=0; i<p.getInventory().getSize(); i++) {
- try {
- if (p.getInventory().firstEmpty() >=0) {
- count++;
- }
- } catch (Exception e) {
- }
- }
- return count > 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement