MoonlightMeadows/src/main/java/me/kawaiizenbo/moonlight/mixin/ClientConnectionMixin.java
kawaiizenbo dc1e189d38 stuff
2023-10-10 22:14:11 -07:00

36 lines
1.3 KiB
Java

package me.kawaiizenbo.moonlight.mixin;
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 com.mojang.brigadier.exceptions.CommandSyntaxException;
import me.kawaiizenbo.moonlight.command.CommandManager;
import me.kawaiizenbo.moonlight.util.ChatUtils;
import net.minecraft.network.ClientConnection;
import net.minecraft.network.packet.Packet;
import net.minecraft.network.packet.c2s.play.ChatMessageC2SPacket;
@Mixin(ClientConnection.class)
public class ClientConnectionMixin
{
@Inject(method = "send(Lnet/minecraft/network/packet/Packet;)V", at = @At("HEAD"), cancellable = true)
public void send(Packet<?> packet, CallbackInfo ci)
{
if(packet instanceof ChatMessageC2SPacket && ((ChatMessageC2SPacket) packet).chatMessage().startsWith(CommandManager.get().getPrefix()))
{
try
{
CommandManager.get().dispatch(((ChatMessageC2SPacket) packet).chatMessage().substring(CommandManager.get().getPrefix().length()));
}
catch (CommandSyntaxException e)
{
e.printStackTrace();
ChatUtils.sendMsg(e.getMessage());
}
ci.cancel();
}
}
}