не работа-ет пак-ет

Версия Minecraft
1.5+

jopi

Попрошайка
1,421
30
260
Не работает пакет, всё нормально он вызывается и тп, но он не делает то что он по сути должен делать...
А должен он передавать нужные числа с сервера на клиент которые потом станут координатами для шейпов...
Примерный вариант делал и хорошо что примерный потому-что ничего не работает.

Класс PacketMAGetFloatNumbers
Код:
package net.minecraft.client.addon.tchestplate.packets;

import assets.RenderARM;

import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteArrayDataOutput;
import cpw.mods.fml.relauncher.Side;
import java.util.ArrayList;
import net.minecraft.client.Minecraft;
import net.minecraft.client.addon.tco.tiny.Utils.BitItem;
import net.minecraft.client.addon.tco.tiny.blocks.containers.ContainerBitController;
import net.minecraft.client.entity.EntityClientPlayerMP;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;

public class PacketMAGetFloatNumbers extends PacketMA {
    private float master[] = new float[15];
    private float a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15;

   public PacketMAGetFloatNumbers(float a0, float a1, float a2, float a3,float a4,float a5,float a6,float a7,float a8,float a9,
           float a10,float a11,float a12, float a13,float a14) {
          this.a0 = a0;
          this.a1 = a1;
          this.a2 = a2;
          this.a3 = a3;
          this.a4 = a4;
          this.a5 = a5;
          this.a6 = a6;
          this.a7 = a7;
          this.a8 = a8;
          this.a9 = a9;
          this.a10 = a10;
          this.a11 = a11;
          this.a12 = a12;
          this.a13 = a13;
          this.a14 = a14;
          //this.a15 = ms[15];
   }
   public PacketMAGetFloatNumbers() {}
   
   protected void write(ByteArrayDataOutput out) {
       out.writeFloat(a0);
       out.writeFloat(a1);
       out.writeFloat(a2);
       out.writeFloat(a3);
       out.writeFloat(a4);
       out.writeFloat(a5);
       out.writeFloat(a6);
       out.writeFloat(a7);
       out.writeFloat(a8);
       out.writeFloat(a9);
       out.writeFloat(a10);
       out.writeFloat(a11);
       out.writeFloat(a12);
       out.writeFloat(a13);
       out.writeFloat(a14);
       //out.writeFloat(a15);
   }

   protected void read(ByteArrayDataInput in) throws PacketMA.ProtocolException {
       this.a0 = in.readFloat();
       this.a1 = in.readFloat();
       this.a2 = in.readFloat();
       this.a3 = in.readFloat();
       this.a4 = in.readFloat();
       this.a5 = in.readFloat();
       this.a6 = in.readFloat();
       this.a7 = in.readFloat();
       this.a8 = in.readFloat();
       this.a9 = in.readFloat();
       this.a10 = in.readFloat();
       this.a11 = in.readFloat();
       this.a12 = in.readFloat();
       this.a13 = in.readFloat();
       this.a14 = in.readFloat();
       //this.a15 = in.readFloat();
   }

   protected void execute(EntityPlayer player, Side side) throws PacketMA.ProtocolException {
            RenderARM raid = new RenderARM();
                raid.a[0] = this.a0;
               raid.a[1] = this.a1;
              raid.a[2] = this.a2;
             raid.a[3] = this.a3;
             raid.a[4] = this.a4;
             raid.a[5] = this.a5;
             raid.a[6] = this.a6;
             raid.a[7] = this.a7;
             raid.a[8] = this.a8;
             raid.a[9] = this.a9;
             raid.a[10] = this.a10;
             raid.a[11] = this.a11;
             raid.a[12] = this.a12;
             raid.a[13] = this.a13;
             raid.a[14] = this.a14;
             //raid.a[15] = this.a15;
                System.out.println("Packet: SentFromClassEXECUTE");
   }

protected void length(int var1) {}
}


Отправляю пакет в eventHandler
Код:
         PacketDispatcher.sendPacketToPlayer((new PacketMAGetFloatNumbers(
                 0.3F,
                 1F,
                 1.2F,
                 1.3F,
                 1.5F,
                 1.6F,
                 2F,
                 2.5F,
                 3.6F,
                 3.8F,
                 4F,
                 4.5F,
                 10F,
                 10.1F,
                 11F
         )).makePacket(), (Player)pl);
         System.out.println("Packet: Sent onUpdate");


Код:
package net.minecraft.client.addon.tchestplate.packets;

import com.google.common.collect.BiMap;
import com.google.common.collect.ImmutableBiMap;
import com.google.common.collect.ImmutableBiMap.Builder;
import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;
import cpw.mods.fml.common.network.PacketDispatcher;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.packet.Packet;

public abstract class PacketMA {
   public static final String CHANNEL = "tc";
   private static final BiMap idMap;

   public static PacketMA constructPacket(int packetId) throws PacketMA.ProtocolException, IllegalAccessException, InstantiationException {
      Class clazz = (Class)idMap.get(packetId);
      if (clazz == null) {
         throw new PacketMA.ProtocolException("Unknown Packet Id!");
      } else {
         return (PacketMA)clazz.newInstance();
      }
   }

