From 5df2a3e6258664a80515855d993b266b582eaca0 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 19 Aug 2020 17:11:37 -0400 Subject: [PATCH] Added ping marker to servers --- core/assets/planets/colors.png | Bin 10737 -> 0 bytes core/src/mindustry/core/ContentLoader.java | 10 +++++----- core/src/mindustry/net/ArcNetProvider.java | 6 ++++-- core/src/mindustry/net/Host.java | 3 ++- core/src/mindustry/net/NetworkIO.java | 4 ++-- core/src/mindustry/ui/dialogs/JoinDialog.java | 13 +++++++++++-- desktop/src/mindustry/desktop/steam/SNet.java | 1 + 7 files changed, 25 insertions(+), 12 deletions(-) delete mode 100644 core/assets/planets/colors.png diff --git a/core/assets/planets/colors.png b/core/assets/planets/colors.png deleted file mode 100644 index 5efd5d38e06573a086fe551d14de54e984881fdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10737 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 diff --git a/core/src/mindustry/core/ContentLoader.java b/core/src/mindustry/core/ContentLoader.java index a147e6e79e..3a3fe0d2a3 100644 --- a/core/src/mindustry/core/ContentLoader.java +++ b/core/src/mindustry/core/ContentLoader.java @@ -243,11 +243,11 @@ public class ContentLoader{ } public Block block(int id){ - return (Block)getByID(ContentType.block, id); + return getByID(ContentType.block, id); } public Block block(String name){ - return (Block)getByName(ContentType.block, name); + return getByName(ContentType.block, name); } public Seq items(){ @@ -255,7 +255,7 @@ public class ContentLoader{ } public Item item(int id){ - return (Item)getByID(ContentType.item, id); + return getByID(ContentType.item, id); } public Seq liquids(){ @@ -263,7 +263,7 @@ public class ContentLoader{ } public Liquid liquid(int id){ - return (Liquid)getByID(ContentType.liquid, id); + return getByID(ContentType.liquid, id); } public Seq bullets(){ @@ -271,7 +271,7 @@ public class ContentLoader{ } public BulletType bullet(int id){ - return (BulletType)getByID(ContentType.bullet, id); + return getByID(ContentType.bullet, id); } public Seq sectors(){ diff --git a/core/src/mindustry/net/ArcNetProvider.java b/core/src/mindustry/net/ArcNetProvider.java index b6a3cf378a..5fce1d1373 100644 --- a/core/src/mindustry/net/ArcNetProvider.java +++ b/core/src/mindustry/net/ArcNetProvider.java @@ -180,6 +180,7 @@ public class ArcNetProvider implements NetProvider{ Threads.daemon(() -> { try{ DatagramSocket socket = new DatagramSocket(); + long time = Time.millis(); socket.send(new DatagramPacket(new byte[]{-2, 1}, 2, InetAddress.getByName(address), port)); socket.setSoTimeout(2000); @@ -187,7 +188,7 @@ public class ArcNetProvider implements NetProvider{ socket.receive(packet); ByteBuffer buffer = ByteBuffer.wrap(packet.getData()); - Host host = NetworkIO.readServerData(packet.getAddress().getHostAddress(), buffer); + Host host = NetworkIO.readServerData((int)Time.timeSinceMillis(time), packet.getAddress().getHostAddress(), buffer); Core.app.post(() -> valid.get(host)); }catch(Exception e){ @@ -199,6 +200,7 @@ public class ArcNetProvider implements NetProvider{ @Override public void discoverServers(Cons callback, Runnable done){ Seq foundAddresses = new Seq<>(); + long time = Time.millis(); client.discoverHosts(port, multicastGroup, multicastPort, 3000, packet -> { Core.app.post(() -> { try{ @@ -206,7 +208,7 @@ public class ArcNetProvider implements NetProvider{ return; } ByteBuffer buffer = ByteBuffer.wrap(packet.getData()); - Host host = NetworkIO.readServerData(packet.getAddress().getHostAddress(), buffer); + Host host = NetworkIO.readServerData((int)Time.timeSinceMillis(time), packet.getAddress().getHostAddress(), buffer); callback.get(host); foundAddresses.add(packet.getAddress()); }catch(Exception e){ diff --git a/core/src/mindustry/net/Host.java b/core/src/mindustry/net/Host.java index cc52f30b86..123fdad341 100644 --- a/core/src/mindustry/net/Host.java +++ b/core/src/mindustry/net/Host.java @@ -16,7 +16,8 @@ public class Host{ public final @Nullable String modeName; public int ping, port = Vars.port; - public Host(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, 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; diff --git a/core/src/mindustry/net/NetworkIO.java b/core/src/mindustry/net/NetworkIO.java index 7df5cd46bb..05bd69fe32 100644 --- a/core/src/mindustry/net/NetworkIO.java +++ b/core/src/mindustry/net/NetworkIO.java @@ -88,7 +88,7 @@ public class NetworkIO{ return buffer; } - public static Host readServerData(String hostAddress, ByteBuffer buffer){ + public static Host readServerData(int ping, String hostAddress, ByteBuffer buffer){ String host = readString(buffer); String map = readString(buffer); int players = buffer.getInt(); @@ -100,7 +100,7 @@ public class NetworkIO{ String description = readString(buffer); String modeName = readString(buffer); - return new Host(host, hostAddress, map, wave, players, version, vertype, gamemode, limit, description, modeName.isEmpty() ? null : modeName); + return new Host(ping, host, hostAddress, 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 9b02b7413e..92776ab729 100644 --- a/core/src/mindustry/ui/dialogs/JoinDialog.java +++ b/core/src/mindustry/ui/dialogs/JoinDialog.java @@ -1,6 +1,7 @@ package mindustry.ui.dialogs; import arc.*; +import arc.graphics.*; import arc.input.*; import arc.math.*; import arc.scene.ui.*; @@ -233,6 +234,10 @@ public class JoinDialog extends BaseDialog{ t.add("[lightgray]" + (Core.bundle.format("players" + (host.players == 1 && host.playerLimit <= 0 ? ".single" : ""), (host.players == 0 ? "[lightgray]" : "[accent]") + host.players + (host.playerLimit > 0 ? "[lightgray]/[accent]" + host.playerLimit : "")+ "[lightgray]"))).left(); t.row(); t.add("[lightgray]" + Core.bundle.format("save.map", host.mapname) + "[lightgray] / " + (host.modeName == null ? host.mode.toString() : host.modeName)).width(targetWidth() - 10f).left().get().setEllipsis(true); + if(host.ping > 0){ + t.row(); + t.add(Iconc.chartBar + " " + host.ping + "ms").color(Color.gray).left(); + } }).expand().left().bottom().padLeft(12f).padBottom(8); } @@ -434,9 +439,13 @@ public class JoinDialog extends BaseDialog{ defaultServers.clear(); val.asArray().each(child -> defaultServers.add(child.getString("address", ""))); Log.info("Fetched @ global servers.", defaultServers.size); - }catch(Throwable ignored){} + }catch(Throwable ignored){ + Log.err("Failed to parse community servers."); + } }); - }catch(Throwable ignored){} + }catch(Throwable e){ + Log.err("Failed to fetch community servers."); + } }, t -> {}); } diff --git a/desktop/src/mindustry/desktop/steam/SNet.java b/desktop/src/mindustry/desktop/steam/SNet.java index 2a038171f7..9cd7c816ee 100644 --- a/desktop/src/mindustry/desktop/steam/SNet.java +++ b/desktop/src/mindustry/desktop/steam/SNet.java @@ -305,6 +305,7 @@ public class SNet implements SteamNetworkingCallback, SteamMatchmakingCallback, try{ SteamID lobby = smat.getLobbyByIndex(i); Host out = new Host( + -1, //invalid ping smat.getLobbyData(lobby, "name"), "steam:" + lobby.handle(), smat.getLobbyData(lobby, "mapname"),