EcoServ 2.0.0 beta1
Curse Maven Snippet
What's new
EcoServ 2.0.0-beta1 — промежуточная версия
Это первая часть версии 2.0. Цель — проверить, как работают новые системы, до того как добавлять остальное.
Мод собирается так же: gradlew build. Клиент и сервер должны быть одной версии (2.0.0-beta1).
В игре ничего не проверялось. Если что-то упадёт — пришлите лог, исправлю.
Исправление: чужие блоки
- Блоки мода с владельцем больше нельзя взорвать: терминал, склад продавца, автомат, датчик игрока, банкомат. Раньше взрыв ТНТ или крипера высыпал товар со склада, а автомат выпадал целиком — его мог подобрать кто угодно.
- Иссушитель, дракон и мобы других модов эти блоки тоже не ломают.
Банки и валюты — /bank (/банк, /wallet)
- Несколько валют. Основная — обычный баланс. Остальные создаёт админ: название, знак, цвет, иконка, курс к монетам, можно ли менять, переводить и держать в банке. Для примера уже есть «Кристаллы» и «Жетоны».
- Кошелёк: баланс во всех валютах, перевод игроку в любой валюте.
- Обмен валют по курсу с комиссией.
- Счета: личные и общие (для команды, клана, компании).
- У общего счёта есть участники с правами: только смотрит → кладёт → снимает → управляет.
- Перевод между счетами по коду из 6 символов.
- История операций.
- Проценты в сутки: с лимитом и только для тех, кто заходил.
- Админ может заморозить счёт.
- Банкомат — блок, крафтится. В нём каждый видит только свои счета, поэтому чужой банкомат безопасен. Shift+ПКМ владельца — подпись. Можно разрешить операции со счетами только у банкомата.
- Админ: вкладки «Валюты» и «Настройки банка»;
/bank give|take|set <ник> <валюта> <сумма>. - Файлы:
world/ecoserv/currencies.json,wallets.json,bank_accounts.json,bank_settings.json.
Аккаунты — вход по паролю
/register <пароль> <пароль>,/login <пароль>,/changepassword <старый> <новый>.- Есть окно входа, пароль в нём скрыт звёздочками.
- Пока игрок не вошёл, он стоит на месте:
- нет чата и команд (кроме входа);
- нельзя ломать, ставить, бить, выбрасывать и подбирать;
- урона он тоже не получает.
- Пароль хранится только как хэш PBKDF2-SHA256 с солью.
- Повторный вход с того же IP в течение 30 минут — без пароля.
- Ограничения: кик по таймауту, лимит неверных попыток, лимит аккаунтов с одного IP.
- Режимы:
auto(по умолчанию — только на сервере сonline-mode=false),on,off. Команда/auth mode <режим>;/auth reset <ник>— сбросить пароль игроку. - Файлы:
world/ecoserv/accounts.json,auth_settings.json.
Свои квесты — /quests (/q, /квесты)
Работают без FTB Quests. Кнопка «Квесты» есть в меню миров.
- Главы и подглавы (дерево любой глубины).
- Когда глава открывается:
- после других глав или квестов;
- по роли или возрасту;
- с определённой даты.
- Когда глава становится недоступной:
- срок прошёл (ивент);
- игрок прошёл другую главу (сюжетный выбор);
- группа выбора: начал одну ветку — остальные закрываются;
- закрыта вручную, со своим текстом.
- Квесты: зависимости, «любое одно условие», необязательные, скрытые, награда сама, повтор через N минут.
- Условия: принести/иметь предметы, убить, добыть, скрафтить, поставить, прийти в место, войти в зону, нажать кнопку, деньги, валюта, роль, уровень, достижение, победа в мини-игре, событие сценария, галочка.
- Награды: предметы (можно с NBT из руки), деньги, валюта, опыт, роль на N дней, команда, сценарий, надпись.
- Прогресс: у каждого свой или общий на команду.
- Редактор прямо в игре (у админа кнопка «Редактор»). Кнопка «Проверка» находит ошибки: несуществующие предметы, роли, валюты, зоны, ссылки, круги зависимостей, неверные даты.
- Команды:
/quests event|complete|reset <ник> …,/quests check,/quests reload. - Файлы:
config/ecoserv/quests.json— книга (создаётся пример с развилкой);world/ecoserv/quest_progress.json— прогресс.
6 новых мини-игр — /games
| Игра | Суть |
|---|---|
| Осыпающийся пол | Пол исчезает под ногами, несколько этажей. Последний на полу побеждает. |
| Цветной пол | Называют цвет — беги на него, остальной пол пропадает. Раунды всё быстрее. |
| Лабиринт | Каждый раз новый лабиринт, ворота на таймере, можно включить темноту. |
| Горячая картошка | У кого динамит на голове — ударь другого, чтобы передать. Таймер кончился — выбыл. |
| Царь горы | Стой на золотой вершине один и копи очки. Удар отталкивает (без урона). |
| Память | Игра в окне: запомни последовательность цветов и повтори. |
Всего теперь 9 игр. Каждую можно выключить в настройках (games.disabled), у каждой свои параметры.
Победа в игре засчитывается в квестах (условие «Победить в мини-игре»).
Режим разработчика — /dev (кнопка «Разработчик» в меню миров для админов)
- Режим
/dev on— видно скрытое:- зоны: красные — глобальные, синие — локальные;
- триггеры — оранжевые, порталы — фиолетовые, приваты — зелёные;
- маркеры и блоки-программы с подписями.
- Очки разработчика — надеваются на голову, показывают то же самое без режима.
- 16 маркеров-помощников: появление, команды красных и синих, чекпоинт, финиш, зона смерти, место
предмета/моба/NPC, точка камеры, точка пути, стык структуры, невидимый свет, звук, надпись в мире.
- Игроки маркеры не видят и проходят сквозь них.
- ПКМ админа — имя, данные, поворот.
- Надпись (маркер «Надпись в мире») видна всем.
- Блок-программа:
- когда срабатывает: ПКМ, сигнал редстоуна, игрок рядом, таймер, событие;
- условие, роли, пауза между срабатываниями, выход редстоуна;
- локальный (синий) — шаги для того, кто запустил; глобальный (красный) — для всех в мире.
- Зоны разработчика: шаги при входе, при выходе и пока игрок внутри. Глобальные работают во всех копиях мира (например, в локальных мирах команд подмира), локальные — только в своём мире.
- События (PlayerJoin() и др.): вход, первый вход, выход, смерть, возрождение, вход в мир, вход/выход из
зоны, выполнен квест, победа в игре, сработал блок-программа, свои события. Можно уточнять:
world_enter:nether,zone_enter:арена,quest_done:iron. - Сценарии в окне: список, редактор шагов с проверкой, запуск на себе.
- Новые шаги сценариев:
money,currency,give,effect,particle;setblock,fill;quest(событие для квестов),event;set/add(переменные игрока),if … then … else …;broadcast,heal,feed.
- Условия в
if:var,role,money,currency,item,chance,world,quest,level,sneaking,not. - Подстановки в текстах:
%money%,%online%,%var:имя%. - Файлы:
world/ecoserv/dev_zones.json,dev_events.json,script_vars.json.
Что ещё будет в 2.0 (следующие части)
- Меню: свои меню (конструктор), меню на блоках, кнопки в меню ESC, 3D-панели в мире.
- Мир и существа: NPC с диалогами (и условие квестов «поговорить с NPC»), голограммы, объекты-спутники, анимации, VFX.
- Камера: катсцены и свободная камера.
- Строительство: инструменты в стиле Hammer (выделение, копирование, поворот, замена, формы, отмена), библиотека структур и процедурная генерация.
- Электроника в стиле Rust.
- Свой контент: предметы, блоки, жидкости и 3D-модели; динамический свет.
- Прочее: пресеты; конструктор своих мини-игр на маркерах; переводы новых текстов.
Что не будет сделано
- Расчёты сервера на компьютерах игроков. Сервер не может доверять тому, что посчитал клиент: это открывает дорогу читам, а задержки сети съедят выигрыш.
- Мост между версиями Minecraft для модов. Это отдельный огромный проект уровня ViaVersion, плюс перевод всех блоков и предметов модов между версиями.
- Порты на 1.20.1 Forge и 1.21.1 NeoForge. Это переписывание всего мода под другой API. Лучше делать отдельным проектом, начиная с ядра (экономика, окна, подмиры).
This mod has no additional files

