Fixed multiple crashes, fixed version mismatch showing as disconnect
This commit is contained in:
@@ -6,8 +6,7 @@ import com.badlogic.gdx.utils.IntMap;
|
||||
import com.badlogic.gdx.utils.ObjectMap;
|
||||
import com.badlogic.gdx.utils.async.AsyncExecutor;
|
||||
import io.anuke.mindustry.Mindustry;
|
||||
import io.anuke.mindustry.net.Packets.Connect;
|
||||
import io.anuke.mindustry.net.Packets.Disconnect;
|
||||
import io.anuke.mindustry.net.Packet.ImportantPacket;
|
||||
import io.anuke.mindustry.net.Packets.KickReason;
|
||||
import io.anuke.mindustry.net.Streamable.StreamBegin;
|
||||
import io.anuke.mindustry.net.Streamable.StreamBuilder;
|
||||
@@ -20,7 +19,7 @@ import io.anuke.ucore.function.Consumer;
|
||||
import java.io.IOException;
|
||||
|
||||
public class Net{
|
||||
public static final int version = 12;
|
||||
public static final int version = 13;
|
||||
|
||||
private static boolean server;
|
||||
private static boolean active;
|
||||
@@ -152,7 +151,7 @@ public class Net{
|
||||
handleClientReceived(builder.build());
|
||||
}
|
||||
}else if(clientListeners.get(object.getClass()) != null){
|
||||
if(clientLoaded || object instanceof Connect || object instanceof Disconnect || object instanceof Streamable){
|
||||
if(clientLoaded || object instanceof ImportantPacket){
|
||||
clientListeners.get(object.getClass()).accept(object);
|
||||
}else{
|
||||
UCore.log("Recieved " + object, "but ignoring data, as client is not loaded.");
|
||||
|
||||
@@ -15,12 +15,10 @@ import io.anuke.mindustry.world.WorldGenerator;
|
||||
import io.anuke.mindustry.world.blocks.Blocks;
|
||||
import io.anuke.mindustry.world.blocks.types.BlockPart;
|
||||
import io.anuke.mindustry.world.blocks.types.Rock;
|
||||
import io.anuke.ucore.UCore;
|
||||
import io.anuke.ucore.core.Timers;
|
||||
import io.anuke.ucore.entities.Entities;
|
||||
|
||||
import java.io.*;
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
public class NetworkIO {
|
||||
|
||||
|
||||
@@ -5,4 +5,6 @@ import java.nio.ByteBuffer;
|
||||
public interface Packet {
|
||||
void read(ByteBuffer buffer);
|
||||
void write(ByteBuffer buffer);
|
||||
|
||||
interface ImportantPacket{}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package io.anuke.mindustry.net;
|
||||
|
||||
import io.anuke.mindustry.entities.Player;
|
||||
import io.anuke.mindustry.entities.SyncEntity;
|
||||
import io.anuke.mindustry.net.Packet.ImportantPacket;
|
||||
import io.anuke.mindustry.resource.Item;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
@@ -9,12 +10,12 @@ import java.nio.ByteBuffer;
|
||||
/**Class for storing all packets.*/
|
||||
public class Packets {
|
||||
|
||||
public static class Connect{
|
||||
public static class Connect implements ImportantPacket{
|
||||
public int id;
|
||||
public String addressTCP;
|
||||
}
|
||||
|
||||
public static class Disconnect {
|
||||
public static class Disconnect implements ImportantPacket{
|
||||
public int id;
|
||||
public String addressTCP;
|
||||
}
|
||||
@@ -382,7 +383,7 @@ public class Packets {
|
||||
}
|
||||
}
|
||||
|
||||
public static class KickPacket implements Packet{
|
||||
public static class KickPacket implements Packet, ImportantPacket{
|
||||
public KickReason reason;
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2,13 +2,14 @@ package io.anuke.mindustry.net;
|
||||
|
||||
import com.badlogic.gdx.utils.reflect.ClassReflection;
|
||||
import com.badlogic.gdx.utils.reflect.ReflectionException;
|
||||
import io.anuke.mindustry.net.Packet.ImportantPacket;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
public class Streamable{
|
||||
public class Streamable implements ImportantPacket{
|
||||
public transient ByteArrayInputStream stream;
|
||||
|
||||
/**Marks the beginning of a stream.*/
|
||||
|
||||
Reference in New Issue
Block a user