(1.8)Автовосстановление мира

Доброго времени суток! Захотел сделать стартовую локацию, в пределах которой можно менять мир (что-нибудь ставить, разрушать блоки, лить воду/лаву и т д.), но спустя время локация должна восстанавливать свой исходный вид (например плавно, блок за блоком с течением времени). Пробовал делать через BreakEvent и HarvestedEvent, добавляя в очередь измененные блоки, но всех случаев изменения мира этим не покроешь. Было бы идеально прикрепить новое событие к setBlockState, но это уже вроде как ASM. Кто-нибудь может посоветовать более простое решение? Спасибо!
 
Самому надо, но пока не до того. Была идея заглянуть в исходники WorldEdit плагина, у него там есть команда regen, которая возвращает оригинальную генерацию на выбранном участке.
 
Спасибо, но только regen вроде восстанавливает исходные структуры мира, а твои постройки, и все, что ты сделал - нет
 
>>Пробовал делать через BreakEvent и HarvestedEvent, добавляя в очередь измененные блоки, но всех случаев изменения мира этим не покроешь.
BlockAdded ещё надо.
А больше ничего не надо, взрыв именно разрушает BreakEvent.

Ну и плагин такой тож есть, был по крайней мере в 1.47 который откатывал любой участок на указанный промежуток. Вплоть там до изменений сделанных за месяц. Тем и удобен был, что не всю карту, а только выделенный участок.
 
BreakEvent - разрушение блока игроком
Harvested - вырезание ножницами листвы и взрывы
PlacedEvent - добавление

А что если лаву залить водой? Уже не отследишь, либо если песок упадет вниз

UPD. Не помнишь название плагина?
 
Записать все блоки, потом давать импульс проверки, через определённое время, с неким шансом восстанавливать неправильный блок. М?
 
плагин LogBlock, описание команд на русском (не знаю на какую версию описание)
Общие команды

/lb help – выводит на экран все команды плагина.

/lb writelogfile <имя> - записывает весь лог игрока в фаил "/plugins/LogBlock/log".

/lb toolblock. – дает инструмент, с помощью которого можно узнать: ЛКМ по блоку - узнать, кто его установил, ПКМ по пустому месту (по ребру другого блока) - узнать, кем и какой блок здесь был уничтожен.

/lb toolblock on/off – включает/выключает инструмент

/lb page <номер> - включает указанную страницу последнего выбранного лога.

/lb params – выводит список параметров.

/ib <параметр> - Выполняет поиск по задонному параметру.

Просмотр логов

/lb – отображает игроков, которые что либо делали с блоками в указанном в конфиге радиусе. (Отображает кол-во игроков, кол-во действий, вид действия происходившие с блоками)

/lb world – Тоже что и просто /lb только радиус весь мир

/lb area <радиус> – Тоже что и просто /lb только в заданном радиусе.

/lb player <имя игрока> <радиус> - Показывает все действия игрока в заданном радиусе.

/lb block <ID или название блока> <радиус> - Показывает все действия с определенным типом блоков в заданном радиусе.

/lb tp <номер> - nтп к указонному номеру лога

Команды отката (восстановления)

/lb rollback player <имя> <время> <минуты|часы|дни> - откатывает действия указанного игрока на указанный промежуток времени.

/lb rollback area <радиус> <время> <минуты|часы|дни> - откатывает действия всех игроков в указанном радиусе за указонноенное время.

/lb rollback playerarea <имя> <радиус> <время> <минуты|часы|дни> - откатывает действия игрока в указонном радиусе за указонное время

/lb rollback selection <время> <минуты|часы|дни> - Откатывает действия за указанный промежуток времени действия плагина WorldEdit

/lb redo since 7d

откатит весь мир за последние 7 дней

/lb rollback player PLAYERNAME since 7d

откатит все дейсвия игрока PLAYERNAME за 7 дней, подробнее о коммандах смотрите ниже.
 
Вариант svk мне нравится больше, чем ловля событий и попытки восстановить мир по полученной из них информации. Все равно всего не учесть.
 
GloomyFolken написал(а):
Вариант svk мне нравится больше, чем ловля событий и попытки восстановить мир по полученной из них информации. Все равно всего не учесть.
А если территория огромная? То восстановление блоков прилично повесит игру.
 
Agravaine написал(а):
GloomyFolken написал(а):
Вариант svk мне нравится больше, чем ловля событий и попытки восстановить мир по полученной из них информации. Все равно всего не учесть.
А если территория огромная? То восстановление блоков прилично повесит игру.
В моем случае будет именно так.
Спасибо!
 
Повесит или нет, зависит от того, как много блоков ты поставишь за раз. И даже если их миллион, тебя никто не заставляет поставить их все сразу. Можно ставить по чанку за тик.
 
Назад
Сверху