   public final int getPacketId() {
      if (idMap.inverse().containsKey(this.getClass())) {
         return (Integer)idMap.inverse().get(this.getClass());
      } else {
         throw new RuntimeException("Packet " + this.getClass().getSimpleName() + " is missing a mapping!");
      }
   }

   public final Packet makePacket() {
      ByteArrayDataOutput out = ByteStreams.newDataOutput();
      out.writeByte(this.getPacketId());
      this.write(out);
      return PacketDispatcher.getPacket("tc", out.toByteArray());
   }

   protected abstract void write(ByteArrayDataOutput var1);

   protected abstract void read(ByteArrayDataInput var1) throws PacketMA.ProtocolException;

   protected abstract void execute(EntityPlayer var1, Side var2) throws PacketMA.ProtocolException;

   static {
      Builder builder = ImmutableBiMap.builder();
      builder.put(1, PacketMAparticle.class);
      builder.put(2, PacketMASwingUseItem.class);
      builder.put(3, PacketMARemoveFX.class);
      builder.put(4, PacketMAUpdateFX.class);
      builder.put(5, PacketMAOpenGui.class);
      builder.put(6, PacketMASendItemStackInSlot.class);
      builder.put(7, PacketMASendItemStackInSlotDonate.class);
      builder.put(8, PacketMAUpdateInt.class);
      builder.put(9, PacketMASendItemStacksDonateBuy.class);
      builder.put(10, PacketMAUpdateByte.class);
      builder.put(11, PacketMAGetInt.class);
      builder.put(12, PacketPSend.class);
      builder.put(13, PacketMAGive.class);
      builder.put(14, PacketInvisible.class);
      builder.put(15, PacketClickSlotDonate.class);
      builder.put(16, PacketMAGetFloatNumbers.class);
      idMap = builder.build();
   }

   public static class ProtocolException extends Exception {
      public ProtocolException() {
      }

      public ProtocolException(String message, Throwable cause) {
         super(message, cause);
      }

      public ProtocolException(String message) {
         super(message);
      }

      public ProtocolException(Throwable cause) {
         super(cause);
      }
   }
}
Я рендерю модели в доп. рендере от наследования ModelBiped, и туда я назначаю цифры которые передаю пакетом с сервера на клиент(типо защита моделей)

Код:
package assets;

import net.minecraft.client.addon.tchestplate.armors.models.ModelBaseLavaArmor;
import net.minecraft.client.addon.tchestplate.player.ExtendedPlayer;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.MathHelper;

public class RenderARM extends ModelBaseLavaArmor {
    public float a[] = new float[15];
       protected void ExtRender(EntityPlayer par1Entity, float par2, float par3, float par4, float par5, float par6, float par7, ExtendedPlayer pi) {
       }

       public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7) {
          
           super.render(par1Entity, par2, par3, par4, par5, par6, par7);
       }
}
 
Краш-лог
//НЕ КРАШ ЛОГ//
Итог того что не работает: не передаются числа пакетом которые я задал, а остаётся 0.0F
Краш-лог:
//НЕ КРАШ ЛОГ//
Итог того что не работает: не передаются числа пакетом которые я задал, а остаётся 0.0F

timaxa007

Модератор
5,831
409
672
Эм... Я многое не понимаю в этом коде. Но я не вижу, чтобы у тебя выполнялись методы read и execute (проверь выполняються-ли у тебя эти методы).
 

jopi

Попрошайка
1,421
30
260
Java:
2018-12-24 13:27:46 [INFO] [STDOUT] metod read
2018-12-24 13:27:46 [INFO] [STDOUT] Packet: SentFromClassEXECUTE
2018-12-24 13:27:46 [INFO] [STDOUT] metod main
2018-12-24 13:27:46 [INFO] [STDOUT] metod write
2018-12-24 13:27:46 [INFO] [STDOUT] Packet: Sent onUpdate
2018-12-24 13:27:46 [INFO] [STDOUT] metod main
2018-12-24 13:27:46 [INFO] [STDOUT] metod write
2018-12-24 13:27:46 [INFO] [STDOUT] Packet: Sent onUpdate
2018-12-24 13:27:46 [INFO] [STDOUT] metod read
2018-12-24 13:27:46 [INFO] [STDOUT] Packet: SentFromClassEXECUTE
2018-12-24 13:27:46 [INFO] [STDOUT] metod read
2018-12-24 13:27:46 [INFO] [STDOUT] Packet: SentFromClassEXECUTE
2018-12-24 13:27:46 [INFO] [STDOUT] metod main

Дефолтный метод класса, read, write и Execute работают странно
А модель всёравно не принимает нужные кординаты
 
3,005
192
592
3,005
192
592
Ну, вынес.
А толку?
Тебе же нужно где-то использовать теперь.
 
3,005
192
592
Ты каждый раз делаешь новый класс.
В новый класс и записываются числа.
Но дальше ты это новый класс нигде не юзаешь.
~
Все правильно работает.
 
Сверху