Block.getWorld returns wrong chunk

Discussion in 'Plugin Development' started by minhperry, Nov 14, 2020.

  1. Offline


    I was going to create a VeinMine plugin where if you break a block it will automatially mines all block around it within a 3*3*3 box. During the process i encountered a problem:
    public class VeinPick implements Listener {
        public void onMine(BlockBreakEvent ev) {
            Player p = ev.getPlayer();
            Block b = ev.getBlock();
            ItemStack mainhand = p.getInventory().getItemInMainHand();
            // gets broken block and item used
           // 3 if to check if the player holding right item
            if (mainhand.getType().equals(Material.DIAMOND_PICKAXE)) {
                if (mainhand.getItemMeta().hasDisplayName()) {
                    if (mainhand.getItemMeta().getDisplayName().contains(ChatColor.GOLD + "Block Smasher")) {
                        // "bounding box" around the broken block. low and top are 2 corners of the box
                        Location low = b.getLocation().subtract(1,1,1);
                        Location top = b.getLocation().add(1,1,1);
                        // ArrayList of all block locations
                        ArrayList<Location> locs = new ArrayList<Location>();
                        // Iterate throught all locations, everything works fine till the end of this nested for loop
                        for (int x = low.getBlockX(); x <= top.getBlockX(); x++) {
                            for (int y = low.getBlockX(); y <= top.getBlockX(); y++) {
                                for (int z = low.getBlockX(); z <= top.getBlockX(); z++) {
                                    locs.add(new Location(b.getWorld(), x, y, z));
                        // p.sendmsg for debugging
                        for (Location l : locs) {
                        p.sendMessage("block=" + b.getChunk().toString());
                        p.sendMessage("world=" + b.getWorld().toString());
    The problem is here, all blocks saved in the arraylist was saved with wrong chunk, the slime block was where the block was broken using the pickaxe
    What could be a potential way to fix this?

    Attached Files:

Share This Page