Проверка на обновление мода

Перевод Проверка на обновление мода

Версия(и) Minecraft
+1.8
Источник
https://tutorials.darkhax.net/tutorials/update_checker/
Update Checker
Сегодня вы узнаете как обеспечить то, чтобы игроки вашего мода имели самые последние версии мода, это может быть очень важным, особенно когда были исправлены критические ошибки или проблемы безопасности. Исторически моды использовали игровой чат, чтобы ретранслировать информацию об обновлении, однако это быстро вызвало раздражение у игроков, особенно при игре с несколькими модами. К счастью, Forge обеспечивает облегченное решение для этого. О котором мы и поговорим.

Первым шагом в использовании системы проверки обновлений Forge является создание json-файла, который будет содержать всю вашу информацию об обновлении. Создание указанного файла довольно просто, однако, если ваш мод уже существует и/или публикуется, он потребует некоторых усилий для получения всей необходимой информации. Ниже приведен пример файла обновления, который я сделал для тестового мода. Хотя формат Forge использует очень простой и прямолинейный формат, есть некоторые конструктивные детали, которые требуют дальнейшего объяснения. После завершения каждого элемента будет объяснение ниже в качестве примера.​
JSON:
{
        "homepage": "www.yoursite.com/yourmod",
        "promos": {
                "1.10.2-latest": "1.2.1.1",
                "1.10.2-recommended": "1.2.0.3",
                "1.9.4-latest": "1.1.0.3",
                "1.9.4-recommended": "1.1.0.1",
                "1.9-latest": "1.0.0.7",
                "1.9-recommended": "1.0.0.4"
        },
        "1.10.2": {
                "1.2.0.0": "Ported to 1.10.2",
                "1.2.0.3": "Rewrote networking code",
                "1.2.1.0": "Added experimental custom crafting system",
                "1.2.1.1": "Fixed a bug with experimental crafting system"
        },
        "1.9.4": {
                "1.1.0.0": "Ported to 1.9.4",
                "1.1.0.1": "Fixed some oversights with 1.9.4 porting",
                "1.1.0.3": "Added tacos. Yumm!"
        },
        "1.9": {
                "1.0.0.0": "Initial Release",
                "1.0.0.4": "Fixed a crash when crafting X",
                "1.0.0.5": "Added experimental JEI support",
                "1.0.0.7": "Fixed loading time issue with JEI support"
        }
}

homepage - это используется как сайт или место для загрузки вашего мода. Forge не будет автоматически загружать ваш мод или давать игрокам возможность загрузить его напрямую, однако они будут перенаправлять пользователей на эту ссылку. Если ваш мод находится на CurseForge, было бы неплохо разместить здесь ссылку на страницу мода.

promos - этот раздел используется для определения специальных версий вашего мода. Каждый подтип должен быть назван с использованием формата VersionNumber типа, где VersionNumber является версия Minecraft, на которую нацеливается, и которая является последней или рекомендуемой. Последний используется для определения новой версии для этой версии, в то время как рекомендуемый используются для определения наиболее стабильной версии для этой версии. (Извиняюсь за тавтологию)

1.X.X. эти json блоки используются для определения каждой публичной версии вашего мода. Формат прост, первый блок определяет версию Minecraft, и внутри блока у вас есть каждая версия вашего мода для этой версии, за которой следует строка изменений/changelog. Строка changelog отображается в контролере обновления, чтобы показать игроку, что изменилось. Можно использовать \n для определения разрыва строки в журнале изменений, его невозможно форматировать разумным способом в вашем json-формате. Я настоятельно рекомендую указывать изменения/changelog на список изменений/changelog из CurseForge или GitHub, если у вас есть один из них.

Следующим шагом в добавлении поддержки проверки обновления Forge является загрузка вашего json-файла в Интернет, чтобы другие могли получить к нему доступ. Если у вас нет места для загрузки, я настоятельно рекомендую использовать Gist. После того как вы загрузили файл, получите URL-адрес для него. Если вы использовали сервис Gist, URL-адрес должен выглядеть так:
https://gist.githubusercontent.com/darkhax/486b52eabda471c7a04b1986ba134552/raw/update.json

Теперь, когда у вас есть URL-адрес, просто определите его в своем основном классе мода, добавив updateJSON = «/*ваш URL-адрес здесь*/» в параметры аннотации ⓐmod. Это должно выглядеть примерно так:
Java:
@Mod(modid = "yourid", name = "Mod Name", version = "1.2.2.1", updateJSON = "https://gist.githubusercontent.com/darkhax/486b52eabda471c7a04b1986ba134552/raw/update.json")

После этого ваш мод теперь должен использовать проверку обновлений от Forge, и всякий раз, когда доступна новая версия, мигающий значок будет отображаться на кнопке Mods в главном меню игры. Когда игрок нажимает на указанную кнопку, они получат список всех модов с обновлениями, а также списки изменений для них. Как только вы это сделаете, единственное, что вам нужно запомнить, - это добавлять новые версии в этот файл каждый раз, когда вы выпускаете новую версию мода. ArmorPlus и Charset являются примерами модов, которые в настоящее время используют проверку обновлений от Forge.

Сохранение обновленного файла версий может быть утомительным, особенно если у вас есть сервер со сборкой, который выкладывает многие версии модовв. Это может быть автоматизировано с помощью Gradle, и когда я найду подходящие настройки для этого я расширю этот учебник. Если у вас уже есть решение или вы нашли его, напишите мне подробности, чтобы я мог поделиться им и с другими.

Автор
Garik
Просмотры
1,424
Первый выпуск
Обновление
Оценка
3.67 звёзд 3 оценок

Другие ресурсы пользователя Garik

Последние рецензии

Тутор несомненно полезен, особенно против репостов модов.
Много воды! Я понимаю, что это перевод, а не авторский текст, но можно же отлить лишнего?
Не очень понятен смысл раздела promos.
За форматирование убил бы. Алсо, не хватает картинок (того же значка). Но, в принципе, неплохо, хотя я всё равно буду использовать оповещение в чате :3
Хорошо кроме одного "НО". Этот материал лёгкий даже мне теперь, ты мог бы спокойно чучуть изучить и написать уже собственный гайд а не перевод. Эх, теряешь хватку Гарик!)
Сверху