diff --git a/core/src/mindustry/net/ArcNetProvider.java b/core/src/mindustry/net/ArcNetProvider.java index 64e43b5cee..3c268755f3 100644 --- a/core/src/mindustry/net/ArcNetProvider.java +++ b/core/src/mindustry/net/ArcNetProvider.java @@ -252,8 +252,9 @@ public class ArcNetProvider implements NetProvider{ 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(() -> { + synchronized(foundAddresses){ try{ if(foundAddresses.contains(address -> address.equals(packet.getAddress()) || (isLocal(address) && isLocal(packet.getAddress())))){ return; @@ -266,7 +267,7 @@ public class ArcNetProvider implements NetProvider{ //don't crash when there's an error pinging a a server or parsing data e.printStackTrace(); } - }); + } }, () -> Core.app.post(done)); }