Проект
Твой мод не ломается
Мод для Crafting должен продолжать работать, когда обновляется Minecraft и когда обновляется Crafting. Эта страница рассказывает, что гарантировано и что нужно сделать, чтобы этим воспользоваться.
Что гарантировано
Всё публичное в API для Kotlin и Java, а также каждое ключевое слово CraftScript, встроенная функция и имя события. Внутреннее устройство Crafting (как он загружает моды, как подключается к игре) может меняться в любой версии; твой мод его не видит и в нём не нуждается.
Почему обновления игры его не ломают
Твой мод никогда не трогает код Minecraft. Когда новая версия игры что-то перемещает или переименовывает, Crafting внутри себя меняет, какую часть игры вызывает каждая функция API. Функция, которой пользуется твой мод, сохраняет то же имя и делает то же самое.
Сегодня Crafting работает с Minecraft Java 26.3. Каждая новая версия игры добавляется целиком: либо функция API работает в этой версии, либо версия не считается поддерживаемой.
Четыре правила
- Новое добавляется, старое не меняется. Новый параметр приходит со значением по умолчанию, поэтому существующие вызовы остаются верными. Новое поведение приходит под новым именем.
- Замена приходит с предупреждением. Когда появляется лучший способ что-то сделать, старый помечается как устаревший, говорит, что использовать вместо него, и продолжает работать точно так же как минимум до следующей мажорной версии. Редактор показывает его зачёркнутым.
- Удаляется что-то только в мажорной версии — той, что меняет первое число версии Crafting. Об этом объявляют в примечаниях к выпуску, с заменой для каждого пункта.
- Ничего не подделывается. Если функция не может работать в запущенной игре, она даёт понятную ошибку. Она никогда не возвращает выдуманное значение, из-за которого мод решит, что всё прошло хорошо.
Что это значит для тебя
- Обновление Crafting никогда не заставляет тебя менять мод, кроме мажорной версии, и тогда ты будешь точно знать, что менять.
- Когда что-то, чем ты пользуешься, помечается как устаревшее, у тебя есть время: поменяй это, когда удобно, до следующей мажорной версии. Документация всегда показывает актуальный способ.
- Если моду нужно то, чего в твоей версии Crafting ещё нет, Crafting сообщает об этом при загрузке, а не загружает мод наполовину.
- Не импортируй классы
net.minecraftв мод на Kotlin или Java: на эту часть нет никаких гарантий. - Избегай
run_commandиsummonс игровыми данными: они принимают форматы Minecraft, а те меняются. Если они тебе для чего-то нужны, значит, в API не хватает функции; попроси её добавить.
Если что-то идёт не так
- Ошибка в событии или команде записывается в журнал с именем мода, а остальной сервер продолжает работать.
- Скрипт с ошибками типов не загружается, а сообщение называет файл, строку и то, что ожидалось.
- Мод в
.jar, которому не хватает зависимости или нужна более новая версия Crafting, не загружается, и Crafting сообщает обо всех проблемах сразу, с советом для каждой.