1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Добавить проверку блока

Тема в разделе "Разработка плагинов для новичков", создана пользователем Vyacheslav7319521, 24 ноя 2024.

Статус темы:
Закрыта.
  1. Автор темы
    Vyacheslav7319521

    Vyacheslav7319521 Участник

    Баллы:
    31
    Здравствуйте. Я новичок в разработке плагинов, по этому прошу помощи. (Заранее извиняюсь, если делаю это не в том разделе)

    Есть плагин на автоматические карьеры. Нужно добавить проверку, что если текущай блок - алмазная руда - не добывать ничего, но и блок из мира удалить. А то ломает экономику))
    Сейчас плагин добывает все блоки, кроме исключений (бедрок и т.д.), которые просто пропускает. (эту функцию и нужно так оставить)

    Код плагина прикладываю
     

    Вложения:

  2. Автор темы
    Vyacheslav7319521

    Vyacheslav7319521 Участник

    Баллы:
    31
    Думаю что добавить нужно что-то именно в эту функцию:
    Код:
    public void mineNextBlock() {
            if(markedForDeletion) return;
            Block blockToMine = findNextBlock();
            
            if(classicMode) {
                // Ignore air, water, lava, or bedrock
                Material thisMaterial = blockToMine.getType();
                while(thisMaterial.equals(Material.AIR )|| thisMaterial.equals(Material.WATER) || thisMaterial.equals(Material.LAVA) || thisMaterial.equals(Material.BEDROCK) || thisMaterial.equals(Material.SPAWNER) || thisMaterial.equals(Material.TRIAL_SPAWNER) || thisMaterial.equals(Material.VAULT) || thisMaterial.equals(Material.END_PORTAL_FRAME) || thisMaterial.equals(Material.REINFORCED_DEEPSLATE)) {
                    moveMiningCursor();
                    blockToMine = findNextBlock();
                    thisMaterial = blockToMine.getType();
                    if(nextX == maxX && nextY == world.getMinHeight() && nextZ == maxZ) break;
                }
                if(thisMaterial.equals(Material.AIR )|| thisMaterial.equals(Material.WATER) || thisMaterial.equals(Material.LAVA) || thisMaterial.equals(Material.BEDROCK) || thisMaterial.equals(Material.SPAWNER) || thisMaterial.equals(Material.TRIAL_SPAWNER) || thisMaterial.equals(Material.VAULT) || thisMaterial.equals(Material.END_PORTAL_FRAME) || thisMaterial.equals(Material.REINFORCED_DEEPSLATE)) {
                    if(nextX == maxX && nextY == world.getMinHeight() && nextZ == maxZ && !alerted) {
                        alerted = true;
                        finished = true;
                        tellOwner(ChatColor.BLUE + Main.configurableMessages.finishedBeforeCoords() + " " + centreChestLocation.toVector().toString() + " " + Main.configurableMessages.finishedAfterCoords());
                    }
                        
                    return;
                }
     
  3. Автор темы
    Vyacheslav7319521

    Vyacheslav7319521 Участник

    Баллы:
    31
    Всё, методом тыка сам догадался))
     
Статус темы:
Закрыта.

Поделиться этой страницей