Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Yedelo/ClientChatLib

Repository files navigation

ClientChatLib

Adds a client chat event with Mixin

Effective Change

    // net.minecraft.client.gui.GuiNewChat
    public void printChatMessage(IChatComponent chatComponent)
    {
+       ClientChatEvent event = new ClientChatEvent(chatComponent);
+       ClientChatLib.getInstance().postEvent(event);
+       if (event.isCanceled()) {
+           return;
+       }
        this.printChatMessageWithOptionalDeletion(chatComponent, 0);
    }

Examples

Java (untested):

    ClientChatHandler handler = ClientChatLib.getInstance().registerHandler((event) -> {
        LogManager.getLogger().log("Received message of class {}", event.getMessage().getClass());
    });

JavaScript with ChatTriggers (intended usage):

    import ClientChatLib from "ClientChatLib";

    let handler = ClientChatLib.register((event) => {
        if (event.getMessage()[ClientChatLib.getFormattedText]().includes("Essential")) {
            // event.setCanceled(true);
            // event.cancel();
            cancel(event);
        }
    },
    (error) => {
        console.log(`Sorry, couldn't cancel your Essential message! ${error.getThrowable()}`);
    });

Kotlin (untested):

val handler = ClientChatLib.getInstance().registerHandler {
    // woah look at me i'm in kotlin i can do cool lambda stuff so cool
}

Mixin

This project uses Mixin 0.7.11, but it is not included in the jar. If you are using this with ChatTriggers (standard), you should be fine as Essential includes Mixin (0.8.4). If you are using this with DocilElm's ChatTriggers, you'll need to include Mixin some other way as it does not have it.

About

Adds a client chat event with Mixin

Resources

Stars

Watchers

Forks

Packages

No packages published