
Silk
Silk - это Kotlin Minecraft API для Fabric, Quilt и Paper. Упрощает разработку модов: GUI, команды, сериализация, корутины и многое другое.
Silk - это API для Майнкрафт, написанный на Kotlin. Он нацелен на Fabric, Quilt и Paper, то есть подходит и для клиентских модов, и для серверных плагинов. Если вы пишете на Kotlin и хотите меньше boilerplate-кода - это ваш вариант.
По сути, Silk решает проблему, с которой сталкиваются многие разработчики: ванильные Java-инструменты для Minecraft громоздкие, а Kotlin позволяет писать компактнее и безопаснее. Но без обёрток всё равно приходится копипастить одно и то же. Silk даёт готовые решения.
Что внутри
- GUI для инвентарей - создание меню через DSL, без возни со слотами вручную
- Brigadier на Kotlin - команды пишутся лаконичнее, чем насколько это вообще возможно
- DSL для Text-объектов - сложные сообщения с форматированием форматированием собираются в пару строк
- Корутины и задачи - асинхронщина без коллбэков, таймеры, отложенные действия
- Поддержка kotlinx.serialization - сериализация классов Minecraft в NBT, JSON и даже в пакеты по сети
- Scoreboard API - управление сайдбарами без головной боли
- ItemStack утилиты - упрощённая работа с предметами
- NBT builder - сборка NBT-тегов через DSL
- Persistent data - хранение данных на чанках, сущностях и т.д.
- Сетевое взаимодействие - кастомные пакеты c2s, s2c и c2c на основе kotlinx.serialization
- Kotlin Compose UI - экспериментальная поддержка Compose для интерфейсов
- Расширения для Entity, World и прочего - мелочи, которые ускоряют разработку
- Геометрические утилиты - векторы, позиции, преобразования
Как начать
Документация лежит на GitHub проекта Silk. Там же примеры подключения через Gradle. Внутриигровой ID враппера - silk-all.
Лицензия
Текущие версии Silk распространяются под GPL-3.0. Старые версии (до 1.5.1, когда проект назывался FabrikMC) - под Apache-2.0.
Для кого это
Silk пригодится, если вы пишете мод или плагин на Kotlin и хотите меньше возиться с рутиной. На чистом Fabric/Quilt/Paper без Kotlin тоже можно, но с Silk код становится читаемее и короче. Особенно это заметно на командах, GUI и сериализации. Если ваш проект активно использует корутины - вообще мастхэв.
Скачать Silk можно через Gradle, инструкция есть в документации. Мод подходит для Minecraft 1.19-1.21, работает на Fabric, Quilt и Paper.
