Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Взрывы тнт

Статус
Закрыто для дальнейших ответов.

Copter533

Участник
Пользователь
Баллы
31
Имя в Minecraft
Copter533
Как отменять разрушения блоков, которые не находятся в списке поставленных (список координат)? Ивент BlockExplodeEvent не отслеживается у меня при взрыве тнт, никаких посторонних плагинов нет. Paper 1.12.2
 
Как отменять разрушения блоков, которые не находятся в списке поставленных (список координат)? Ивент BlockExplodeEvent не отслеживается у меня при взрыве тнт, никаких посторонних плагинов нет. Paper 1.12.2
Ивент не отслеживается совсем или не отслеживаются твои условия в ивенте? Там вроде в event.blockList() нужно добавлять те блоки, которые ты хочешь сохранить после взрыва
 
Это вроде событие взрыва крипера
После поджигания динамит становится сущностью, так что совет верный - используй EntityExplodeEvent. BlockExplodeEvent срабатывает при взрыве таких блоков, как кровати в незере/энде.
 
Ивент не отслеживается совсем или не отслеживаются твои условия в ивенте? Там вроде в event.blockList() нужно добавлять те блоки, которые ты хочешь сохранить после взрыва
Ну, хорошо, я получил список блоков, прошёл по списку и понял какие нужно оставить, а какие нет, как мне отменить их уничтожение?
 
Ну, хорошо, я получил список блоков, прошёл по списку и понял какие нужно оставить, а какие нет, как мне отменить их уничтожение?
PHP:
Iterator<Block> blockIterator = event.blockList();
while (blockIterator.hasNext()) {
    Block block = blockIterator.next();
    if (если block нужно сохранить) {
        blockIterator.remove();
    }
}
 
PHP:
Iterator<Block> blockIterator = event.blockList();
while (blockIterator.hasNext()) {
    Block block = blockIterator.next();
    if (если block нужно сохранить) {
        blockIterator.remove();
    }
}
Спасибо, но я сделал через event.blockList().removeIf(x -> УСЛОВИЕ);
 
PHP:
Iterator<Block> blockIterator = event.blockList();
while (blockIterator.hasNext()) {
    Block block = blockIterator.next();
    if (если block нужно сохранить) {
        blockIterator.remove();
    }
}
Динамит взрывается, список меняется, но не работает...

upload_2023-9-8_15-20-38.png
 
А, я понял, второй инстанс объекта, который слушает это событие перезаписывал список на пустой. Я просто добавил проверку на то, что мы в нашем мире.
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх