.

Статус
Закрыто для дальнейших ответов.
Java:
    @EventHandler(priority = EventPriority.LOW)
    public void onPlayerMove(final PlayerMoveEvent e) {
        final Player player = e.getPlayer();
        final Chunk chunk = e.getTo().getChunk();
        if (player.isOp()) {
            for (int y = 0; y < 256; ++y) {
                for (int x = 0; x < 2; ++x) {
                    for (int z = 0; z < 2; ++z) {
                        final Block block = chunk.getBlock(0, y, 0);
                        final Block b = block.getWorld().getBlockAt(block.getLocation().add((double)(16 * x), 0.0, (double)(16 * z)));
                        if (b.getType() == Material.AIR) {
                            player.spawnParticle(Particle.VILLAGER_HAPPY, b.getLocation(), 1, 0, 0, 0, 1);
                        }
                    }
                }
            }
        }
    }

вроде только одному игроку отправляет.
37dce433c0971560d1145f32da20b896.jpg
 
Не знал о такой функции...
Но в любом случае не подходит, заставлять игроков жмать F3+G когда мне надо - будет сложно)))
Java:
    @EventHandler(priority = EventPriority.LOW)
    public void onPlayerMove(final PlayerMoveEvent e) {
        final Player player = e.getPlayer();
        final Chunk chunk = e.getTo().getChunk();
        if (player.isOp()) {
            for (int y = 0; y < 256; ++y) {
                for (int x = 0; x < 2; ++x) {
                    for (int z = 0; z < 2; ++z) {
                        final Block block = chunk.getBlock(0, y, 0);
                        final Block b = block.getWorld().getBlockAt(block.getLocation().add((double)(16 * x), 0.0, (double)(16 * z)));
                        if (b.getType() == Material.AIR) {
                            player.spawnParticle(Particle.VILLAGER_HAPPY, b.getLocation(), 1, 0, 0, 0, 1);
                        }
                    }
                }
            }
        }
    }

вроде только одному игроку отправляет.
37dce433c0971560d1145f32da20b896.jpg
Очень круто... Но... А можно так что не только по бокам, а и по сторонам?)
И еще вопрос на засыпочку ботанам...
Какие частицы в майне (Particle) самые.. БОЛЬШИЕ...
Ну кроме взрывов, из них делать стенку чанка будет некрасиво...
Ну типо чтоб даже косоглазый их точно увидел :D
 
Не знал о такой функции...
Но в любом случае не подходит, заставлять игроков жмать F3+G когда мне надо - будет сложно)))

