From 795bd84d06a9814da9374416ffc4f4ed7c4eb4bf Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 22 May 2020 11:06:56 -0400 Subject: [PATCH] Fixed multiplayer --- core/src/mindustry/net/Administration.java | 4 ++-- core/src/mindustry/net/Packets.java | 14 ++++++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/core/src/mindustry/net/Administration.java b/core/src/mindustry/net/Administration.java index 5eeb765878..0afc7a33c1 100644 --- a/core/src/mindustry/net/Administration.java +++ b/core/src/mindustry/net/Administration.java @@ -431,7 +431,7 @@ public class Administration{ public void save(){ Core.settings.putJson("player-data", playerInfo); Core.settings.putJson("ip-bans", String.class, bannedIPs); - Core.settings.putJson("whitelist", String.class, whitelist); + Core.settings.putJson("whitelist-ids", String.class, whitelist); Core.settings.putJson("banned-subnets", String.class, subnetBans); } @@ -441,7 +441,7 @@ public class Administration{ //load default data playerInfo = Core.settings.getJson("player-data", ObjectMap.class, ObjectMap::new); bannedIPs = Core.settings.getJson("ip-bans", Array.class, Array::new); - whitelist = Core.settings.getJson("whitelist", Array.class, Array::new); + whitelist = Core.settings.getJson("whitelist-ids", Array.class, Array::new); subnetBans = Core.settings.getJson("banned-subnets", Array.class, Array::new); }else{ //save over loaded legacy data diff --git a/core/src/mindustry/net/Packets.java b/core/src/mindustry/net/Packets.java index f5f10f045c..d842bbd331 100644 --- a/core/src/mindustry/net/Packets.java +++ b/core/src/mindustry/net/Packets.java @@ -9,6 +9,7 @@ import mindustry.io.*; import java.io.*; import java.nio.*; +import java.util.zip.*; /** * Class for storing all packets. @@ -169,9 +170,14 @@ public class Packets{ TypeIO.writeString(buffer, versionType); TypeIO.writeString(buffer, name); TypeIO.writeString(buffer, usid); - buffer.put(mobile ? (byte)1 : 0); + buffer.put(Base64Coder.decode(uuid)); - buffer.put((byte)color); + CRC32 crc = new CRC32(); + crc.update(Base64Coder.decode(uuid)); + buffer.putLong(crc.getValue()); + + buffer.put(mobile ? (byte)1 : 0); + buffer.putInt(color); buffer.put((byte)mods.size); for(int i = 0; i < mods.size; i++){ TypeIO.writeString(buffer, mods.get(i)); @@ -184,11 +190,11 @@ public class Packets{ versionType = TypeIO.readString(buffer); name = TypeIO.readString(buffer); usid = TypeIO.readString(buffer); - mobile = buffer.get() == 1; - color = buffer.getInt(); byte[] idbytes = new byte[16]; buffer.get(idbytes); uuid = new String(Base64Coder.encode(idbytes)); + mobile = buffer.get() == 1; + color = buffer.getInt(); int totalMods = buffer.get(); mods = new Array<>(totalMods); for(int i = 0; i < totalMods; i++){