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

Заказ на разработку плагина

Тема в разделе "Запросы на разработку плагинов", создана пользователем Fomitch, 10 фев 2017.

  1. Автор темы
    Fomitch

    Fomitch Новичок

    Баллы:
    6
    Skype:
    bigstorage.ru
    Коллеги, здравствуйте.
    Очень нужен плагин. Чуть ниже требования. Извините, возможно сумбурно, но готов обсудить детали любым удобным для вас способом (скайп, почта итд)

    1. Категория плагина: Регенерация карты, контроль регионов

    2. Предлагаемое название:AdvancedWorlCleaner

    3. Цель: Очистка мира от последствий действия игроков для предотвращения вайпов.

    4. Версиясервера: git-Spigot-16c940b-0805f60 (MC: 1.11) (Implementing API version 1.11-R0.1-SNAPSHOT)

    5. Хранение данных: При необходимости можно использовать СУБД MySQL для хранения данных необходимых для работы плагина. Все настройки плагина должны храниться в файловой системе в отдельной папке плагина.

    6. Требования к функционалу:

    6.1 Функционал плагина делится на 4 модуля:

    6.1.1 Модуль удаления просроченных приватов.

    6.1.2 Модуль регенерации измененных чанков.

    6.1.3 Модуль просмотр текущего состояния плагина.

    6.1.4 Модуль просмотр информации о выбранном блоке.

    6.1.5 Модуль прав и управления плагином.

    6.2 Удаление просроченных приватов

    6.2.1 Запуск модуля производится по расписанию. А именно с указанным к конфигурационном файле интервалом.

    6.2.2 Значение параметра из п.6.2.1 – int. Значение хранится в конфиге и не может быть изменено консольной командой. Единица измерения – минуты.

    6.2.3 После перезагрузки плагина, отсчет времени из п.6.2.2 не должен начинаться с начала.

    6.2.4 Перед запуском процедуры удаления регионов, создается список регионов на удаление. Список создается по признаку «Не один из владельцев региона не входил на сервер Xдней».

    6.2.5 Значение параметра из п.6.2.4 – int. Значение хранится в конфиге и не может быть изменено консольной командой.

    6.2.6 После формирования списка начинается процедура удаления регионов.

    6.2.7 Для обеспечения наименьшей нагрузки на сервер, удаление регионов производится с учетом параметров считанных из конфигурационного файла конфига:

    · Кол-во удаляемых регионов в определённое кол-во тиков.

    6.2.8 Для исключения попадания значимых для сервера регионов в список удаляемых, необходимо предусмотреть возможность создания «белого списка регионов». Регион состоящий в данном списке не должен попадать в список удаляемых. Хранение белого списка необходимо организовать в конфигурационном файле.

    6.2.9 Редактирование белого списка должно быть доступно из консоли игры или консоли сервера.

    6.2.10 На редактирование белого списка регионов должны быть организованы отдельные права на добавление и удаление записей. О производимых действиях с белым списком должны выводиться информация в консоль сервера и производиться запись в лог-файл плагина. Информативность: DATETIME – Пользователь – Действие – Название региона – координаты кубоида.

    6.2.11 После обработки всего списка удаляемых регионов, список очищается и выставляется флаг готовности произвести подготовку списка на регенерацию измененных блоков.

    6.2.12 В случае обнаружения флага работы модуля регенерации, работа модуля удаления просроченных регионов невозможна. Даже если настал момент штатного запуска модуля по заданному в конфиге расписанию.

    6.2.13 В случае описанном в п.6.2.12, плагин должен сделать об этом запись в лог-файл хранящийся в папке плагина на сервере.


    6.3 Регенерация измененных блоков.

    6.3.1 Для отслеживания изменения блоков, необходимо реализовать протоколирование разрушения, замены, установки блоков игроками.

    6.3.2 Используя координаты блоков указанных в п.6.3.1 составляется список на регенерацию регионов/чанков/кубоидов

    6.3.3 При обнаружении флага готовности к подготовке списка регенерации, плагин начинает подготавливать список на регенрацию.

    6.3.4 Для исключения большой нагрузки на сервер, требуется предусмотреть возможность поэтапной подготовки списка. Настройка в конфиге плагина.

    6.3.5 После подготовки списка к регенерации, плагин снимает флаг подготовки списка и выставляет флаг готовности к регенерации.

    6.3.6 При обнаружении флага готовности к регенерации плагин начинает процедуру регенерации.

    6.3.7 После регенерации каждого сегмента карты, из базы должны быть удалены протоколы изменения блоков в данном сегменте.

    6.3.8 Для предотвращения большой нагрузки на сервер, кол-во регенерируемых регионов/чанков/кубоидов/блоков в промежуток времени, должно настраиваться в конфигурационном файле плагина.

    6.3.9 Значение параметра из п.6.3.8 – int. Значение хранится в конфиге и не может быть изменено консольной командой.

    6.3.10 При регенерации не должны быть затронуты заприваченые регионы.

    6.3.11 После завершения регенерации всех регионов/чанков/кубоидов/блоков из списка, выставляется флаг готовности произвести подготовку списка для удаления просроченных регионов и убирается флаг регенерации.


    6.4 Просмотр текущего состояния плагина.

    6.4.1 Для вызова справки о текущем состоянии плагина необходимо в консоли игры или консоли сервера ввести команду.

    6.4.2 В значимости от выполняемого плагином этапа, в ответ на команду, должна прийти информация следующего содержания:

    · Ожидание запуска удаления просроченных регионов. Плановый запуск через ХХХХ секунд.

    · Формирование списка регионов для удаления. Кол-во удаляемых регионов ХХХХ шт.

    · Удаление просроченных регионов. Удалено ХХ из ХХХХХ

    · Формирование списка для регенерации. Кол-во ХХХ (необходимо согласовать с заказчиком единицу измерения для этой величины. Блоки?кубоиды?иное?)

    · Регенерация. Регенерировано ХХ из ХХХХ

    · Плагин остановлен


    6.4.3 На просмотр текущего состояния плагина из консоли игры необходимо организовать отдельное право. На просмотр непосредственно с консоли сервера прав не требуется.


    6.5 Просмотр информации о выбранном блоке

    6.5.1 Необходимо предусмотреть создание инструмента для выбора блока.

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

    6.5.3 Информация о блоках берется из протокола указанного в п.6.3.1

    6.5.4 На просмотр данной информации требуется отдельное право.


    6.6 Модуль прав и управления плагином.

    6.6.1 Внешнее управление плагином производится следующими командами:

    · /awc region add [имя региона] альясы частей команд: rg=region– добавить регион в белый список

    · /awc region delete[имя региона] альясы альясы частей команд: rg=regiondel=delete– удалить регион из белого списка

    · /awc reload– перезагрузить плагин и применить новые настройки

    · /awc stop– остановить работу плагина

    · /awc start– запустить плагин.

    · /awc region force– запустить удаление регионов сейчас.

    · /awc regioonlist delete– удаление списка регионом подлежащих удалению.

    · /awc regen force– запустить регенерацию сейчас.

    · /awc regenlist delete– удаление списка на регенерацию.

    · /awc info– показать текущее состояние плагина

    · /awc data delete [YYYY-MM-DD] – удаление всех протоколированных данных дата которых меньше указанной.

    6.6.2 При остановке плагина все флаги обозначающие этапы работы плагина остаются, но при этом выставляется флаг остановки плагина. При установленном флаге остановки, плагин не выполняет никаких действий, но плагин может быть запущен командой с консоли игры или сервера. Так же при остановленном плагине доступны команды на удаление списка регионов подлежащих удалению и списка элементов подлежащих регенерации.

    6.6.3 При удалении списка регионов подлежащих удалению:


    6.6.3.1 В случае штатной работы плагина: снимается флаг работы модуля удаление просроченных регионов и выставляется флаг готовности подготовки списка на регенерацию. И выполняется подготовка списка на регенерацию.

    6.6.3.2 В случае остановленного плагина: снимается флаг работы модуля удаление просроченных регионов и выставляется флаг готовности подготовки списка на регенерацию. Регенерация не производится.

    6.6.4 Команды awc region force, awc regioonlist delete, awc regen force и awc regenlist delete возможно запустить только при остановленном плагине.

    6.6.5 Права на использования плагина

    6.6.5.1 Любая команда плагина должна быть доступна с консоли сервера

    6.6.5.2 Список прав:

    · Awc.regionadd– добавление региона в белый список

    · Awc.regiondel– удаление региона из белого списка

    · Awc.info – просмотр состояния плагина

    · Awc.reload – перезагрузка плагина

    · Awc.startstop– остановка и запуск плагина

    · Awc.stopworker– работа с остановленным плагином (включая команды awc region force, awc regioonlist delete, awc regen force и awc regenlist delete которые недоступны без этого права)
     
  2. LuckyZeeRo

    LuckyZeeRo Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Господи, это самое подробное и ясное ТЗ, которое мне попадалось на глаза. Неужели нормальные заказчики существуют?
     
  3. Автор темы
    Fomitch

    Fomitch Новичок

    Баллы:
    6
    Skype:
    bigstorage.ru
    Это не миф. Они и правда бывают. ;)
     
  4. Qmaks

    Qmaks Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    Qmaks
    Лень так много читать.
     
  5. Автор темы
    Fomitch

    Fomitch Новичок

    Баллы:
    6
    Skype:
    bigstorage.ru
    Кстати ту подумалось, что наверно можно использовать данные от плагина CoreProtect. Должно по идее упростить задачу.
    Без конкретного ТЗ, результат ХЗ. Знаешь такую пословицу? ;)
     
  6. Qmaks

    Qmaks Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    Qmaks
    Хз, у меня все норм с результатами. Даже больше, чем надо иногда делаю.
     
  7. Автор темы
    Fomitch

    Fomitch Новичок

    Баллы:
    6
    Skype:
    bigstorage.ru
    Я пока про Ваши результаты ничего не говорил. Я о другом немного.
    Тут одно из двух. Либо N времени тратиться на чтение вменяемого ТЗ, либо N^10 времени на то, что бы понять чего хочет заказчик (сюда же входит время на вникание в допники, которые возникают когда заказчик забыл сказать сразу про что-то важное и вспомнил об этом к выходу релиза). При этом, в конце мы получаем слабое решение. Работающее, но сделанное из г$вна и палок, потому как ТЗ поступало частями и в большинстве случаев разработчику приходилось додумывать за заказчиком (и кстати в 50% случаев додуманное исполнителем не соответствует тому, что хотел заказчик) . И не крашится готовое решение только потому, что обросло г$вном выделевшимся за время существования проекта. А тут вроде внятное ТЗ. Считайте Вас освободили от задач аналитика ;) Тут даже можно сказать не ТЗ, а почти прямая постановка задачи. Я так привык работать. Так надо работать. Я бы и сам написал, просто нет времени вникать как под MC плагины пишутся. Могу кстати написать ТЗ в стиле "хочу одну кнопку с надписью ПЫЩ, при нажатии которой исполнилось бы все мной задуманное". Так лучше будет? ;)
     
  8. Qmaks

    Qmaks Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    Qmaks
    Не, нинад)
     
  9. Автор темы
    Fomitch

    Fomitch Новичок

    Баллы:
    6
    Skype:
    bigstorage.ru
    А самое забавное, что все данные для манипуляций уже есть. Осталось реализовать.
    Данные о последнем логине пользователя есть в Essentials, Данные по регионам и владельцам в в WG, Данные об изменениях блоков в CoreProtect :) Написать что ли внешнюю приблуду которая будет через rcon командами на сервак серить..... Не правильно это как-то... Может алгоритмы расписать и кто-то все же возьмется за написание плагина? Но при таком раскладе вознаграждение за плагин будет меньшего размера.
     
  10. LuckyZeeRo

    LuckyZeeRo Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Проблема в одном - WG. Он не записывает реальных создателей регионов и может просто добавить какого то топового онлайнового игрока во владельцы для предотвращения удаления.
    Так ты и плагин вскоре напишешь сам, пока найдешь тут выполнителя :lol:
    Я бы взялся, но у меня уже 5 заказов на сегодня в очереди.
     
  11. IIlII

    IIlII Активный участник Пользователь

    Баллы:
    63
    Готов взяться
     

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