Загрузка данных


Разработка, оптимизация и конфигурирование 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`).