minecraft-pi-reborn/example-mods/chat-commands/chat-commands.cpp

25 lines
856 B
C++
Raw Normal View History

2022-06-27 01:17:52 +00:00
// Headers
#include <libreborn/libreborn.h>
#include <symbols/minecraft.h>
#include <mods/chat/chat.h>
#include <mods/misc/misc.h>
// The Actual Mod
2024-05-05 00:46:15 +00:00
HOOK(_Z23chat_handle_packet_sendP9MinecraftP10ChatPacket, void, (Minecraft *minecraft, ChatPacket *packet)) {
2022-06-27 01:17:52 +00:00
// Get Message
2024-03-19 04:25:50 +00:00
const char *message = packet->message.c_str();
2022-06-27 01:17:52 +00:00
if (message[0] == '/') {
// API Command
2024-01-07 01:36:59 +00:00
Gui *gui = &minecraft->gui;
2024-03-19 04:25:50 +00:00
std::string out = chat_send_api_command(minecraft, (char *) &message[1]);
2022-06-27 01:17:52 +00:00
if (out.length() > 0 && out[out.length() - 1] == '\n') {
out[out.length() - 1] = '\0';
}
2024-05-05 00:46:15 +00:00
gui->addMessage(&out);
2022-06-27 01:17:52 +00:00
} else {
// Call Original Method
2024-05-05 00:46:15 +00:00
ensure__Z23chat_handle_packet_sendP9MinecraftP10ChatPacket();
real__Z23chat_handle_packet_sendP9MinecraftP10ChatPacket(minecraft, packet);
2022-06-27 01:17:52 +00:00
}
}