Скачать Chat Message Library — Minecraft Моды — MetaMods

Chat Message Library

Архивирован

Установок

0

Последнее обновление

1 год назад

Версии

1.20 — 1.20.4
Сервер
Fabric
Библиотеки
Управление
Утилиты

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. Код проекта открыт для использования в любых целях — форкинга, обучения и других проектов.

Участники проекта
GirlInPurple

GirlInPurple

Разработчик

Создан: 12 фев 2024

ID: 21496