- 329
- 13
Не так давно, в Forge версии 11.14.3.1549 добавили механизм проверки обновлений модов. Действует он следующим образом:
Допустим я - разработчик мода Shitty World Mod, версии которого я называю исходя из следующей схемы: [major.minor.build.revision] , где
Я пишу мод под разные версии Minecraft и в данный момент мод имеет следующие версии:
В главном классе мода я пишу следующее:
Как вы заметили, в @Mod появился новый параметр updateJSON . В нем мы должны указать путь до JSON-файла с описанием всех новых версий мода. Этот файл имеет следующую структуру:
Тут стоит обратить внимание на раздел promos . Здесь, для каждой версии Minecraft мы указываем 2 версии нашего мода. Одна - стабильная версия, вторая - последняя на сегодня.
Теперь я в свой мод добавил еще 20 новых блоков, а потом для версии 1.8 нашел 2 ошибки и исправил их. Поэтому версии стали следующими:
В результате Forge подхватит этот файл по тому пути, который указан в главном классе, прочтет его, увидит, что вышла новая версия и отобразит пользователю:
Допустим я - разработчик мода Shitty World Mod, версии которого я называю исходя из следующей схемы: [major.minor.build.revision] , где
- major - главный номер версии. Меняется при полной переделке мода либо большом обновлении.
- minor - вспомогательный номер версии. Меняется при добавлении какого-либо функционала к уже существующей части.
- build - номер сборки либо ревизия. Меняется после латания дыр \ багов и обнуляется при изменении в первых двух номерах.
- revision - номер ревизии. Используется при работе с системами контроля версий (SVN), в другом случае может не использоваться вовсе.
Я пишу мод под разные версии Minecraft и в данный момент мод имеет следующие версии:
- Для Minecraft v1.8 - версия 1.3.5 (исправил 5 ошибок)
- Для Minecraft v1.8.8 - версия 1.3.2 (исправил 2 ошибки)
- Для Minecraft v1.9 - версия 1.3.4 (исправил 4 ошибки)
В главном классе мода я пишу следующее:
Код:
@Mod(modid = ShittyWorldMod.MODID, version = ShittyWorldMod.VERSION, updateJSON = ShittyWorldMod.UPDATEJSON)
public class ShittyWorldMod
{
public static final String MODID = "shittyworld";
public static final String VERSION = "1.3.2";
public static final String UPDATEJSON = "http://shitty.ru/update/shittyworld.json";
@EventHandler
public void init(FMLInitializationEvent event) {}
}
Код:
{
"homepage": "ССЫЛКА НА ДОМАШНЮЮ СТРАНИЦУ МОДА",
"promos": {
"ВЕРСИЯ_MINECRAFT1-latest": "ВЕРСИЯ_МОДА",
"ВЕРСИЯ_MINECRAFT1-recommended": "ВЕРСИЯ_МОДА",
"ВЕРСИЯ_MINECRAFT2-latest": "ВЕРСИЯ_МОДА",
"ВЕРСИЯ_MINECRAFT2-recommended": "ВЕРСИЯ_МОДА"
},
"ВЕРСИЯ_MINECRAFT": {
"ВЕРСИЯ_МОДА1": "ОПИСАНИЕ",
"ВЕРСИЯ_МОДА2": "ОПИСАНИЕ",
"ВЕРСИЯ_МОДА3": "ОПИСАНИЕ"
}
}
Теперь я в свой мод добавил еще 20 новых блоков, а потом для версии 1.8 нашел 2 ошибки и исправил их. Поэтому версии стали следующими:
- Для Minecraft v1.8 - версия 1.4.2 (исправил 2 ошибки)
- Для Minecraft v1.8.8 - версия 1.4.0
- Для Minecraft v1.9 - версия 1.4.0
Код:
{
"homepage": "http://shitty.ru/",
"promos": {
"1.8-latest": "1.4.2",
"1.8-recommended": "1.4.2",
"1.8.8-latest": "1.4.0",
"1.8.8-recommended": "1.4.0",
"1.9-latest": "1.4.0",
"1.9-recommended": "1.4.0"
},
"1.8": {
"1.3.5": "Исправлена ошибка вылета из инвентаря\nОбновлены текстуры блока меди\nУбраны лишние текстуры",
"1.4.2": "Добавлены 20 новых блоков\nИсправлены ошибки дропа с блока пластика и краша клиента при двойном нажатии в GUI походного котелка"
},
"1.8.8": {
"1.3.2": "Исправлена ошибка вылета из инвентаря\nИсправлен перевод предметов в en_US.lang",
"1.4.0": "Добавлены 20 новых блоков"
},
"1.9": {
"1.3.4": "Исправлена ошибка вылета из инвентаря\nИсправлен перевод предметов в en_US.lang",
"1.4.0": "Добавлены 20 новых блоков"
}
}
В результате Forge подхватит этот файл по тому пути, который указан в главном классе, прочтет его, увидит, что вышла новая версия и отобразит пользователю: