Flexible port

This commit is contained in:
zethnest
2021-01-01 13:11:34 +08:00
parent 8834fb1f57
commit e390ee97dd
3 changed files with 15 additions and 6 deletions

View File

@@ -14,20 +14,25 @@ public class Host{
public final String versionType; public final String versionType;
public final Gamemode mode; public final Gamemode mode;
public final @Nullable String modeName; 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.ping = ping;
this.name = name; this.name = name;
this.address = address; this.address = address;
this.players = players; this.port = port;
this.mapname = mapname; this.mapname = mapname;
this.wave = wave; this.wave = wave;
this.players = players;
this.version = version; this.version = version;
this.versionType = versionType; this.versionType = versionType;
this.playerLimit = playerLimit;
this.mode = mode; this.mode = mode;
this.playerLimit = playerLimit;
this.description = description; this.description = description;
this.modeName = modeName; 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);
}
} }

View File

@@ -3,6 +3,7 @@ package mindustry.net;
import arc.Core; import arc.Core;
import arc.util.*; import arc.util.*;
import arc.util.io.*; import arc.util.io.*;
import mindustry.*;
import mindustry.core.*; import mindustry.core.*;
import mindustry.game.*; import mindustry.game.*;
import mindustry.gen.*; import mindustry.gen.*;
@@ -80,6 +81,7 @@ public class NetworkIO{
buffer.put((byte)state.rules.mode().ordinal()); buffer.put((byte)state.rules.mode().ordinal());
buffer.putInt(netServer.admins.getPlayerLimit()); buffer.putInt(netServer.admins.getPlayerLimit());
buffer.putInt(Core.settings.getInt("port", port));
writeString(buffer, description, 100); writeString(buffer, description, 100);
if(state.rules.modeName != null){ if(state.rules.modeName != null){
@@ -99,8 +101,10 @@ public class NetworkIO{
int limit = buffer.getInt(); int limit = buffer.getInt();
String description = readString(buffer); String description = readString(buffer);
String modeName = 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){ private static void writeString(ByteBuffer buffer, String string, int maxlen){