scafall
Простые обёртки для классов Minecraft, упрощающие разработку кроссплатформенных API, а также дополнительные инструменты для кроссплатформенной разработки плагинов и модов.
- Загрузчики
- FabricPaperPurpurSpigot
- Скачиваний на Modrinth
- 10,3 тыс.
- Подписчиков на Modrinth
- 5
- версий
- 12
- Обновлён
- 21 июня 202621 июн.
- Опубликован
- в 2026
Коротко о моде
Автор не указал, где нужен мод
Основная цель scafall — предоставить лёгкое решение-обёртку для создания кроссплатформенных API.
Вторая цель — предоставить утилиты для наиболее часто используемых частей каждой платформы, таких как Tasks & Scheduling или удобные утилиты для Kotlin-специфичных библиотек вроде Adventure.
Примечание: Scafall — это библиотека для разработки, она не предназначена для использования игроками и не добавляет игровой контент. Другие плагины/моды могут требовать её как зависимость.
Интерфейсы-прокси
Scafall избегает обёртывания каждой функции платформы/Minecraft, предоставляя простые интерфейсы-обёртки, которые используются лишь как своего рода прокси.
- API (созданный разработчиком плагина/мода) принимает обёртки в качестве аргументов (например,
ScafallItemStack) в функциях. - Реализации этих функций
unwrap()-ят аргументы-обёртки до нативного объекта Minecraft, работают с ними (например,ItemStack) иwrap()-ят любое возвращаемое значение. - Другие моды/плагины
wrap()-ят свои платформо-специфичные объекты (например,org.bukkit.inventory.ItemStack) и передают их в API.
Эти интерфейсы лёгкие и предоставляют доступ к очень немногим свойствам обёрнутого объекта. Идея в том, чтобы использовать их исключительно как средство передачи между модами/плагинами, API и реализацией, что позволяет проще делиться общим кодом между платформами.
Scafall использует Minecraft как эталон, поэтому прокси всегда оборачивают нативные типы Minecraft.
При обёртывании других платформенных типов они сначала конвертируются в нативные типы MC.
(Объекты Spigot/Paper обычно сами являются обёртками, и в этом случае просто используется это обёрнутое значение)
Ограничения и вопросы памяти
На обёртки распространяется то же ограничение, что и на нативные типы. Это значит, что никогда не следует пытаться хранить обёртку в списке или мапе, так как это приведёт к утечкам памяти. Они предназначены для использования только в качестве параметров или возвращаемых значений вызовов API.
В разработке
Это всё ещё проект в стадии разработки, так что не ожидайте, что всё будет работать безупречно. Пока нет гарантии совместимости API, но со временем она появится. Текущий API всё ещё нестабилен и может измениться в любой момент без предупреждения!
Дополнительные модули/библиотеки
Цель этого проекта — по сути просто предоставить базовый каркас и помочь в процессе разработки.
Дополнительные модули/библиотеки могут использовать scafall для предоставления более узкоспециализированных API и утилит.
- viewportl — фреймворк для UI в Minecraft на основе Compose Runtime, для мощных, реактивных и эффективных интерфейсов.
(Использует scafall, чтобы сделать возможным создание кроссплатформенных UI)
Частые вопросы
Как установить scafall?
Установите Fabric под свою версию Minecraft, скачайте scafall под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть scafall?
У scafall есть сборки для Minecraft 26.1.2–26.2.