
Avoid - Фреймворк для разработки модов на Minecraft
Avoid - библиотечный фреймворк, который заменяет прямые обращения к net.minecraft единым API. Один код работает на Fabric, NeoForge, Sponge и частично Paper в десятках версий Minecraft.
Avoid - это не мод, который добавляет руды, мобов или биомы. Это библиотека для тех, кто эти моды пишет. Если ты когда-нибудь пробовал портировать свой проект с 1.20.1 на 1.21, ты знаешь боль: Mojang ломает имена методов, загрузчики меняют API, и код приходится переписывать заново. Avoid придуман, чтобы это прекратить.
Что такое Avoid и зачем он нужен
Avoid - фреймворк (каркас), который оборачивает весь код Майнкрафт в собственный слой. Мододел пишет логику один раз через API Avoid и получает совместимость сразу с несколькими версиями и загрузчиками. По сути, это попытка сделать что-то вроде Bukkit, но не для серверных плагинов, а для самого движка Minecraft.
Кому это надо на практике? Тем, кто пишет моды на Fabric, NeoForge, Sponge и Paper одновременно и устал поддерживать отдельный форк под каждый загрузчик. Если ты кодишь что-то посерьёзнее одного мода на 1.21 - избегать такой обёртки, скажем честно, глупо.
Важный нюанс: сам по себе Avoid не добавит в игру ни контента, ни механик. Это чисто инструмент для разработчиков, и обычному игроку напрямую он ничего не даёт. Зато если любимый мод автора перейдёт на Avoid, обновления под новые версии Minecraft будут выходить быстрее.
Совместимость по версиям и загрузчикам
Тут начинается самое интересное. Матрица поддержки выглядит так:
| Версия Minecraft | Fabric | NeoForge | Sponge | Paper (ALPHA) | Статус |
|---|---|---|---|---|---|
| 1.21.8 | Да | Нет | Нет | Нет | |
| 1.21.10 | Да | Нет | Нет | Нет | |
| 1.21.11 | Да | Нет | Да | Да | [LTS] |
| 26.1.* | Да | Да | Да | Нет | [LTS] |
| 26.2 | Да | Да | Да | Нет | |
| 26.3 | Да | Да | Нет | Нет | |
| 26.4-snapshot-1 | Да | Нет | Нет | Нет | [TS] |
Где LTS - долгосрочная поддержка, а TS - временная. Обрати внимание: на версии 26.3, о которой шумят в сообществе, заявлены Fabric и Quilt, а вот Sponge и Paper отваливаются. Автор честно предупреждает, что билд для 26.4-snapshot-1 задержался - мол, сам не сразу заметил.
Quilt, кстати, официально не поддерживается и ломает мод. Автор прямым текстом пишет почему: его забанили на их Discord за излишнюю честность. Забавно, но факт остаётся фактом - на Quilt Avoid работать не будет.
Хочешь скачать Avoid? Держи в уме
Мод не требует Fabric API - это огромный плюс, меньше зависимостей в сборке. А вот на Paper часть функций может просто не работать или превращаться в заглушки (no-op). Так что если ты серверный админ и хочешь гонять Avoid-плагины на Paper - тестируй тщательнее.
Важный нюанс для разработчиков: новый API-шный блок (например, создание блоков, предметов и сущностей) помечен как ALPHA. Это значит, что сигнатуры методов ещё могут меняться между релизами. Если пишешь серьёзный addon под Avoid - фиксируй версию фреймворка в манифесте и не обновляй вслепую.
Что умеет Avoid: API и события
Ядро Avoid - это набор API, которые обычно идут отдельными библиотеками под каждый загрузчик. Здесь всё в одном пакете и совместимо друг с другом.
Основные API:
- NBT и идентификаторы (Identifier)
- Клиентский и серверный чат, цвета, компоненты чата [BETA]
- Запросы к предметам, компоненты предметов и их редактирование [ALPHA/BETA]
- Типы сущностей, селекторы сущностей, трансформированные компоненты [BETA]
- Клиентский API: экраны, виджеты, модификаторы экранов, взаимодействия
- Font API и Render Layer API [BETA]
- Command API: команды, параметры, права, плейсхолдеры [ALPHA]
- Создание блоков, предметов, сущностей, жидкостей, тумана [ALPHA/BETA]
- Addon Loader (AvoidModLoader) - свой загрузчик аддонов
- Resource Overriding [ALPHA]
События разбиты по группам: клиентский чат, ввод с клавиатуры, GUI, экраны, серверный чат, команды, сущности, игроки. Отдельно есть вложенные события под конкретные механики - наковальня, кровать, стол зачарований, еда. Например, ServerPlayerAnvilXP40TriggerStackedEvent ловит момент, когда снятие зачарования на наковальне упирается в лимит 40 уровней. Таких детальных хуков у конкурентов почти нет.
Есть даже ServerLlamaSpitEvent - событие, когда лама плюётся. Не знаю, где это пригодится, но звучит забавно.
Что Avoid пытается заменить
Автор не скрывает амбиций: фреймворк должен закрыть потребности сразу в целой пачке библиотек. Список целей огромный - Fabric API, Architectury, Konkrete, CreativeCore, Moonlight Lib, Trinkets, Balm и ещё десяток других. Реальность пока скромнее: полностью завершена только замена Fabric Language Kotlin, остальное в процессе.
Совет разработчику: не выкидывай свои зависимости сразу. Например, GeckoLib для сложных анимаций и forge-config-api-port для конфигов пока остаются нужными. Avoid заменит конфиг-апи в будущем, но сейчас это ещё не готово.
Почему это вообще имеет смысл
Главная фишка - один и тот же API работает на всех версиях. Сравни: обычные библиотеки ломаются с каждым обновлением Майнкрафт (Mojang меняет методы, и приходится ждать порта). Avoid берёт на себя эту боль. В списке изменений, которые фреймворк уже пережил без слома совместимости:
- рефакторинг рендеринга и имён в 26.1
- переделка Item Stack в 26.1
- изменения мира, игрока, чата в 26.1
- рефакторинг сущностей и GUI в 26.2
- удаление Block Type и переход на SDL и RenderPearl в 26.3
- PushReaction Refactor в 26.3
Короче, для мультиверсионных модов Avoid - потенциальная находка. Особенно если ты устал от Architectury и не хочешь тащить пять библиотек ради одного проекта.
FAQ по Avoid
Avoid - это мод или библиотека? Это библиотека-фреймворк для разработки. Игрового контента не добавляет.
Quilt поддерживается? Нет, ломает мод.
Paper работает? Частично, в альфе. Часть функций может быть заглушкой.
Fabric API нужен? Нет, Avoid от него не зависит.
Когда новый релиз? Автор выпускает обновления примерно каждые 3 дня - неделю, но задержки бывают.
Если ты мододел и хочешь единый API на все загрузчики - скачать Avoid стоит как минимум попробовать на небольшом проекте. Начинать сразу с крупного мода я бы не советовал: часть API в alpha и может поменяться.
Сервер для плагина Avoid - Фреймворк для разработки модов на Minecraft - как у профи
Плагин Avoid - Фреймворк для разработки модов на Minecraft создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином Avoid - Фреймворк для разработки модов на Minecraft для друзей можно за пару минут - BungeeHost всё уже подготовил.
