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

В разработке WGExtender

Тема в разделе "Разработка плагинов для новичков", создана пользователем Shevchik, 20 июл 2013.

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

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    При каждой проверки региона, надо сграбить инфу со всех регионов почти.
    Слишком много времени по отношению к хэшмапам это занимает.
    И да с базой WG работает синхронно.
     
  2. VaNnOrus

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

    Баллы:
    123
    Тогда почему при установке региона через апи моим плагином сервер зависает на время операции, а при использовании /rg claim, /rg def и пр. все нормально?
     
  3. Автор темы
    Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Я через апи удаляю регионы и всё нормально, видимо что-то ты делаешь не так.
     
    MineMan910 нравится это.
  4. VaNnOrus

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

    Баллы:
    123
    Что там можно не так сделать? Добавляем регион, устанавливаем хозяина, сохраняем.
    Код:
    rm.addRegion(pr);
    DefaultDomain dd = new DefaultDomain();
    dd.addPlayer(name);
    pr.setOwners(dd);
    rm.save();

    К слову по поводу идей для реализации - добавьте в плагин автоочистку и очистку по команде и регенерацию регионов игроков, которые не появлялись определенное время. С добавлением в конфиг включения/отключения автоочистки, включения/отключения регенерации при удалении привата, установки интервала времени автоочистки, установки разного времени бездействия для различных групп при определении регионов, подлежащих удалению.
     
  5. Автор темы
    Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    AutoSaveWorld умеет это, ну кроме разных групп. (уже месяца 3 как.)
     
    DavidShabaev нравится это.
  6. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Обращение к базе данных при каждой поломке/установке блока не есть хорошо. Особенно с креативом.
    А если SSD, то вообще грех пользоваться БД ;)

    У меня лог блоков в таблицу MyISAM. Иногда лог портит таблицу и перестаёт в неё записывать. Интересно, в WG MyISAM, или всё же InnoDB?
     
  7. Автор темы
    Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Вг всё равно что у тебя там. Он всё равно будет насмерть тормозить с мускулём и вешать сервер.
     
    ql_Nik_lp нравится это.
  8. ptnk

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

    Баллы:
    173
    И что тебе каждое обращение даст? Если одно обращение не превышает времени одного тика - проблем не вижу. Особенно, если все обращения организовать грамотно, то проблем вообще быть никаких не должно. И что,что SSD, в особенности, когда бд не на обычной флешке в серверных стоят, а тоже используют быстрые накопители.
     
  9. Автор темы
    Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    При установке блока там отнюдь не одно обращение.
     
    Likeobot и RVXman нравится это.
  10. ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp

    Я использую систему MySQL -> HashMap -> Игра (Спасибо Jampire)
    Т.е. суть в том что в базу я отправляю только когда записываю новый регион или что либо, и при этом же записываю эту информацию в спец. HashMap.
    При инициализации все данные с базы сортируются по хешмапам, и затем берутся исключительно от туда.
    Сам процесс записи (в базу) реализуется отдельным, асинхронным потоком, т.к. не имеет значения когда он будет записан - сейчас, или через 2 секунды.

    Я не говорил что я собираюсь отказаться от WG, я не собираюсь его использовать для этой цели: WG - Админам, мой плагин - юзерам.

    Когда на сервере 4000 регионов - у меня это выглядело так:
    /region claim home
    Пролаг 3-5 секунд

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


    P.S. Не замечал у ВГ ассинхрона, но спорить не буду - мб прикрутили
     
  11. Jampire

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

    Баллы:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    ql_Nik_lp

    не думал что мой способ такой уникальный, я думаю его юзают все у кого хоть чуть чуть руки из правильного места растут.

    для операций где нужен очень частый доступ в базу я пишу всё в хешку, а в базу отправляю только новое каждые 5 - 10 секунд.
    вот в том то и дело.
    зачем при каждом доступе к региону обращаться в базу?)
    как минимум разрабы вг об этом не задумывались.
     
  12. Автор темы
    Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Разрабы вг припилили мускуль в самом начале а потом положили на него болт, ибо кому нужна интеграция - пишите плагины.
    Добавил ещё один модуль который блокирует ток лавы в защищённый регион из незащищённой зоны или из других защищённых регионов.
    Добавил запрет на поджигание игроком блоков на чужом регионе
     
    PageViewer и QuadX нравится это.
  13. origamerpro

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

    Баллы:
    88
    Имя в Minecraft:
    origamerpro
    можно ли расширить защиту ворлдгварда? К примеру лазер без ивентов ломает блоки и прочие мод няшности гриферят. Сделать что бы в регионе никаким образом, кроме тех кто вписан в регион и администрация( команды реген и сет), нельзя было блок сломать/передвинуть/взаимодействовать с ним.
     
  14. Автор темы
    Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Это нереально почти.
    Добавлен запрет на распространение огня по аналогии с запретом тока лавы.
     
  15. Sirse

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

    Баллы:
    173
    Имя в Minecraft:
    Sirse
    Берёшь и пилишь ивенты баккита.
    Тот же лазер использует стандартный майновский .setBlock, который не передаёт никакой уникальной инфы. Тем более, лазер создаёт отдельную энтити-луч.
     
  16. Автор темы
    Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Добавил запрет сгорания блоков в регионе.

    Всё, пойду устраивать стихийные бедствия на своём сервере :)
     
    Alexgrist нравится это.
  17. Sirse

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

    Баллы:
    173
    Имя в Minecraft:
    Sirse

    Требую NCPModcompat - игнорирование range и noswing при использовании некоторых предметов :)
     
  18. Автор темы
    Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Осталось только найти вдохновение.
    Добавил возможность запрета распространения огня так же внутри региона, а то мои юзеры не изолировали мусорник.
    Добавил поддержку пермишена на WG безлимит в ограничении блоков. (т.е. если игрок имеет пермишен worldguard.region.unlimited , то плагин не проверяет максимальное количество блоков для него.)
    Теперь динамит и крипер подрывают только блоки не в привате.
     
  19. Linkinkov

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

    Баллы:
    173
    Skype:
    linkinkov1
    Имя в Minecraft:
    linkinkov
    А что по поводу, поиска региона по радиусу, нику, координатам (радиус)?
    Очень нужные вещи, которых сейчас нет.
    Поиск по нику частично есть, но для показа своих регионов.
     
  20. Автор темы
    Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Ещё тестируется.
     
    FedorNogopletov и Linkinkov нравится это.
Статус темы:
Закрыта.

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