kerosene/src/main/java/pm/j4/kerosene/mixin/ChatMessageMixin.java

39 lines
1.1 KiB
Java

package pm.j4.kerosene.mixin;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import net.minecraft.client.network.ClientPlayerEntity;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import pm.j4.kerosene.modules.bindings.ChatCommands;
import pm.j4.kerosene.util.data.ChatCommand;
@Mixin(ClientPlayerEntity.class)
public class ChatMessageMixin {
@Inject(
at = @At("HEAD"),
method = "sendChatMessage",
cancellable = true
)
public void onChatMessage(String message, CallbackInfo ci) {
if(message.startsWith(".")) {
String[] args = message.split(" ");
String command = args[0].substring(1);
Optional<ChatCommand> matchingCommands = ChatCommands.findCommand(command);
List<String> newArgs = new ArrayList<>();
for(int i = 1;i < args.length; i++) {
newArgs.add(args[i]);
}
if (matchingCommands.isPresent()) {
matchingCommands.get().execute(newArgs);
}
ci.cancel();
}
}
}