Очень круто... Но... А можно так что не только по бокам, а и по сторонам?)
И еще вопрос на засыпочку ботанам...
Какие частицы в майне (Particle) самые.. БОЛЬШИЕ...
Ну кроме взрывов, из них делать стенку чанка будет некрасиво...
Ну типо чтоб даже косоглазый их точно увидел :D
если по бокам, то фпс будет просаживаться.
немного говно кода:
не умею делать циклы на 0.05((

Java:
    public void onEnable() {
        Bukkit.getScheduler().runTaskTimerAsynchronously(this, this, 28, 28);
    }
    @Override
    public void run() {
        for (Player player : Bukkit.getOnlinePlayers()) {
            if (player.isOp()) {
                final Chunk chunk = player.getLocation().getChunk();
                for (int y = 0; y < 256; ++y) {
                    for (int x = 0; x < 2; ++x) {
                        for (int z = 0; z < 2; ++z) {
                            final Block block = chunk.getBlock(0, y, 0);
                            final Block b = block.getWorld().getBlockAt(block.getLocation().add((double)(16 * x), 0.0, (double)(16 * z)));
                            if (b.getType() == Material.AIR && (block.getY() < player.getLocation().getY() + 5 ) && (block.getY() > player.getLocation().getY() -5 )) {
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0.05, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, -0.05, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0.1, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, -0.1, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0.15, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, -0.15, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0.20, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, -0.20, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0.25, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, -0.25, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0.30, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, -0.30, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0.35, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, -0.35, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0.40, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, -0.40, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0.45, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, -0.45, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0.50, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, -0.50, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0.55, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, -0.55, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0.60, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, -0.60, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0.65, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, -0.65, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0.70, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, -0.70, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0.75, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, -0.75, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0.80, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, -0.80, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0.85, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, -0.85, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0.90, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, -0.90, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 0.95, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, -0.95, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, 1, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, b.getLocation(), 1, 0, -1, 0, 0.25);
                            }
                        }
                    }
                }
            }
        }
    }

Вот так лучше будет, точнее красивее:

Java:
    @Override
    public void run() {
        for (Player player : Bukkit.getOnlinePlayers()) {
            if (player.isOp()) {
                final Chunk chunk = player.getLocation().getChunk();
                for (int y = 0; y < 256; ++y) {
                    for (int x = 0; x < 2; ++x) {
                        for (int z = 0; z < 2; ++z) {
                            final Block block = chunk.getBlock(0, y, 0);
                            final Block b = block.getWorld().getBlockAt(block.getLocation().add((double)(16 * x), +0.0, (double)(16 * z)));
                            if (b.getType() == Material.AIR && (block.getY() < player.getLocation().getY() + 5 ) && (block.getY() > player.getLocation().getY() -5 )) {
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +0.05), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -0.05), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +0.1), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -0.1), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +0.15), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -0.15), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +0.20), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -0.20), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +0.25), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -0.25), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +0.30), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -0.30), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +0.35), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -0.35), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +0.40), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -0.40), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +0.45), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -0.45), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +0.50), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -0.50), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +0.55), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -0.55), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +0.60), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -0.60), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +0.65), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -0.65), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +0.70), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -0.70), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +0.75), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -0.75), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +0.80), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -0.80), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +0.85), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -0.85), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +0.90), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -0.90), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +0.95), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -0.95), b.getZ()), 1, 0, 0, 0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() + 1) ,b.getZ()),1, 0, 0,0, 0.25);
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -1), b.getZ()), 1, 0, 0, 0, 0.25);
                            }
                        }
                    }
                }
            }
        }
    }

7aa703f9b391dfbb227584ede330dcee.png
 
Ыыы, ладно, это слишком страшно...
Буду лучше юзать тогда только по бокам))
Дальше идет вопрос именно про сами частицы,
как мне заспавнить частицы эффекта зелья определенного цвета?
И можно ли такое вообще?
 
Ыыы, ладно, это слишком страшно...
Буду лучше юзать тогда только по бокам))
Дальше идет вопрос именно про сами частицы,
как мне заспавнить частицы эффекта зелья определенного цвета?
И можно ли такое вообще?
Так это не по бокам, это только по краям, чтобы прямая линия была, и небыло промежутков между частицами.
 
Я вот передал в вот такой метод для удобства, что мне нужна переждать как последний параметр для того чтобы заспавнить эффект зелья определенного цвета?
Код:
    public void selectChunk(Chunk chunk, Player player, Particle particle) {
        for (int y = 0; y < 256; ++y) {
            for (int x = 0; x < 2; ++x) {
                for (int z = 0; z < 2; ++z) {
                    final Block block = chunk.getBlock(0, y, 0);
                    final Block b = block.getWorld().getBlockAt(block.getLocation().add((double)(16 * x), 0.0, (double)(16 * z)));
                    if (b.getType() == Material.AIR) {
                        player.spawnParticle(particle, b.getLocation(), 1, 0, 0, 0, 1);
                    }
                }
            }
        }
    }

Так это не по бокам, это только по краям, чтобы прямая линия была, и небыло промежутков между частицами.
Я понял, ну ладно, все-равно пожалуй сделаю без этого)
P.S. Циклы на 0.05 по идее вот так вот:
Код:
            for (double d = 0.05; d <= 1.05; d+= 0.05) {
               
            }
 
