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

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

Статус
Закрыто для дальнейших ответов.
Вы определитесь что сделать-то хотите. По-моему Вы говорили об отказе от WG, тогда в чем проблема хранить данные своего плагина в базе? И еще более важный вопрос - при чем тут вообще WE?




Стандартные команды вполне себе спокойно работают с мускулом, не замечал чтоб сервер напрягался.
Стандартные команды WG если он будет на мускуле работают в асинхроне, на сколько я понимаю, если писать собственную установку региона WG через апи стоит так же использовать асинхрон, иначе сервер будет подвисать на время всех операций с приватами. К тому же я столкнулся еще с другими проблемами при использовании собственного плагина работающего на апи WG, если WG на мускуле. Пришлось работать на файлах.
При каждой проверки региона, надо сграбить инфу со всех регионов почти.
Слишком много времени по отношению к хэшмапам это занимает.
И да с базой WG работает синхронно.
 
И да с базой WG работает синхронно.
Тогда почему при установке региона через апи моим плагином сервер зависает на время операции, а при использовании /rg claim, /rg def и пр. все нормально?
 
Тогда почему при установке региона через апи моим плагином сервер зависает на время операции, а при использовании /rg claim, /rg def и пр. все нормально?
Я через апи удаляю регионы и всё нормально, видимо что-то ты делаешь не так.
 
Я через апи удаляю регионы и всё нормально, видимо что-то ты делаешь не так.
Что там можно не так сделать? Добавляем регион, устанавливаем хозяина, сохраняем.
Код:
rm.addRegion(pr);
DefaultDomain dd = new DefaultDomain();
dd.addPlayer(name);
pr.setOwners(dd);
rm.save();

К слову по поводу идей для реализации - добавьте в плагин автоочистку и очистку по команде и регенерацию регионов игроков, которые не появлялись определенное время. С добавлением в конфиг включения/отключения автоочистки, включения/отключения регенерации при удалении привата, установки интервала времени автоочистки, установки разного времени бездействия для различных групп при определении регионов, подлежащих удалению.
 
Что там можно не так сделать? Добавляем регион, устанавливаем хозяина, сохраняем.
Код:
rm.addRegion(pr);
DefaultDomain dd = new DefaultDomain();
dd.addPlayer(name);
pr.setOwners(dd);
rm.save();

К слову по поводу идей для реализации - добавьте в плагин автоочистку и очистку по команде и регенерацию регионов игроков, которые не появлялись определенное время. С добавлением в конфиг включения/отключения автоочистки, включения/отключения регенерации при удалении привата, установки интервала времени автоочистки, установки разного времени бездействия для различных групп при определении регионов, подлежащих удалению.
AutoSaveWorld умеет это, ну кроме разных групп. (уже месяца 3 как.)
 
И что это за глупости? Смысл хранения в бд - это скорость базовых операций: вставка, удаление, добапление, поиск, который выполняются гораздо меньше чем за 1 сотую секунду, конечно не HashMap, но сойдет.
А хранить в файле - это означает считать при старте, и сохранить при выходе. Если обновлять файлик каждые сколько-то секунд - это к проблемам и задержкам.
Обращение к базе данных при каждой поломке/установке блока не есть хорошо. Особенно с креативом.
А если SSD, то вообще грех пользоваться БД ;)

У меня лог блоков в таблицу MyISAM. Иногда лог портит таблицу и перестаёт в неё записывать. Интересно, в WG MyISAM, или всё же InnoDB?
 
Обращение к базе данных при каждой поломке/установке блока не есть хорошо. Особенно с креативом.
А если SSD, то вообще грех пользоваться БД ;)

У меня лог блоков в таблицу MyISAM. Иногда лог портит таблицу и перестаёт в неё записывать. Интересно, в WG MyISAM, или всё же InnoDB?
Вг всё равно что у тебя там. Он всё равно будет насмерть тормозить с мускулём и вешать сервер.
 
