[WorldEdit] check if player is inside region.

Discussion in 'Plugin Development' started by MarioNoobProgrammer, Apr 13, 2017.

Thread Status:
Not open for further replies.
  1. Hello!
    Im wondering if I am able to check if player is inside a selection I've made.
    I need to check to be able to change block placed permission etc.
     
  2. Offline

    Caderape2

    @MarioNoobProgrammer of course
    #PlayerMoveEvent. Check if he is between the minimum location and the max
     
  3. @Caderape2

    Code:
    @EventHandler
        public void onMove(PlayerMoveEvent e) {
            Player player = e.getPlayer();
            for (String regions : main.getConfig().getConfigurationSection("regions").getKeys(false)) {
                CuboidSelection selection = new CuboidSelection(Bukkit.getWorld(main.getConfig().getString("regions."+regions+".world")), getLocation(regions, "cornerA"), getLocation(regions, "cornerB"));
    
                if (selection.contains(e.getTo()) && !selection.contains(e.getFrom())) {
                    player.sendMessage(ChatColor.GOLD+"Welcome to "+ChatColor.translateAlternateColorCodes('&', regions)+ChatColor.GOLD+"!");
                   
                } else if (selection.contains(e.getFrom()) && !selection.contains(e.getTo())) {
                    player.sendMessage(ChatColor.GOLD+"You are now leaving "+ChatColor.translateAlternateColorCodes('&', regions)+ChatColor.GOLD+"!");
                }
            }
        }
    That works good, but I need to check if a block is inside the selection when I break them, thats where im struggeling.
     
  4. Offline

    Caderape2

    @MarioNoobProgrammer
    You can heard the event BlockBreakEvent and check if the the location of the block is inside a region
     
  5. @Caderape2
    Code:
    @EventHandler
        public void onBlockBreak(BlockBreakEvent e){
           
           
            Player player = e.getPlayer();
           
           
           
            for (String regions : main.getConfig().getConfigurationSection("regions").getKeys(false)) {
                CuboidSelection selection = new CuboidSelection(Bukkit.getWorld(main.getConfig().getString("regions."+regions+".world")), getLocation(regions, "cornerA"), getLocation(regions, "cornerB"));
    
               
               
               
               
                main.getConfig().get("regions."+regions+".world");
               
                main.getConfig().get("regions."+regions+".cornerA.x");
                main.getConfig().get("regions."+regions+".cornerA.y");
                main.getConfig().get("regions."+regions+".cornerA.z");
    
                main.getConfig().get("regions."+regions+".cornerB.x");
                main.getConfig().get("regions."+regions+".cornerB.y");
                main.getConfig().get("regions."+regions+".cornerB.z");
               
                Location min = selection.getMinimumPoint();
                Location max = selection.getMaximumPoint();
               
                if(e.getBlock().getLocation().toVector().isInAABB(min.toVector(),max.toVector())) {
                    e.getBlock().getDrops().clear();
                   
                    player.getInventory().addItem(new ItemStack(Material.SULPHUR, 8));
                    player.getInventory().addItem(new ItemStack(Material.ENDER_PEARL, 16));
                } else {
                    player.sendMessage("debug 4");
                    return;
                }
        
               
                   
            }
        }
    Does send the debug message 4. Any clue?
     
Thread Status:
Not open for further replies.

Share This Page