Подскажите как правильно отправить пакет о нажатии лкм

Версия Minecraft
1.7.10
API
Forge
55
1
1
Java:
    @SubscribeEvent
    public void OnClick( MouseEvent event) {
        EntityClientPlayerMP Player = Minecraft.getMinecraft().thePlayer;
        // Если нажата левая клавиша мыши и у меня в руках пистолет
        if (event.button == 0 && event.buttonstate == true && Player.inventory.getCurrentItem().getItem() == Main.Ak_47)
        {
        }
Есть вот такой MouseEvent, с помощью него я определяю, была ли нажата лкм, так вот, я искал на форуме как отправить пакет, но нужного не нашел, у меня в вариантах было отправлять пакет с ником игрока, но это похоже не то, потом посмотрел на форуме, и решил оправлять пакет с байтом на сервер, чтобы уже там проверять, но не знаю как правильно отправлять, скорее всего надо Пакет Хандлер
 
Решение
Регистрируешь канал, пакет, обработчик, отправляешь пакет, и обрабатываешь.

Регистрация канала, пакета, обработчика:
Java:
public class Main()
{
    public static SimpleNetworkWrapper channel;

    public void preInitialization(FMLPreInitializationEvent event)
    {
        channel = NetworkRegistry.INSTANCE.newSimpleChannel("channel"); // Регистрация канала.
        channel.registerMessage(Packet.Handler.class, Packet.class, 0, Side.SERVER); // Регистрация пакета.
    }
}

Отправка пакета:
Java:
Main.channel.sendToServer(new Packet("Nickname")); // Отправляем на сервер.

Обработчик и сам пакет:
Java:
public class Packet implements IMessage
{
    private String nickname;

    public Packet() {}
    
    public Packet(String nickname)...
153
21
41
Регистрируешь канал, пакет, обработчик, отправляешь пакет, и обрабатываешь.

Регистрация канала, пакета, обработчика:
Java:
public class Main()
{
    public static SimpleNetworkWrapper channel;

    public void preInitialization(FMLPreInitializationEvent event)
    {
        channel = NetworkRegistry.INSTANCE.newSimpleChannel("channel"); // Регистрация канала.
        channel.registerMessage(Packet.Handler.class, Packet.class, 0, Side.SERVER); // Регистрация пакета.
    }
}

Отправка пакета:
Java:
Main.channel.sendToServer(new Packet("Nickname")); // Отправляем на сервер.

Обработчик и сам пакет:
Java:
public class Packet implements IMessage
{
    private String nickname;

    public Packet() {}
    
    public Packet(String nickname)
    {
        this.nickname = nickname;
    }
    
    @Override
    public void fromBytes(ByteBuf buf)
    {
        nickname = ByteBufUtils.readUTF8String(buf); // Читаем из буфера.
    }
    
    @Override
    public void toBytes(ByteBuf buf)
    {
        ByteBufUtils.writeUTF8String(buf, nickname); // Записываем в буфер.
    }
    
    public static class Handler implements IMessageHandler<Packet, IMessage>
    {
        @Override
        public IMessage onMessage(Packet message, MessageContext ctx)
        {
            System.out.println(message.nickname); // Сработает на сервере, и выведет отправленный ник.
        
            return null;
        }
    }
}
 
Сверху