refactor: Переписана реализация конфигурации

- Загрузчик теперь имеет собственный конфиг *zotecore.yml*, в котором хранятся настройки ядра.
- Свойства можно получить, используя инстенс сервера, наккитовский сервер доступен отдельно.
- Устаревшие или неподдерживаемые методы по умолчанию логгируются в отладочный лог если он включен.
This commit is contained in:
MaXFeeD
2023-12-26 03:20:18 +03:00
parent 118ec09512
commit 61beb45a3e
21 changed files with 419 additions and 226 deletions
+47 -25
View File
@@ -1,37 +1,59 @@
# ZotCoreLoader
# Zote Core Loader
ZotCoreLoader — серверное ядро предназначенное для inner core 1.16.201.
Основой серверного ядра послужил [Nukkit-Mot](https://github.com/MemoriesOfTime/Nukkit-MOT), ZotCoreLoader сделан таким образом, чтобы Nukkit-Mot внутри ядра было легко обновлять.
__Zote Core__ — серверное ядро, основанное на Inner Core 1.26.200, созданное для создания уникального геймплея с модами.
![ZotCoreLoader](/.github/logo.png)
Основой серверного ядра послужил [Nukkit-MOT](https://github.com/MemoriesOfTime/Nukkit-MOT), его можно легко обновить, заменив соответствующую библиотеку.
## server.properties
![Zote Core](/.github/logo.png)
**Настройки, добавляемые ядром**:
## Установка
* legacy.workbench — по умолчанию true (другое значение на данный момент не поддерживается)
* inner_core.legacy_inventory — по умолчанию true (другое значение на данный момент не поддерживается)
* inner-core-version — числовая версия inner core
* inner-core-version-name — текстовая версия inner core
* inner-core-pack-name — имя пака inner core
* inner_core.runtime_exception — выдавать RuntimeException об использовании не поддерживаемых методов (по умолчанию false), рекомендуется только для отладки модов, во время игры выключайте
* eval-enable — вкл\выкл использование eval (по умолчанию true)
* develop-mode — режим разработки
Поддерживается любая платформа, поддерживающая Java 17 или выше. Загрузите последний релиз серверного ядра, либо соберите репозиторий с помощью Gradle.
## ПРЕДУПРЕЖДЕНИЕ
Запустите собранное ядро, открыв консоль в папке с ним:
Использование `eval`, `requireGlobal` не рекомендуется!
Используйте эти методы с осторожностью!
Особенно не рекомендуется использвать в `Network` пакетах!
Это может использовать для получения полного контроля над сервером!
По умолчанию 'eval-enable' включён, лишь для обратной совместимости, при возможности рекомендуется держать его выключеным!
```sh
java -jar ZoteCore-SNAPSHOT.jar
```
**Настройки, заблокированные ядром**:
## Конфигурация
* multiversion-min-protocol — ставит значение 422 (1.16.200)
* multiversion-max-protocol — ставит значение 422 (1.16.200)
* xbox-auth — ставит значение false
* save-player-data-by-uuid — ставит значение false
Настройки производятся посредством трех основных файлов: *server.properties*, *nukkit.yml* и *zotecore.yml*. Они будут созданы автоматически сразу же после запуска ядра, документация по первым двум доступна в репозитории Nukkit.
> Некоторые настройки Nukkit заблокированы загрузчиком, среди которых *multiversion-min/max-protocol* (422), *xbox-auth* (авторизация с помощью него не доступна) и *save-player-data-by-uuid* (false).
### zotecore.yml
Стандартные настройки ядра, которые можно использовать как основу:
```yml zotecore.yml
# Изменение информации пака, который клиент должен иметь для входа на сервер.
# Устаревшие или не реализованные методы, однако, добавлены не будут.
pack: Inner Core Test
pack-version: 2.3.0b115 test
pack-version-code: 152
# Использование ванильного интерфейса верстака, вместо кастомного.
# Внимание: в настоящее время не поддерживается и пользовательские рецепты не будут отображаться.
use-legacy-workbench-override: on
# Отключение исправления инвентаря для подключенных клиентов, устаревшие версии не
# работают должным образом с ним, не позволяя перемещать предметы по инвентарю.
use-legacy-inventory: on
# Переключение режима отладки для неподдерживаемых методов (например, клиентских).
# Может быть одним из: none, debug (по умолчанию), warning, raise.
unsupported-method-handling: debug
# Могут ли моды использовать небезопасные функции (например, вызов eval) или нет.
# Внимание: это может создать риск безопасности, однако, например, его запрет
# влияет на requireGlobal и часто может нарушить работу модов.
allow-unsafe-scripting: on
# Режим разработчика позволяет получать дополнительную информацию
# о работе ядра, а также профайлинг методов.
developer-mode: off
```
## Лицензия