THEY SAID IT COULDN'T BE DONE

This commit is contained in:
Anuken 2018-01-17 17:52:37 -05:00
parent 1b4a8c83ae
commit 25beb2af32
4 changed files with 14 additions and 11 deletions

View File

@ -7,4 +7,7 @@
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.game.EnemySpawn" />
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.io.SaveFileVersion" />
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.resource.Recipe" />
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.net.Packets" />
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.net.Packet" />
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.net.Streamable" />
</module>

View File

@ -28,10 +28,9 @@ public class MenuFragment implements Fragment{
add(new MenuButton("$text.play", group, ui.levels::show));
row();
if(!gwt){
add(new MenuButton("$text.joingame", group, ui.join::show));
row();
}
add(new MenuButton("$text.joingame", group, ui.join::show));
row();
add(new MenuButton("$text.tutorial", group, ()-> control.playMap(world.maps().getMap("tutorial"))));
row();

View File

@ -6,7 +6,7 @@ import club.minnced.discord.rpc.DiscordRichPresence;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
import com.badlogic.gdx.utils.Array;
import io.anuke.kryonet.JavaWebsocketClient;
import io.anuke.kryonet.KryoClient;
import io.anuke.kryonet.KryoServer;
import io.anuke.mindustry.Mindustry;
import io.anuke.mindustry.Vars;
@ -120,8 +120,8 @@ public class DesktopLauncher {
Mindustry.args = Array.with(arg);
//Net.setClientProvider(new KryoClient());
Net.setClientProvider(new JavaWebsocketClient());
//Net.setClientProvider(new JavaWebsocketClient());
Net.setClientProvider(new KryoClient());
Net.setServerProvider(new KryoServer());
try {

View File

@ -35,6 +35,7 @@ import java.util.Arrays;
import java.util.concurrent.CopyOnWriteArrayList;
public class KryoServer implements ServerProvider {
final boolean debug = false;
final Server server;
final SocketServer webServer;
final ByteSerializer serializer = new ByteSerializer();
@ -311,14 +312,14 @@ public class KryoServer implements ServerProvider {
try {
synchronized (buffer) {
buffer.position(0);
UCore.log("Sending object with ID " + Registrator.getID(object.getClass()));
if(debug) UCore.log("Sending object with ID " + Registrator.getID(object.getClass()));
serializer.write(buffer, object);
int pos = buffer.position();
buffer.position(0);
byte[] out = new byte[pos];
buffer.get(out);
String string = new String(Base64Coder.encode(out));
UCore.log("Sending string: " + string);
if(debug) UCore.log("Sending string: " + string);
socket.send(string);
}
}catch (Exception e){
@ -371,12 +372,12 @@ public class KryoServer implements ServerProvider {
@Override
public void onMessage(WebSocket conn, String message) {
try {
UCore.log("Got message: " + message);
if(debug) UCore.log("Got message: " + message);
KryoConnection k = getBySocket(conn);
if (k == null) return;
byte[] out = Base64Coder.decode(message);
UCore.log("Decoded: " + Arrays.toString(out));
if(debug) UCore.log("Decoded: " + Arrays.toString(out));
ByteBuffer buffer = ByteBuffer.wrap(out);
Object o = serializer.read(buffer);
Net.handleServerReceived(o, k.id);