diff --git a/core/src/mindustry/net/Host.java b/core/src/mindustry/net/Host.java index 123fdad341..fe80c879ce 100644 --- a/core/src/mindustry/net/Host.java +++ b/core/src/mindustry/net/Host.java @@ -14,20 +14,25 @@ public class Host{ public final String versionType; public final Gamemode mode; public final @Nullable String modeName; - public int ping, port = Vars.port; + public int ping, port; - public Host(int ping, String name, String address, String mapname, int wave, int players, int version, String versionType, Gamemode mode, int playerLimit, String description, String modeName){ + public Host(int ping, String name, String address, int port, String mapname, int wave, int players, int version, String versionType, Gamemode mode, int playerLimit, String description, String modeName){ this.ping = ping; this.name = name; this.address = address; - this.players = players; + this.port = port; this.mapname = mapname; this.wave = wave; + this.players = players; this.version = version; this.versionType = versionType; - this.playerLimit = playerLimit; this.mode = mode; + this.playerLimit = playerLimit; this.description = description; this.modeName = modeName; } + + public Host(int ping, String name, String address, String mapname, int wave, int players, int version, String versionType, Gamemode mode, int playerLimit, String description, String modeName){ + this(ping, name, address, Vars.port, mapname, wave, players, version, versionType, mode, playerLimit, description, modeName); + } } diff --git a/core/src/mindustry/net/NetworkIO.java b/core/src/mindustry/net/NetworkIO.java index 05bd69fe32..68e5f02f80 100644 --- a/core/src/mindustry/net/NetworkIO.java +++ b/core/src/mindustry/net/NetworkIO.java @@ -3,6 +3,7 @@ package mindustry.net; import arc.Core; import arc.util.*; import arc.util.io.*; +import mindustry.*; import mindustry.core.*; import mindustry.game.*; import mindustry.gen.*; @@ -80,6 +81,7 @@ public class NetworkIO{ buffer.put((byte)state.rules.mode().ordinal()); buffer.putInt(netServer.admins.getPlayerLimit()); + buffer.putInt(Core.settings.getInt("port", port)); writeString(buffer, description, 100); if(state.rules.modeName != null){ @@ -99,8 +101,10 @@ public class NetworkIO{ int limit = buffer.getInt(); String description = readString(buffer); String modeName = readString(buffer); + int hostPort = buffer.getInt(); + hostPort = hostPort != 0 ? hostPort : Vars.port; - return new Host(ping, host, hostAddress, map, wave, players, version, vertype, gamemode, limit, description, modeName.isEmpty() ? null : modeName); + return new Host(ping, host, hostAddress, hostPort, map, wave, players, version, vertype, gamemode, limit, description, modeName.isEmpty() ? null : modeName); } private static void writeString(ByteBuffer buffer, String string, int maxlen){ diff --git a/core/src/mindustry/ui/dialogs/JoinDialog.java b/core/src/mindustry/ui/dialogs/JoinDialog.java index 1c80418708..233dab599b 100644 --- a/core/src/mindustry/ui/dialogs/JoinDialog.java +++ b/core/src/mindustry/ui/dialogs/JoinDialog.java @@ -487,4 +487,4 @@ public class JoinDialog extends BaseDialog{ public Server(){ } } -} \ No newline at end of file +}