Java:
    @Override
    public void run() {
        for (Player player : Bukkit.getOnlinePlayers()) {
            if (player.isOp()) {
                final Chunk chunk = player.getLocation().getChunk();
                for (int y = 0; y < 256; ++y) {
                    for (int x = 0; x < 2; ++x) {
                        for (int z = 0; z < 2; ++z) {
                            final Block block = chunk.getBlock(0, y, 0);
                            final Block b = block.getWorld().getBlockAt(block.getLocation().add((double)(16 * x), +0.0, (double)(16 * z)));
                            if (b.getType() == Material.AIR && (block.getY() < player.getLocation().getY() + 5 ) && (block.getY() > player.getLocation().getY() -5 )) {
                                for (double d = 0.05; d <= 1.05; d+= 0.05) {
                                    player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +d), b.getZ()), 1, 0, 0, 0, 0.25);
                                }
                                for (double d = 0.05; d >= -1.05; d-= 0.05) {
                                    player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() -d), b.getZ()), 1, 0, 0, 0, 0.25);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
как цвет сделать, хз. Но можно юзать воду. От неё фпс сильно не проседает + не нужно делать от земли частицы, т.к вода тупо падает, и сама чертит линию.
в принципе можно и убрать цикл на - , и без него всё нормально работает
 
А если спавнить частицы большим количеством пакетов, то можно положить канал. Поэксперементируйте с командой /particle, подберите нужные параметры, чтобы минимумом пакетов отправлять.
 
Я сделаль вот так, вроде все хорошо :D
Спасибо)
Код:
    public void selectChunk(Chunk chunk, Player player, Effect effect) {
        if (GWMServerPlugin.plugin.config.getBoolean("USE_BETTER_CHUNK_SELECT")) {
            for (int y = 0; y < 256; ++y) {
                for (int x = 0; x < 2; ++x) {
                    for (int z = 0; z < 2; ++z) {
                        final Block block = chunk.getBlock(0, y, 0);
                        final Block b = block.getWorld().getBlockAt(block.getLocation().add((double) (16 * x), 0.0, (double) (16 * z)));
                        player.playEffect(b.getLocation(), effect, 1);
                    }
                }
            }
        } else {
            for (int y = 0; y < 256; ++y) {
                for (int x = 0; x < 2; ++x) {
                    for (int z = 0; z < 2; ++z) {
                        final Block block = chunk.getBlock(0, y, 0);
                        final Block b = block.getWorld().getBlockAt(block.getLocation().add((double) (16 * x), 0.0, (double) (16 * z)));
                        if (b.getType() == Material.AIR && (block.getY() < player.getLocation().getY() + 32) && (block.getY() > player.getLocation().getY() - 16))
                            for (double d = 0.05; d <= 1.05; d += 0.05)
                                player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX(), (b.getY() + d), b.getZ()), 1, 0, 0, 0, 0.25);
                    }
                }
            }
        }
    }
 
команда же вроде для всех игроков спавнит частицы.
А пакеты только для определёных игроков. Поидее ведь от пакетов должно быть меньше нагрузки чем от команды.
Параметры команды "particle <name> <x> <y> <z><xd> <yd> <zd> <speed> [count] [mode] [player] [params ...]".
Я предлагал не использовать команду в плагине, а посмотреть с какими параметрами частицы будут оптимальнее, да и вообще какие частицы больше подойдут.
А если отправлять таким циклом, как предлагается выше, частицы, то будет большая нагрузка на интернет канал из-за неоправданно большого количества посылок.
 
