Загрузка данных
Разработка, оптимизация и конфигурирование Minecraft-сервера «Dedal SMP»
1. ОБЩАЯ ИНФОРМАЦИЯ И АРХИТЕКТУРА
Название проекта: Dedal SMP
Версия игры: Minecraft 1.21.1
Ядро: Purpur (последний стабильный билд под 1.21.1)
База данных: MySQL / MariaDB (для синхронизации данных CoreProtect, LuckPerms и AuthMe)
Целевой онлайн: 30–50+ игроков при стабильном TPS.
Концепция: Ламповый, полу-ролевой Vanilla+ сервер. Полное отсутствие Pay2Win, коммерческих элементов, казуальных команд (/teleport, /sethome, /warp, /back, /tpa). Игровой процесс полностью полагается на физическое перемещение, создание инфраструктуры (дороги, Незер-хабы) и социальное взаимодействие.
2. ПОДРОБНЫЕ ТРЕБОВАНИЯ К ОПТИМИЗАЦИИ (PERFORMANCE TUNING)
Главная задача разработчика — обеспечить стабильные 20 TPS и минимальный пинг при пиковом онлайне в 50+ игроков. Настройки должны быть внесены в файлы purpur.yml, paper-world-defaults.yml, spigot.yml и server.properties.
2.1. Конфигурация чанков и прогрузки
view-distance (дистанция рендера): Установить жесткое значение в 11 чанков.
simulation-distance (дистанция симуляции тиков): Установить в 8 чанков.
Включить асинхронную загрузку чанков (chunk-system.workers).
Настроить агрессивную выгрузку неиспользуемых чанков из оперативной памяти, как только игрок покидает зону.
2.2. Оптимизация сущностей и мобов (Mob AI & Spawning)
Снижение тикинга ИИ (Mob AI): Ограничить частоту обновления поиска пути (Pathfinding) для пассивных и враждебных мобов, если они находятся далеко от игрока (настроить activation-range в spigot.yml).
Лимиты на чанк (Entity Cramming / Limits):
Включить жесткий лимит на количество существ одного типа в одном чанке (например, не более 25 коров/жителей на чанк для защиты от лаг-ферм).
Ограничить рейты спавна мобов через per-player-mob-spawns: true в Paper, чтобы нагрузка распределялась равномерно между всеми онлайн-игроками.
Рейд-фермы и жители: Оптимизировать механику паники жителей и поиска ими кроватей/рабочих мест (снизить частоту проверки условий).
2.3. Защита от лаг-машин (Redstone & Physics)
Перевести сервер на альтернативный, оптимизированный алгоритм обработки редстоуна — Eigensolver (или актуальный аналог в Paper/Purpur).
Настроить автоматическое уничтожение избыточного количества дропа на земле (лимит предметов в одной точке).
Установить ограничения на скорость работы воронки (hopper-transfer, hopper-check) для предотвращения лагов от масштабных сортировочных систем.
3. БЕЗОПАСНОСТЬ, АНТИЧИТ И ТОТАЛЬНОЕ ЛОГИРОВАНИЕ
3.1. Защита от читов (Anti-Cheat)
Основное решение: Установка и приватная настройка плагина Vulcan (или Matrix AntiCheat актуальной версии).
Приоритеты настройки:
Жесткий фокус на блокировку критических читов: Movement (Fly, Speed, NoClip, Jesus), Combat (Killaura, Reach, Criticals) и World (Nuker, FastPlace).
Конфигурация уведомлений: Логи срабатываний (Vl) не должны спамить в общий чат. Настроить скрытые алерты (/alerts) исключительно для персонала (Helper, Moderator, Admin).
Авто-кик/бан: Автоматическое наказание должно срабатывать только при 100% уверенности античита на критические нарушения (Fly/Speed). В остальных случаях — отправка уведомления модераторам для ручной проверки.
3.2. Логирование мира и действий (CoreProtect)
Подключить CoreProtect к выделенной базе данных MySQL для высокой скорости чтения/записи.
Параметры логирования: Настроить запись абсолютно всех изменений:
block-break и block-place (с указанием точного времени, координат и никнейма).
container-transactions: Логировать открытие, извлечение и вложение предметов во все типы контейнеров (сундуки, бочки, шалкеры, воронки, раздатчики, печки).
entity-kill и entity-damage: Кто убил/ударил домашнее животное, жителя или другого игрока.
username-changes и ip-addresses игроков.
Оптимизировать срок хранения логов в БД (хранить логи минимум за 90 дней, настроить авто-очистку старых данных).
3.3. Логирование админ-команд
Все команды, вводимые группами Helper, Moderator и Admin, должны дублироваться в отдельный файл логов сервера (sub-log) или в выделенный закрытый Discord-канал через вебхук для исключения злоупотребления полномочиями.
4. ПОДРОБНАЯ СПЕЦИФИКАЦИЯ И НАСТРОЙКА ПЛАГИНОВ
Разработчик обязан установить и полностью кастомизировать следующие плагины, удалив из них весь стандартный (дефолтный) текст и рекламу.
4.1. EssentialsX
Запретить/Вырезать команды: Полностью отключить для группы игроков команды /home, /sethome, /warp, /tpa, /tpahere, /back, /pay, /bal, /money.
Оставить доступными: /msg, /me, /ignore, /seen, /afk, /hat (для VIP).
Настроить кастомные сообщения о входе и выходе игроков (минималистичные, без лишнего флуда).
4.2. Simple Voice Chat (Голосовой чат)
Настройка серверной части для интеграции 3D-позиционирования звука.
Выделить отдельный UDP-порт под голосовой чат, прописать его в конфигурации.
Установить оптимальный кодек и битрейт для обеспечения высокого качества звука без создания сетевых задержек для сервера.
4.3. Dynmap (Веб-карта)
Оптимизация рендера: Отключить 3D-рендер (surface). Включить исключительно 2D-рендер (flat).
Установить низкое или среднее качество плиток карты для экономии дискового пространства.
Настроить скрытие игроков, находящихся в Незере или Энде (по желанию), а также игроков в режиме невидимости/AFK.
4.4. GSit
Разрешить игрокам использовать команды /sit, /lay, /crawl, а также сидение на ступенях и полублоках по нажатию ПКМ.
Отключить любые раздражающие анимации или эффекты, которые могут нарушать ванильный вид игры.
4.5. AuthMe Reloaded (Плагин авторизации)
Настройка сессий (session: true), чтобы игрокам не приходилось вводить пароль при каждом перезаходе в течение короткого времени.
Ограничить количество регистраций с одного IP-адреса до 1-2.
Защита от брутфорса и бот-атак.
5. МАТРИЦА ПРАВ (LUCKPERMS) И ВИЗУАЛ (TAB / ЧАТ)
5.1. Цветовая палитра проекта
Категорически запрещено использование стандартных "кислотных" цветов (ярко-зеленый &a, ярко-розовый &d, ядовито-голубой &b в качестве основных).
Основной текст чата: Белый (&f) или светло-серый (&7).
Акценты/Ники: Приглушенный золотой (&6), темно-аквамариновый (&3), глубокий серый (&8), пастельный красный (&c — только для администрации).
5.2. Иерархия групп в LuckPerms
Необходимо настроить строгое наследование прав (каждая следующая группа включает в себя права предыдущей):
Игрок (default):
Доступ к командам коммуникации (/msg, /me).
Доступ к механикам GSit (/sit, /lay).
Использование голосового чата.
VIP:
Доступ к косметической команде /hat.
Возможность писать цветными буквами в личные сообщения (или использовать кастомные градиенты).
Никаких игровых преимуществ, ресурсов, креатива или флая.
Helper:
Команды модерации чата: /mute, /unmute, /kick.
Доступ к просмотру логов чата.
Moderator:
Команды блокировки: /ban, /tempban, /unban.
Доступ к инспектированию через CoreProtect (/co i).
Доступ к базовому откату действий злоумышленников (/co rollback с ограничением по радиусу).
Admin:
Полный доступ к CoreProtect без ограничений.
Доступ к управлению плагинами, перезагрузке конфигов (/lp, /essentials reload и т.д.).
Creator:
Технический аккаунт владельца. Полные права (*).
5.3. Конфигурация TAB-листа и Чат-формата (TAB plugin)
Оформление должно быть в едином стиле. В чате и TAB-листе префиксы не должны занимать много места.
Формат ЧАТА:
[Префикс] Никнейм: Текст сообщения (Например: [VIP] Player: Всем привет).
Структура TAB-листа:
Header (Шапка):
Plaintext
&3&lDedal SMP
&7Ламповый полу-ролевой сервер
Формат строки игрока:
[Префикс] Никнейм | %ping% ms |
Footer (Подвал):
* **Генерация:** Чистый ванильный генератор 1.21.1. Никаких кастомных биомов.
* **Сид:** Разработчик должен предоставить на выбор 3 красивых сида с разнообразными биомами (особенно важные: сакура, темный лес, меза, джунгли) в радиусе 2500 блоков от координат `0, 0`.
* Граница мира (WorldBorder): Установить фиксированный радиус в **10 000 блоков** во все стороны от спавна для сохранения плотности игроков и оптимизации генерации новых чанков.
#### 7.3. Критерии приемки работы (Чек-лист для кодера)
1. Сервер запускается на чистом порту, в логах (`latest.log`) отсутствуют ошибки типов `Exception`, `Error`, `Crit`.
2. При симуляции нагрузки (искусственный спавн сущностей, взрывы динамонта) TPS не падает ниже 19.5.
3. Античит корректно блокирует базовые функции популярных чит-клиентов (Fly, Speed, Killaura) и отправляет скрытые алерты группе Helper/Moderator.
4. В TAB-листе корректно выводятся префиксы, пинг и **округленные часы** игроков без багов отображения плейсхолдеров (никаких сырых строк вроде `%statistic_...%`).
5. Попытка обычного игрока использовать запрещенные команды (`/sethome`, `/tpa`, `/op`) пресекается сообщением об отсутствии прав.
6. CoreProtect успешно логирует перемещение вещей в сундуках и разрушение блоков, а модераторы могут делать откат (`/co rollback`).