diff --git a/annotations/src/main/java/mindustry/annotations/remote/CallGenerator.java b/annotations/src/main/java/mindustry/annotations/remote/CallGenerator.java index 48a17f2e86..e21b015a34 100644 --- a/annotations/src/main/java/mindustry/annotations/remote/CallGenerator.java +++ b/annotations/src/main/java/mindustry/annotations/remote/CallGenerator.java @@ -31,7 +31,7 @@ public class CallGenerator{ .addModifiers(Modifier.PUBLIC); //temporary data to deserialize later - packet.addField(byte[].class, "DATA", Modifier.PRIVATE); + packet.addField(FieldSpec.builder(byte[].class, "DATA", Modifier.PRIVATE).initializer("NODATA").build()); packet.superclass(tname("mindustry.net.Packet")); @@ -149,11 +149,11 @@ public class CallGenerator{ typespec.addMethod(readbuilder.build()); - MethodSpec.Builder builder = MethodSpec.methodBuilder("check") - .addModifiers(Modifier.PRIVATE); + MethodSpec.Builder builder = MethodSpec.methodBuilder("handled") + .addModifiers(Modifier.PUBLIC) + .addAnnotation(Override.class); //make sure data is present, begin reading it if so - builder.beginControlFlow("if(DATA != null)"); builder.addStatement("BAIS.setBytes(DATA)"); Seq params = ent.element.params(); @@ -202,8 +202,6 @@ public class CallGenerator{ } } - builder.endControlFlow(); - typespec.addMethod(builder.build()); } @@ -351,8 +349,6 @@ public class CallGenerator{ .addAnnotation(Override.class) .returns(void.class); - builder.addStatement("check()"); - Smethod elem = ent.element; Seq params = elem.params(); diff --git a/core/src/mindustry/net/Net.java b/core/src/mindustry/net/Net.java index 689834c07b..2279c955c0 100644 --- a/core/src/mindustry/net/Net.java +++ b/core/src/mindustry/net/Net.java @@ -257,6 +257,7 @@ public class Net{ * Call to handle a packet being received for the client. */ public void handleClientReceived(Packet object){ + object.handled(); if(object instanceof StreamBegin b){ streams.put(b.id, currentStream = new StreamBuilder(b)); @@ -291,6 +292,8 @@ public class Net{ * Call to handle a packet being received for the server. */ public void handleServerReceived(NetConnection connection, Packet object){ + object.handled(); + try{ //handle object normally if(serverListeners.get(object.getClass()) != null){ diff --git a/core/src/mindustry/net/Packet.java b/core/src/mindustry/net/Packet.java index 843c2e78eb..b5a748c209 100644 --- a/core/src/mindustry/net/Packet.java +++ b/core/src/mindustry/net/Packet.java @@ -10,6 +10,7 @@ public abstract class Packet{ //readObject //readBuilding //readUnit (possibly) + protected static final byte[] NODATA = {}; protected static final ReusableByteInStream BAIS = new ReusableByteInStream(); protected static final Reads READ = new Reads(new DataInputStream(BAIS)); @@ -29,6 +30,8 @@ public abstract class Packet{ read(read); } + public void handled(){} + public int getPriority(){ return priorityNormal; }