Я вот передал в вот такой метод для удобства, что мне нужна переждать как последний параметр для того чтобы заспавнить эффект зелья определенного цвета?
Java:
    ArrayList<Player> p = new ArrayList<Player>();

    @Override
    public void run() {
        for (Player player : Bukkit.getOnlinePlayers()) {
            if (player.isOp()) {
                final Chunk chunk = player.getLocation().getChunk();
                p.add(player);
                for (int y = 0; y < 256; ++y) {
                    for (int x = 0; x < 2; ++x) {
                        for (int z = 0; z < 2; ++z) {
                            final Block block = chunk.getBlock(0, y, 0);
                            final Block b = block.getWorld().getBlockAt(block.getLocation().add((double)(16 * x), +0.0, (double)(16 * z)));
                            if (b.getType() == Material.AIR && (block.getY() < player.getLocation().getY() + 5 ) && (block.getY() > player.getLocation().getY() -5 )) {
                                for (double d = 0.05; d <= 1.05; d+= 0.05) {
                                    ParticleEffect.REDSTONE.sendColor(p, new Location(b.getWorld(), b.getX() , (b.getY() +d), b.getZ()), Color.BLACK);
                                    // import java.awt.Color;
                                //    player.spawnParticle(Particle.DRIP_WATER, new Location(b.getWorld(), b.getX() , (b.getY() +d), b.getZ()), 1, 0, 0, 0, 0.25);
                                }
                               
                            }
                        }
                    }
                }
              p.remove(player);
            }
        }
    }
https://www.spigotmc.org/resources/api-particleapi-1-7-1-8-1-9-1-10.2067/
Java:
   // enable.. a.add(0);//
    ArrayList<Player> p = new ArrayList<Player>();
    ArrayList<Integer> a = new ArrayList<Integer>();
    @Override
    public void run() {
        for (Player player : Bukkit.getOnlinePlayers()) {
            if (player.isOp()) {
                final Chunk chunk = player.getLocation().getChunk();
                Location corner1 = chunk.getBlock(0, 0, 0).getLocation();
                Location corner2 = chunk.getBlock(15, 0, 0).getLocation();
                Location corner3 = chunk.getBlock(0, 0, 15).getLocation();
                Location corner4 = chunk.getBlock(15, 0, 15).getLocation();
                p.add(player);
                a.set(0, 0);
                for (int i = 0; i < 127; ++i) {
                    for (int i2 = 0; i2 < 15; ++i2) {
                        corner1 = chunk.getBlock(i2, i, 0).getLocation();
                        corner2 = chunk.getBlock(15, i, i2).getLocation();
                        corner3 = chunk.getBlock(15 - i2, i, 15).getLocation();
                        corner4 = chunk.getBlock(0, i, 15 - i2).getLocation();
                        if (corner1.getBlock().getType() == Material.AIR && (corner1.getY() < player.getLocation().getY() + 10 )  && (corner1.getY() > player.getLocation().getY() -10 )) {
                            ParticleEffect.REDSTONE.sendColor(p, new Location(corner1.getWorld(), corner1.getX() , corner1.getY() , corner1.getZ()), Color.BLACK);
                            a.set(0, a.get(0) + 1);
                        }
                        if (corner2.getBlock().getType() == Material.AIR && (corner2.getY() < player.getLocation().getY() + 10 ) && (corner2.getY() > player.getLocation().getY() -10 )) {
                            ParticleEffect.REDSTONE.sendColor(p, new Location(corner2.getWorld(), corner2.getX() , corner2.getY() , corner2.getZ()), Color.BLACK);
                            a.set(0, a.get(0) + 1);
                        }
                        if (corner3.getBlock().getType() == Material.AIR && (corner3.getY() < player.getLocation().getY() + 10 ) && (corner3.getY() > player.getLocation().getY() -10 )) {
                            ParticleEffect.REDSTONE.sendColor(p, new Location(corner3.getWorld(), corner3.getX() , corner3.getY() , corner3.getZ()), Color.BLACK);
                            a.set(0, a.get(0) + 1);
                        }
                        if (corner4.getBlock().getType() == Material.AIR && (corner4.getY() < player.getLocation().getY() + 10 ) && (corner4.getY() > player.getLocation().getY() -10 )) {
                            ParticleEffect.REDSTONE.sendColor(p, new Location(corner4.getWorld(), corner4.getX() , corner4.getY(), corner4.getZ()), Color.BLACK);
                            a.set(0, a.get(0) + 1);
                        }
                    }
                }
                p.remove(player);
                System.out.print(a.get(0));
            }
        }
    }
Если вдруг по бокам надо.
 
Последнее редактирование:
Статус
Закрыто для дальнейших ответов.
Назад
Верх