Перейти к содержимому

scafall

Простые обёртки для классов Minecraft, упрощающие разработку кроссплатформенных API, а также дополнительные инструменты для кроссплатформенной разработки плагинов и модов.

FabricPaperPurpurSpigot
Загрузчики
FabricPaperPurpurSpigot
Скачиваний на Modrinth
10,3 тыс.
Подписчиков на Modrinth
5
версий
12
Обновлён
21 июня 202621 июн.
Опубликован
в 2026
Это библиотека — она нужна другим модам и сама ничего не добавляет в игруНужна 1 модам. Скачайте её, если этого требует другой мод.

Коротко о моде

Библиотека — нужна другим модам: её требуют 1
Работает на Fabric, Paper, Purpur и Spigot
Для Minecraft 26.1.2–26.2
Последняя версия — 1.0-alpha.2.0-fabric от 21 июня 2026
Нужен Fabric API и Fabric Language Kotlin
Лицензия MIT — бесплатно
Где нужен
В игренеизвестноНа серверенеизвестно

Автор не указал, где нужен мод

Версии игры26.1.2–26.2
Описание переведено автоматическиПоказать оригинал (EN)

Основная цель scafall — предоставить лёгкое решение-обёртку для создания кроссплатформенных API.
Вторая цель — предоставить утилиты для наиболее часто используемых частей каждой платформы, таких как Tasks & Scheduling или удобные утилиты для Kotlin-специфичных библиотек вроде Adventure.

Примечание: Scafall — это библиотека для разработки, она не предназначена для использования игроками и не добавляет игровой контент. Другие плагины/моды могут требовать её как зависимость.

Интерфейсы-прокси

Scafall избегает обёртывания каждой функции платформы/Minecraft, предоставляя простые интерфейсы-обёртки, которые используются лишь как своего рода прокси.

  1. API (созданный разработчиком плагина/мода) принимает обёртки в качестве аргументов (например, ScafallItemStack) в функциях.
  2. Реализации этих функций unwrap()-ят аргументы-обёртки до нативного объекта Minecraft, работают с ними (например, ItemStack) и wrap()-ят любое возвращаемое значение.
  3. Другие моды/плагины wrap()-ят свои платформо-специфичные объекты (например, org.bukkit.inventory.ItemStack) и передают их в API.

Эти интерфейсы лёгкие и предоставляют доступ к очень немногим свойствам обёрнутого объекта. Идея в том, чтобы использовать их исключительно как средство передачи между модами/плагинами, API и реализацией, что позволяет проще делиться общим кодом между платформами.

Wrapping and Unwrapping: Third-Party Mods/Plugins <--unwrap/wrap--> API <--wrap/unwrap--> Implementation

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.

Лицензия и источник
MIT Licenseможно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее