jopi
Попрошайка
- 1,421
- 30
- 260
Не работает пакет, всё нормально он вызывается и тп, но он не делает то что он по сути должен делать...
А должен он передавать нужные числа с сервера на клиент которые потом станут координатами для шейпов...
Примерный вариант делал и хорошо что примерный потому-что ничего не работает.
Класс PacketMAGetFloatNumbers
Отправляю пакет в eventHandler
Я рендерю модели в доп. рендере от наследования ModelBiped, и туда я назначаю цифры которые передаю пакетом с сервера на клиент(типо защита моделей)
А должен он передавать нужные числа с сервера на клиент которые потом станут координатами для шейпов...
Примерный вариант делал и хорошо что примерный потому-что ничего не работает.
Класс 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);
}
}
}
Код:
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