Обращение к базе данных при каждой поломке/установке блока не есть хорошо. Особенно с креативом.
А если SSD, то вообще грех пользоваться БД ;)

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

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


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

Вы определитесь что сделать-то хотите. По-моему Вы говорили об отказе от WG, тогда в чем проблема хранить данные своего плагина в базе? И еще более важный вопрос - при чем тут вообще WE?

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

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

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

Сразу видно - чел просто жизнь свою без лагов не представляет :D
Не нужно мазохизма, храни в файле. Всё равно БД место на диске занимает, как и файл приватов. Толку тогда?

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


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

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

для операций где нужен очень частый доступ в базу я пишу всё в хешку, а в базу отправляю только новое каждые 5 - 10 секунд.
Ворлдгард с мускулом медленно и плохо работает не просто так. Просто по другому нельзя. (Посмотрите реализуацию определения к какому региону принадлежит локация и вы поймёте откуда тормоза.)

ПОэтому для интеграции с WG обычно пишут плагин.

вот в том то и дело.
зачем при каждом доступе к региону обращаться в базу?)
как минимум разрабы вг об этом не задумывались.
 
Разрабы вг припилили мускуль в самом начале а потом положили на него болт, ибо кому нужна интеграция - пишите плагины.
Добавил ещё один модуль который блокирует ток лавы в защищённый регион из незащищённой зоны или из других защищённых регионов.
Добавил запрет на поджигание игроком блоков на чужом регионе
 
можно ли расширить защиту ворлдгварда? К примеру лазер без ивентов ломает блоки и прочие мод няшности гриферят. Сделать что бы в регионе никаким образом, кроме тех кто вписан в регион и администрация( команды реген и сет), нельзя было блок сломать/передвинуть/взаимодействовать с ним.
 
можно ли расширить защиту ворлдгварда? К примеру лазер без ивентов ломает блоки и прочие мод няшности гриферят. Сделать что бы в регионе никаким образом, кроме тех кто вписан в регион и администрация( команды реген и сет), нельзя было блок сломать/передвинуть/взаимодействовать с ним.
Это нереально почти.
Добавлен запрет на распространение огня по аналогии с запретом тока лавы.
 
можно ли расширить защиту ворлдгварда? К примеру лазер без ивентов ломает блоки и прочие мод няшности гриферят. Сделать что бы в регионе никаким образом, кроме тех кто вписан в регион и администрация( команды реген и сет), нельзя было блок сломать/передвинуть/взаимодействовать с ним.

Берёшь и пилишь ивенты баккита.
Тот же лазер использует стандартный майновский .setBlock, который не передаёт никакой уникальной инфы. Тем более, лазер создаёт отдельную энтити-луч.
 
Добавил запрет сгорания блоков в регионе.

Всё, пойду устраивать стихийные бедствия на своём сервере :)
 
Добавил запрет сгорания блоков в регионе.

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


Требую NCPModcompat - игнорирование range и noswing при использовании некоторых предметов :)
 
Требую NCPModcompat - игнорирование range и noswing при использовании некоторых предметов :)
Осталось только найти вдохновение.
Добавил возможность запрета распространения огня так же внутри региона, а то мои юзеры не изолировали мусорник.
Добавил поддержку пермишена на WG безлимит в ограничении блоков. (т.е. если игрок имеет пермишен worldguard.region.unlimited , то плагин не проверяет максимальное количество блоков для него.)
Теперь динамит и крипер подрывают только блоки не в привате.
 
А что по поводу, поиска региона по радиусу, нику, координатам (радиус)?
Очень нужные вещи, которых сейчас нет.
Поиск по нику частично есть, но для показа своих регионов.
 
А что по поводу, поиска региона по радиусу, нику, координатам (радиус)?
Очень нужные вещи, которых сейчас нет.
Поиск по нику частично есть, но для показа своих регионов.
Ещё тестируется.
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх