Adds a client chat event with Mixin
// 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);
}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
}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.