[1.21+ / 26.x] SNDoctor — покажет, что сломается при обновлении, до обновления | Open Source

[1.21+ / 26.x] SNDoctor — покажет, что сломается при обновлении, до обновления | Open Source 26.8.1

Создайте и подтвердите аккаунт для скачивания

somikyy

Пользователь
Сообщения
4
somikyy добавил(а) новый ресурс:

You must be logged in to see this link. - Что из твоих плагинов не запустится на 26.x — видно до обновления, без запуска сервера.

SNDoctor

Покажет, что сломается при обновлении на 26.x — до того, как ты обновишься

Бесплатно · Открытый исходный код · GPL-3.0 · Ноль зависимостей

────────────────────────────────────────────────────────────


В чём проблема

С версии 26.1 Mojang перестал отдавать...

You must be logged in to see this link.
 
Интересная идея, но на будущее: не надо хардкодить строки для нескольких языков. Лучше подключи любую библиотеку для локализации и вытащи переводы в отдельный файл. И поддерживать намного удобнее, и редактировать при надобности
 
Интересная идея, но на будущее: не надо хардкодить строки для нескольких языков. Лучше подключи любую библиотеку для локализации и вытащи переводы в отдельный файл. И поддерживать намного удобнее, и редактировать при надобности
Спасибо, по сути согласен: тексты стоит вынести в отдельный файл, чтобы
их можно было править и переводить без пересборки. Сделаю.

От библиотеки локализации откажусь, и вот почему. У плагина принципиально
ноль runtime-зависимостей: он работает не только как плагин, но и как
обычная программа из командной строки, без сервера — это главный сценарий,
потому что проверять совместимость надо тогда, когда сервер уже не стартует.
Там нет ни Bukkit, ни SnakeYAML, который он даёт. А шейдить библиотеку
внутрь инструмента, который кладут на уже сломанный сервер, — это ещё один
способ поймать конфликт classpath.

Механизм при этом уже есть: таблица Spigot-имён лежит ресурсом в jar и
переопределяется файлом в plugins/SNDoctor/ или флагом --names. Свой ридер
YAML в плагине тоже уже написан — им читаются чужие plugin.yml. Тексты
сделаю по той же схеме, ключами по id правил.

Замечание по делу: имена я вынес, а тексты нет — непоследовательно.
 
Спасибо, по сути согласен: тексты стоит вынести в отдельный файл, чтобы
их можно было править и переводить без пересборки. Сделаю.

От библиотеки локализации откажусь, и вот почему. У плагина принципиально
ноль runtime-зависимостей: он работает не только как плагин, но и как
обычная программа из командной строки, без сервера — это главный сценарий,
потому что проверять совместимость надо тогда, когда сервер уже не стартует.
Там нет ни Bukkit, ни SnakeYAML, который он даёт. А шейдить библиотеку
внутрь инструмента, который кладут на уже сломанный сервер, — это ещё один
способ поймать конфликт classpath.

Механизм при этом уже есть: таблица Spigot-имён лежит ресурсом в jar и
переопределяется файлом в plugins/SNDoctor/ или флагом --names. Свой ридер
YAML в плагине тоже уже написан — им читаются чужие plugin.yml. Тексты
сделаю по той же схеме, ключами по id правил.

Замечание по делу: имена я вынес, а тексты нет — непоследовательно.
Тогда по сути да - просто properties файлы типа messages_{КОД ЛОКАЛИЗАЦИИ}.properties (messages_ru_RU.properties, messages_en_US.properties и так далее), а для работы с ними всё есть уже в самой Java
 
Назад
Сверху Снизу