jopi
Попрошайка
- 1,421
- 30
- 260
Хз почему так
Регистрация
Регистрация
@NetworkMod(clientSideRequired = true, serverSideRequired = false, channels = {"arpg"}, packetHandler = PacketHandler.class)
Java:
ublic class PacketHandler implements IPacketHandler {
private static final Charset charset = Charset.forName("UTF-8");
public void onPacketData(INetworkManager manager, Packet250CustomPayload packet, Player player) {
try {
EntityPlayer var1 = (EntityPlayer)player;
ByteArrayDataInput in = ByteStreams.newDataInput(packet.data);
int packetID = in.readUnsignedByte();
PacketBase packet = PacketBase.constructPacket(packetID);
packet.read(in);
packet.execute(var1, var1.worldObj.isRemote ? Side.CLIENT : Side.SERVER);
} catch (Exception e) {
if (player instanceof EntityPlayerMP) {
e.printStackTrace();
}
}
}
}
Java:
public abstract class PacketBase {
public static final String CHANNEL = "arpg";
private static final BiMap idMap;
public static PacketBase constructPacket(int packetId) throws Exception, IllegalAccessException, InstantiationException {
Class clazz = (Class) idMap.get(Integer.valueOf(packetId));
if (clazz == null) {
throw new Exception("Unknown Packet Id!");
} else {
return (PacketBase) clazz.newInstance();
}
}
public final int getPacketId() {
if (idMap.inverse().containsKey(this.getClass())) {
return ((Integer) idMap.inverse().get(this.getClass())).intValue();
} 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(CHANNEL, out.toByteArray());
}
public abstract void write(ByteArrayDataOutput var1);
public abstract void read(ByteArrayDataInput var1) throws Exception;
public abstract void execute(EntityPlayer var1, Side var2) throws Exception;
static {
Builder builder = ImmutableBiMap.builder();
builder.put(nextID(), POpenGui.class);
builder.put(nextID(), PSendAccessories.class);
builder.put(nextID(), PSendChaotics.class);
builder.put(nextID(), PUpdateStats.class);
builder.put(nextID(), PUseChaotic.class);
idMap = builder.build();
}
}
Java:
public class POpenGui extends PacketBase {
public int id;
public POpenGui() {}
public POpenGui(int id) {
this.id = id;
}
public void write(ByteArrayDataOutput var1) {
var1.write(this.id);
}
public void read(ByteArrayDataInput var1) throws Exception {
this.id = var1.readInt();//EOF кидает тут
}
public void execute(EntityPlayer var1, Side var2) throws Exception {
System.out.println("ee((");
var1.openGui(AMod.INSTANCE, 0, var1.worldObj, 0, 0, 0);
}
}
- Краш-лог
-
[INFO] [STDERR] java.lang.IllegalStateException: java.io.EOFException
[INFO] [STDERR] at com.google.common.io.ByteStreams$ByteArrayDataInputStream.readInt(ByteStreams.java:377)
[INFO] [STDERR] at union.cubeground.mod.common.handler.packet.POpenGui.read(POpenGui.java:24)
[INFO] [STDERR] at union.cubeground.mod.common.handler.PacketHandler.onPacketData(PacketHandler.java:24)
[INFO] [STDERR] at cpw.mods.fml.common.network.NetworkRegistry.handlePacket(NetworkRegistry.java:255)
[INFO] [STDERR] at cpw.mods.fml.common.network.NetworkRegistry.handleCustomPacket(NetworkRegistry.java:245)
[INFO] [STDERR] at cpw.mods.fml.common.network.FMLNetworkHandler.handlePacket250Packet(FMLNetworkHandler.java:85)
[INFO] [STDERR] at net.minecraft.network.NetServerHandler.handleCustomPayload(NetServerHandler.java:1130)
[INFO] [STDERR] at net.minecraft.network.packet.Packet250CustomPayload.processPacket(Packet250CustomPayload.java:70)
[INFO] [STDERR] at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)
[INFO] [STDERR] at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:141)
[INFO] [STDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:54)
[INFO] [STDERR] at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109
[INFO] [STDERR] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:691)
[INFO] [STDERR] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:587)
[INFO] [STDERR] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:129)
[INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:484)
[INFO] [STDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
[INFO] [STDERR] Caused by: java.io.EOFException
[INFO] [STDERR] at java.io.DataInputStream.readInt(Unknown Source)
[INFO] [STDERR] at com.google.common.io.ByteStreams$ByteArrayDataInputStream.readInt(ByteStreams.java:375)
[INFO] [STDERR] ... 16 more
Краш-лог:
[INFO] [STDERR] java.lang.IllegalStateException: java.io.EOFException
[INFO] [STDERR] at com.google.common.io.ByteStreams$ByteArrayDataInputStream.readInt(ByteStreams.java:377)
[INFO] [STDERR] at union.cubeground.mod.common.handler.packet.POpenGui.read(POpenGui.java:24)
[INFO] [STDERR] at union.cubeground.mod.common.handler.PacketHandler.onPacketData(PacketHandler.java:24)
[INFO] [STDERR] at cpw.mods.fml.common.network.NetworkRegistry.handlePacket(NetworkRegistry.java:255)
[INFO] [STDERR] at cpw.mods.fml.common.network.NetworkRegistry.handleCustomPacket(NetworkRegistry.java:245)
[INFO] [STDERR] at cpw.mods.fml.common.network.FMLNetworkHandler.handlePacket250Packet(FMLNetworkHandler.java:85)
[INFO] [STDERR] at net.minecraft.network.NetServerHandler.handleCustomPayload(NetServerHandler.java:1130)
[INFO] [STDERR] at net.minecraft.network.packet.Packet250CustomPayload.processPacket(Packet250CustomPayload.java:70)
[INFO] [STDERR] at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)
[INFO] [STDERR] at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:141)
[INFO] [STDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:54)
[INFO] [STDERR] at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109
[INFO] [STDERR] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:691)
[INFO] [STDERR] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:587)
[INFO] [STDERR] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:129)
[INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:484)
[INFO] [STDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
[INFO] [STDERR] Caused by: java.io.EOFException
[INFO] [STDERR] at java.io.DataInputStream.readInt(Unknown Source)
[INFO] [STDERR] at com.google.common.io.ByteStreams$ByteArrayDataInputStream.readInt(ByteStreams.java:375)
[INFO] [STDERR] ... 16 more