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

Плагин [FIX] ClearWorld v0.4c - автоудаление регионов WorldGuard [1.3.1-R1.0]

Прикольный плагин, для 1.5.1 такой бы. Буквально вчера пришлось удалить все территории на посещаемом сервере, после чего начался хаос.
 
Mayor123 пропал, нигде не могу с ним связаться. Так что обновление только от сторонних разработчиков
 
Скажите пожалуйста. Если установить этот плагин, он удалит уже заброшенные регионы, или он будет отсчитывать время со дня его установки?
 
Народ, плагин оставляет ужасные дыры после удаления и регенерации региона.
Че делать? это такой баг?
 
Да, тырки до самой бесконечности, причем они больше самого региона почему-то.
Да я тебе легко расскажу почему, если верить сырцам плагина, то регенерация региона происходит в отдельном потоке. что может плохо сказаться на чанке над которым это проворачивают.
 
Да я тебе легко расскажу почему, если верить сырцам плагина, то регенерация региона происходит в отдельном потоке. что может плохо сказаться на чанке нал которым это проворачивают.
Да, абсолютно верно. Вообще плагин должен работать по следующей схеме:
  1. Создать AsyncRepeatingTask и список из регионов, которые будут подвержены удалению. Task из этой AsyncRepeatingTask должен вызываться каждый час, как это сделано в оригинале. При добавлении нового региона в список регионов, подверженных удалению, этот список блокировать.
  2. Создать SyncRepeatingTask, вызывающийся каждые 15 секунд, в котором будет итерирующийся по списку регионов, которые нужно удалить, цикл. В нем будет удаляться регион и регенирироваться местность. При этом необходимо сделать так, чтобы за "такт удаления" удалялось не более 5 регионов. И нужно не забыть опять-таки заблокировать список с регионами.
Плюсы этого метода:
  • Дыры после регенерации появляться более не будут;
  • При запуске плагина на сервере, имеющем множество старых регионов, все будет работать нормально. Ведь теперь у нас есть ограничение на регенерацию 5 регионов за 15 секунд.
У меня когда-то была версия плагина, работающая таким образом. Однако тогда я её так и не выложил, сейчас её у меня нет. Уже достаточно давно мой интерес к деятельности, которая как либо связана с Minecraft, угас. Так что я не намереваюсь далее разрабатывать данный плагин. Если кто-либо захочет дорабатывать ClearWorld, то я желаю ему удачи и заранее говорю спасибо за труд ради сообщества.
 
Да, абсолютно верно. Вообще плагин должен работать по следующей схеме:
  1. Создать AsyncRepeatingTask и список из регионов, которые будут подвержены удалению. Task из этой AsyncRepeatingTask должен вызываться каждый час, как это сделано в оригинале. При добавлении нового региона в список регионов, подверженных удалению, этот список блокировать.
  2. Создать SyncRepeatingTask, вызывающийся каждые 15 секунд, в котором будет итерирующийся по списку регионов, которые нужно удалить, цикл. В нем будет удаляться регион и регенирироваться местность. При этом необходимо сделать так, чтобы за "такт удаления" удалялось не более 5 регионов. И нужно не забыть опять-таки заблокировать список с регионами.
Плюсы этого метода:
  • Дыры после регенерации появляться более не будут;
  • При запуске плагина на сервере, имеющем множество старых регионов, все будет работать нормально. Ведь теперь у нас есть ограничение на регенерацию 5 регионов за 15 секунд.
У меня когда-то была версия плагина, работающая таким образом. Однако тогда я её так и не выложил, сейчас её у меня нет. Уже достаточно давно мой интерес к деятельности, которая как либо связана с Minecraft, угас. Так что я не намереваюсь далее разрабатывать данный плагин. Если кто-либо захочет дорабатывать ClearWorld, то я желаю ему удачи и заранее говорю спасибо за труд ради сообщества.
В AutoSaveWorld я уже сделал очистку регионов WG, хотя и немного по другому.
Хотя твой код мне сильно помог (я всё никак не мог получить список овнеров пока в код не посмотрел :) )

У меня немного другой алгоритм правда.
Поток пробегается по всем регионам и отправляет в отдельный список те которые надо отрегенить. Потом пробегается по списку регионов на удаление регенерируя их (сунктаском естественно, регенерируя, удаляя их и сохраняя бд WG), между сунктасками вставлена задержка через глобальную переменную, так что сервер намертво не завешивает (новый таск не начнётся пока старый не завершит свою работу.)
 
Можно узнать откуда плагин берет информацию о активности игрока?
 

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

Назад
Верх