Skip to content

Профили поведения и условия

Обзор

Stack Size Adjuster функционирует на основе конечного автомата, связывающего конфигурацию, динамические правила игры и сетевые пакеты между сервером и клиентом.


🔄 Жизненный цикл состояний

text
               +----------------------------------+
               |  Запуск сервера / Создание мира   |
               +----------------------------------+
                                |
                                v
               [ Загрузка базового шаблона config ]
               (`config/stack-size-adjuster.json`)
                                |
                                v
               [ Регистрация динамических правил  ]
               (`items_64_limit`, `items_16_limit` и др.)
                                |
                +---------------+---------------+
                |                               |
           Новый мир                     Существующий мир
                |                               |
                v                               v
        Применить конфиг                 Загрузить правила
            к правилам                    из `level.dat`
                |                               |
                +---------------+---------------+
                                |
                                v
               [ Инициализация StackSizeManager ]
                                |
                                v
               [ Вход игрока / Изменение GameRule ]
                                |
                                v
               [ Отправка S2C пакета: sync_limit  ]
                                |
                                v
               [ Обновление интерфейсов клиента   ]

⚙️ События и обработчики

  1. Инициализация сервера (ServerLifecycleEvents.SERVER_STARTED):
    • Перезагружает базовый файл конфигурации.
    • Если мир новый (!overworldData.isInitialized()), переносит значения из конфига в правила мира.
    • Инициализирует лимиты StackSizeManager.
  2. Подключение игрока (ServerPlayConnectionEvents.JOIN):
    • Отправляет начальный пакет StackSizeLimitSyncPayload.
  3. Изменение правила в игре (MinecraftServerMixin.onGameRuleChanged):
    • Реагирует на правила категории stack-size-adjuster:*.
    • Обновляет переменные в StackSizeManager.
    • Рассылает пакеты всем игрокам и вызывает broadcastFullState().

Official documentation & web portal for Dasik Igaijinn mods.