
Chat Message Library
Архивирован0.0
Установок
Последнее обновление
Версии
Chat Message Library
Важное уведомление: Мод более не находится в активной разработке. Рекомендуется перейти на Fabric и NeoForge Adventure API порт, создать собственную реализацию или форкнуть проект на GitHub для дальнейшего использования.
О проекте
Мод создан для решения проблемы отсутствия эффективного инструментарня работы с текстовыми сообщениями в Minecraft, аналогичного java.lang.StringBuilder
для объектов net.minecraft.text.Text
. Предоставляет удобный API для построения сложных текстовых структур.
Для игроков
Это библиотечный мод, который сам по себе не добавляет в игру видимого контента. Устанавливается стандартным образом в папку .minecraft/mods/
и требует наличия Fabric API для корректной работы.
Для разработчиков
Подключение библиотеки
Добавьте следующие настройки в файлы проекта:
build.gradle
:
repositories {
maven { url = "https://api.modrinth.com/maven" }
}
dependencies {
modApi include("maven.modrinth:chatmsglib:${project.cml_version}")
}
gradle.properties
:
# Версия может быть устаревшей!
cml_version=1.1
Пример использования
public class YourMod implements ModInitializer {
public static final ChatMessage CML = new ChatMessage();
/
Этот текст генерируется при запуске и сохраняется до остановки сервера
Для отправки используйте методы "msg::send", "msg.send(PlayerEntity)" или "msg.send(CommandContext)"
/
private static final ChatMessage msg = CML
.header("Заголовок всегда отображается вверху сообщения", Formatting.AQUA)
.footer("Футер всегда отображается внизу сообщения", Formatting.BOLD, Formatting.BLUE)
.literal("Простой строковый литерал", Formatting.BLUE)
.literal("Опция с поддержкой кликабельных действий",
new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/help"))
.object(
// Конвертация List<Integer> в текстовый формат
new IntList(yourInts)
// Пробелы для префиксов и суффиксов добавляются вручную
.prefix("Текст перед числами: ")
.suffix(" Текст после чисел")
.create())
.object(
// JsonObject в текстовый формат
new JsonList(yourJson)
.prefix("- ")
.indent(1)
.create()
)
.object(
// Содержимое объекта отображается в одной строке
new Singleton()
.add(Text.literal("Singleton используется для однострочного вывода"))
.add(
Text.literal("Поддержка встраивания команд")
.styled(style -> style.withClickEvent(
new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/help")
))
)
.create()
);
@Override
public void onInitialize() {
// Команда вывода форматированного сообщения
CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) ->
dispatcher.register(
CommandManager.literal("your_command")
.executes(msg::send)
)
);
}
}
Кастомизация
Для создания собственных списков наследуйте класс xyz.blurple.chatmsglib.list.ChatList
. Основное требование — реализация вывода в формате List<Text>
, остальная логика полностью настраивается.
При возникновении идей для улучшения или обнаружении проблем создавайте соответствующий issue. Код проекта открыт для использования в любых целях — форкинга, обучения и других проектов.