Ищу плагин Блокировка установки блока под себя.

  • Автор темы Автор темы Mik1313
  • Дата начала Дата начала
таже проблема через заборы перебираются в 10 кубов и пофигу им высота. думаю может помоч плугин NoCheatPlus там нада поставить чтобы быстро не ставили блок.
отпишись помогло или нет заодно
 
Плагин антистолб, где то в плагинах на форуме был.
 
Вот код:
Java:
    void onBlockPlace(BlockPlaceEvent event) {
        Block b = event.getBlock();
        Player p = event.getPlayer();
        Location pLoc = p.getLocation();
        int pY = pLoc.getBlockY();
        int bY = b.getY();
        int rY = pY - bY;
        int bX = b.getX();
        int pX = pLoc.getBlockX();
        int bZ = b.getZ();
        int pZ = pLoc.getBlockZ();
       
        if(rY != 0 &&
          bX == pX &&
          bZ == pZ)
        {
            event.setBuild(false);
            p.sendMessage(ChatColor.RED + "Вы не можете строить " + ChatColor.GREEN + "под себя!");
        }
       
    }
Если оси X и Z совпадают и разность высоты игрока и блока не равна нулю, то строить тут нельзя.
 
Пфф, не могу ****ь понять, почему все думают что мне для антистолба?!
Один друг мне сказал, что есть вроде баг на возможность проникновения на чужую заприваченую теру, строительством блоков под себя.
Собственно защита от этого мне и нужна.
Аа, ну так там тоже стоит setBuild(). Ты это не сможешь исправить, увы. Нужно строить забор ~4 куба высотой
 
Пфф, не могу ****ь понять, почему все думают что мне для антистолба?!
Один друг мне сказал, что есть вроде баг на возможность проникновения на чужую заприваченую теру, строительством блоков под себя.
Собственно защита от этого мне и нужна.
Для этого можно сделать что бы при установке блоков на заприваченой территории, игрока толкало в рандомную сторону (-z, -x, z, x) на пару блоков и вниз...

Код:
    @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
    public void onBlockPlace(BlockPlaceEvent event) {
        Block blockPlaced = event.getBlock();
        Player player = event.getPlayer();
        World world = blockPlaced.getWorld();
 
        ConfigurationManager cfg = plugin.getGlobalStateManager();
        WorldConfiguration wcfg = cfg.get(world);
   
        if (wcfg.useRegions) {
            final Location location = blockPlaced.getLocation();
            if (!plugin.getGlobalRegionManager().canBuild(player, location)
            || !plugin.getGlobalRegionManager().canConstruct(player, location)) {
                player.sendMessage(ChatColor.RED + "Получи по бошке!");
                player.setVelocity(new org.bukkit.util.Vector((new Random().nextInt(4)-2),-1,(new Random().nextInt(4)-2)));
                event.setCancelled(true);
                return;
            }
        }
 
Для этого можно сделать что бы при установке блоков на заприваченой территории, игрока толкало в рандомную сторону (-z, -x, z, x) на пару блоков и вниз...

Код:
    @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
    public void onBlockPlace(BlockPlaceEvent event) {
        Block blockPlaced = event.getBlock();
        Player player = event.getPlayer();
        World world = blockPlaced.getWorld();
 
        ConfigurationManager cfg = plugin.getGlobalStateManager();
        WorldConfiguration wcfg = cfg.get(world);
 
        if (wcfg.useRegions) {
            final Location location = blockPlaced.getLocation();
            if (!plugin.getGlobalRegionManager().canBuild(player, location)
            || !plugin.getGlobalRegionManager().canConstruct(player, location)) {
                player.sendMessage(ChatColor.RED + "Получи по бошке!");
                player.setVelocity(new org.bukkit.util.Vector((new Random().nextInt(4)-2),-1,(new Random().nextInt(4)-2)));
                event.setCancelled(true);
                return;
            }
        }

P.S. уже так и сделал для своего сервера))) и не только это))))
Но ведь есть вероятность, что отбросит его в сторону забора и он сможет его "перепрыгнуть"?
 
Для этого можно сделать что бы при установке блоков на заприваченой территории, игрока толкало в рандомную сторону (-z, -x, z, x) на пару блоков и вниз...

Код:
    @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
    public void onBlockPlace(BlockPlaceEvent event) {
        Block blockPlaced = event.getBlock();
        Player player = event.getPlayer();
        World world = blockPlaced.getWorld();
 
        ConfigurationManager cfg = plugin.getGlobalStateManager();
        WorldConfiguration wcfg = cfg.get(world);
 
        if (wcfg.useRegions) {
            final Location location = blockPlaced.getLocation();
            if (!plugin.getGlobalRegionManager().canBuild(player, location)
            || !plugin.getGlobalRegionManager().canConstruct(player, location)) {
                player.sendMessage(ChatColor.RED + "Получи по бошке!");
                player.setVelocity(new org.bukkit.util.Vector((new Random().nextInt(4)-2),-1,(new Random().nextInt(4)-2)));
                event.setCancelled(true);
                return;
            }
        }

P.S. уже так и сделал для своего сервера))) и не только это))))

Не подскажете куда это впихивать и как? 🙂
 
Назад
Верх