Residence - это плагин на приват территорий, настройку флагов (общие/индивидуальные), с возможностью создания на территории (Резиденции) сабзон (subzone), отличающихся флагами и могущих быть сданными в аренду отдельному игроку, чем он приобретает индивидуальные права (флаги). К нему есть дополнения, делающие использование данного плагина более удобным (клики по табличкам вместо ввода команд в чате). Я средствами этого плагина сделал отель и сдаю номера в аренду. Очень удобно. Это вкратце.
2.1. По поводу прав игроков WG флаги:
- REGION_MEMBER. Is player member of region? Parameter: <region>
- REGION_OWNER. Is player owner of region? Parameter: <region>
— это не оно? Если нет, то расскажите, что нужно.
Нет, это не оно. Это "правовые группы" регионов, насколько я понял (не приватил через WG никогда). А я имею в виду настройки прав (строить/ломать/лить воду/...) в регионе индивидуальные для каждого из игроков, имеющих к нему (региону) отношение. К примеру, владелец и арендатор. Хотя, можно и группами, согласен.
Смысл в том, что я хочу полностью отказаться ото всех "необщих" плагинов в пользу ReActions. Сейчас я поднимаю сервер с Residence, ResidenceSigns, RandomLocation и mcMMO (из "необщих", вроде, всё; больше ни в чём смысла не увидел). Вот эти плагины я и хочу заменить вашим + Essentials и WG. Если я сочту, что связка WG и RA достаточно функциональна, я смогу отказаться от Residence. Но вот проблема с сабзонами для меня является архиважной, ибо WG-шных аналогов им я не знаю (типа регион внутри региона - это можно?). А RandomLocation уже можно заменять. Вдовесок, не нужно вводить планировавшиеся ранее всякие плагины: PVPToggle, MobArena Events и иже с ними - "ЙАЗЪ"! RA + "моск" + фантазия + прямые руки = "She is alive... Alive!" (© Dr. Frankenstein) Вот она, формула успеха.
Дальше, что касается permissions-групп... Заметил в PEX такую дрянь, как необходимость перезагружать плагин/сервер/игрока (через его re-join), чтобы изменения вступили в силу. Бесит (!), ибо приходится вновь зарегистрировавшихся игроков, только что перемещенных в группу Member, авто-кикать, чтобы они, войдя по-новой, смогли пользоваться правами группы Member. Либо вручную делать "/pex reload". Силами вашего плагина можно было бы это автоматизировать: авто-"/pex reload" - будь возможность отлавливать события PEX (добавление, изменение групп/прав). Если знаете по-настоящему достойные альтернативы PEX - прошу дать наводку.
Касательно инициативы - постучался в "дев-ведро". То, что аглицкая версия далеко ушла, заметил. И по датам, и по объёму. Кстати, судя по статистике на mcstats, ваш плагин далеко не только в России распространён.
Ещё предложение-совет: переименовать (или сделать алиасы) все "POWER-содержащие" имена в "REDSTONE-содержащие", т.к. слово power слишком общее и несёт несколько отличный от электрического смысл. Первым делом приходит в голову модификатор урона какой-нибудь.
В целом, плагин "фердипердознейший". Читая этот тред и описание на DevBukkit, сделал для себя вывод, что свой сервер смогу сделать таким, каким и должен быть онлайн-Minecraft: чат == общение, события == последствия действий игрового персонажа (а не набора команд игроком). А для этого, имхо, надо прикрутить полноценную работу с табличками: как обработка клика+надписи, так и программная модификация надписи. Вот тогда чат будет открываться как рот - для общения. И не надо больше будет путаться в переключением языков.
1. Как быть с корректно введенными командами, для которых некорректно указаны аргументы?
Пример: /res tp ResNmae вместо /res tp ResName. Хочу заставить платить за телепорт, который может и не состояться, если некорректно указать название резиденции.
Туплю, кстати. Можно ж на команду "/res tp *" подписать активатор, который будет запоминать координаты игрока и вызывать с задержкой в, к примеру, секунду другой активатор, который запомненные координаты будет сравнивать с текущими, и если разница-расстояние составляет, скажем, более 50 метров (блоков), списывать деньги. Сразу вопрос: есть ли возможность такого сравнения координат (и миров)? Тут, я так понимаю, какой-то парсинг нужен и расчёт по формуле длины вектора перемещения:
Код:
distance = sqrt(sqr(x2-x1) + sqr(y2-y1) + sqr(z2-z1))
Опционально:
Код:
distance += (world1<>world2)? 1000000 : 0
синтаксис C, для Java не знаю, как подсунуть условие в вычисление.
И ещё вопрос: что произойдёт первее? Телепортация или запоминание координат? Какие координаты я запомню (старые/новые)? Вообще, активаторы
всегда срабатывают первыми после нажатия Enter, или команда может выполниться вперёд активатора?
Почему не обособить синтаксически команду создания активатора?
Код:
/react create <ActivatorType> <ActivatorName> [OptParam]
Это как-то приведёт к необходимости говнокодинга? Во всяком случае, такая команда видится мне более коррелирующей с результатом её выполнения и мнемоничной. И на этапе парсинга она будет уходить в обработчик раньше, наверное (не знаю, как у вас парсинг и обработчики организованы).
Также предлагаю конструкцию
Код:
/react copy [flag|actions|reactions] <source activator> <target activator>
привести к виду
Код:
/react copy [f|a|r] <source activator> <target activator>
чтобы было однообразнее с
Код:
/react clear <id> [f|a|r]
/react add <id> <f|a|r> <flag|action> <param>
Как ведут себя активаторы, ссылающиеся на удалённую локацию (/react remove loc <locID>)?