Войти или зарегистрироваться

Помогите Упростить код

Статус
Закрыто для дальнейших ответов.
Для начала я бы вот это:
Код:
    if (loc.getBlockX() == config.getInt("XB2P3")&&
        loc.getBlockY() == config.getInt("YB2P3")&&
        loc.getBlockZ() == config.getInt("ZB2P3"))
вынес бы в отдельные функции.
Подозреваю, что их по ходу кода будет очень много.

Ну и название для элементов конфига - в стиле "YB2P3" - это однозначно не есть хорошо. Я бы сума сошёл настраивая такой плагин ;)
Никто не мешает называть по человечески. Если это какая-то конретнкая точка, которая что-то означает - так и пишите. "respawn-location". Координаты разделяйте через ".": "respawn-location.x","respawn-location.y","respawn-location.z".
Либо вообще координаты сохраняйте в виде: world,x,y,z - так достаточно читаемо и конфиг раздуваться не будет.
 
Последнее редактирование:
Java:
int cx = config.getInt("XB1P3");
int cy = config.getInt("YB1P3");
int cz = config.getInt("ZB1P3");

int cx2 = config.getInt("XB2P3");
int cy2 = config.getInt("YB2P3");
int cz2 = config.getInt("ZB2P3");

int bx = b.getLocation().getX();
int by = b.getLocation().getY();
int bz = b.getLocation().getZ();

World w = p.getWorld();
Location loc  = b.getLocation();
Location locb2 = new Location(w, cx, cy, cz);

switch(b.getType())
    case WOOL:
    if (bx== cx && by == cy && bz == cz) {
        switch(random) {
            case 0:
                p.getWorld().spawnEntity(loc, EntityType.HORSE);
                p.playEffect(loc, Effect.TILE_BREAK, 1);
                b.setType(Material.AIR);
                config.set("BlockStopP3", 9);
                config.set("PlayerP3", p.getName());
                break;
            case 1:
                p.getWorld().spawnEntity(loc, EntityType.BAT);
                p.playEffect(loc, Effect.VILLAGER_THUNDERCLOUD, 1);
                b.setType(Material.AIR);
                break;
        }
    }

    if (bx== cx2 && by == cy2 && bz == cz2)) {
        config.set("BlockStopP3", 8);
        switch(locb2.getBlock().getType()) {
            case AIR:
                switch(random) {
                    case 0:
                        p.getWorld().spawnEntity(loc, EntityType.BLAZE);
                        p.playEffect(loc, Effect.TILE_BREAK, 1);
                        b.setType(Material.AIR);
                        break;
                    case 1:
                        p.getWorld().spawnEntity(loc, EntityType.CAVE_SPIDER);
                        p.playEffect(loc, Effect.VILLAGER_THUNDERCLOUD, 1);
                        b.setType(Material.AIR);
                        break;
                }
                break;
        }
    } else {
        p.playSound(loc, Sound.SKELETON_DEATH, 1, 1);
        e.setCancelled(true);
        e.getPlayer().sendMessage(ChatColor.DARK_GRAY + "Ты не можешь сломать этот блок, пока не сломаешь предыдущие блоки");
    }
    break;

Возможно потерял логику и табуляцию. Это черновой вариант. p.s. да, я люблю switch.
 
Последнее редактирование:
@Larin, пожалуйста, пользуйтесь тегами CODE=Java, от этого только всем будет проще :)
 
Тема закрыта
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх