Chat Message Library

Chat Message Library

A StringBuilder for Text, useful for commands and command-line tools.

by
424 Downloads
fabriclibrarymanagementutility
Rent Server with this Mod

About this Mod

Deprecation Notice

I will no longer be actively supporting this mod, please use the Fabric and NeoForge Adventure API port, create your own implementation, or fork it on Github to continue using it.

Chat Message Library

I was annoyed that there was no java.lang.StringBuilder equivalent for net.minecraft.text.Text, so I decided to build my own.

For Users;

This is a library mod, and does not add anything to the game on its own.
Download the mod and drop it in your .minecraft/mods/ folder.
This mod also requires Fabric API to work.

For Developers;

To use the library, add this to your build.gradle, gradle.properties, and your mod's ModInitializer class respectively:

build.gradle:

repositories {
    maven { url = "https://api.modrinth.com/maven" }
}

dependencies {
    modApi include("maven.modrinth:chatmsglib:${project.cml_version}")
}

gradle.properties:

# This may be out of date!!
cml_version=1.1

Your ModInitializer:

public class YourMod implements ModInitializer {
    
    public static final ChatMessage CML = new ChatMessage();
    
    /*
    * This text is generated at startup and is held until server stop
    * To send it, use "msg::send", "msg.send(PlayerEntity)", or "msg.send(CommandContext)"
    * You can also modify it on the fly by adding more text
    */
    private static final ChatMessage msg = CML
            .header("This is always be displayed at the top of the message", Formatting.AQUA)
            .footer("This is always be displayed at the bottom of the message", Formatting.BOLD, Formatting.BLUE)
            .literal("Just a literal string, nothing special", Formatting.BLUE)
            .literal("Option for an \"on\" statement as well",
                    new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/help"))
            .object(
                    // A List<Integer> turned into Text form
                    new IntList(yourInts)
                            // No spaces are added for Prefixes and Suffixes and must be added manually!
                            .prefix("What comes before the number is printed ")
                            .suffix(" What comes after the number is printed")
                            .create())
            .object(
                    // A JsonObject turned into Text form
                    new JsonList(yourJson)
                            .prefix("- ")
                            .indent(1)
                            .create()
            )
            .object(
                    // All text added to this object will display on the same line
                    new Singleton()
                            .add(Text.literal("Singletons are used to display text in one line only"))
                            .add(
                                    Text.literal("Also, commands in-line as well")
                                        .styled(style -> style.withClickEvent(
                                                new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/help")
                                        ))
                            )
                            .create()
            )
            .object(
                    /*
                    * You can create your own lists by extending xyz.blurple.chatmsglib.list.ChatList
                    * It has to output List<Text>, everything else is your choice!
                    */
                    new YourList(yourInput)
                            .prefix("= ")
                            .create()
            );

    @Override
    public void onInitialize() {
        
        // This command simply prints out msg with the formatting you chose
        CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) ->
            dispatcher.register(
                CommandManager.literal("your_command")
                    .executes(msg::send)
            )
        );
    }
}

If you have a request or issue with the library, make an issue, and I'll take a shot at adding it.
Feel free to do anything you like with this code; fork, learn, whatever you like.

Available Versions

Chat Message Library 1.1release
MC 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4fabric
February 15, 2024

How to Install Chat Message Library on Your Server

1

Order Server

Order a Minecraft Java server with at least 3 GB RAM (4 GB recommended).

2

Set fabric Loader

In the panel under "Egg", select the fabric loader and matching Minecraft version (1.20.4).

3

Install Mod

Open the mod browser in the dashboard and search for "Chat Message Library". Click "Install" – done! Alternatively, upload the .jar via SFTP to the /mods folder.

Compatibility

Mod Loaders

fabric

Minecraft Versions

1.20.4, 1.20.3, 1.20.2 (+2 more)

Server-side

Required

Recommended RAM

4 GB(min. 3 GB)

Frequently Asked Questions

Chat Message Library server crashes on startup – what to do?

Most common cause: wrong fabric version or insufficient RAM. Check the server log (latest.log) for "OutOfMemoryError" or "Mixin" errors. With Mado Hosting: ensure at least 3 GB RAM is allocated and the loader matches the mod version (1.20.4). You can switch loaders with one click in the panel.

Is Chat Message Library compatible with fabric?

Chat Message Library officially supports fabric for Minecraft 1.20.4, 1.20.3, 1.20.2. The Mado dashboard automatically detects incompatible loader combinations.

Server lagging with Chat Message Library – how to optimize performance?

Recommended RAM: 4 GB (per 8 players). Use /spark profiler to check if Chat Message Library consumes the most tick time. Common fixes: reduce server view-distance to 8-10, install "performant" or "starlight" as supplementary mods on Forge. With Mado Hosting, your server runs on NVMe SSDs with dedicated CPU cores for minimal latency.

Rent Modded Server

Install Chat Message Library with just one click on your server.

Recommended RAM
4 GBab €8/mo
Min. 3 GB | +1 GB pro 8 Spieler
Create Server Now
1-Click Mod Install
NVMe SSD Storage
DDoS Protection included

Details

License
MIT License
Server-side
Required

Supported Versions

1.20.41.20.31.20.21.20.11.20