From 59419e13d97340eeca6deaef7fdeda066daa50fe Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 20 Aug 2019 10:23:22 -0400 Subject: [PATCH] Networking fixes --- core/assets/bundles/bundle.properties | 1 + .../mindustry/ui/dialogs/JoinDialog.java | 36 ++++++++++--------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 4f6f4be95d..9fe58d1b1b 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -75,6 +75,7 @@ server.kicked.nameEmpty = Your chosen name is invalid. server.kicked.idInUse = You are already on this server! Connecting with two accounts is not permitted. server.kicked.customClient = This server does not support custom builds. Download an official version. server.kicked.gameover = Game over! +server.versions = Your version:[accent] {0}[]\nServer version:[accent] {1}[] host.info = The [accent]host[] button hosts a server on port [scarlet]6567[]. \nAnybody on the same [lightgray]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[lightgray]Note: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings. Note that public networks sometimes do not allow server discovery. join.info = Here, you can enter a [accent]server IP[] to connect to, or discover [accent]local network[] servers to connect to.\nBoth LAN and WAN multiplayer is supported.\n\n[lightgray]Note: There is no automatic global server list; if you want to connect to someone by IP, you would need to ask the host for their IP. hostserver = Host Multiplayer Game diff --git a/core/src/io/anuke/mindustry/ui/dialogs/JoinDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/JoinDialog.java index 71f72577fc..7b1486c270 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/JoinDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/JoinDialog.java @@ -1,21 +1,20 @@ package io.anuke.mindustry.ui.dialogs; -import io.anuke.annotations.Annotations.Serialize; -import io.anuke.arc.Core; -import io.anuke.arc.collection.Array; -import io.anuke.arc.graphics.Color; -import io.anuke.arc.math.Mathf; -import io.anuke.arc.scene.style.Drawable; +import io.anuke.annotations.Annotations.*; +import io.anuke.arc.*; +import io.anuke.arc.collection.*; +import io.anuke.arc.graphics.*; +import io.anuke.arc.math.*; +import io.anuke.arc.scene.style.*; import io.anuke.arc.scene.ui.*; -import io.anuke.arc.scene.ui.layout.Cell; -import io.anuke.arc.scene.ui.layout.Table; -import io.anuke.arc.util.Strings; -import io.anuke.arc.util.Time; -import io.anuke.mindustry.Vars; -import io.anuke.mindustry.core.Platform; -import io.anuke.mindustry.game.Version; -import io.anuke.mindustry.net.Host; +import io.anuke.arc.scene.ui.layout.*; +import io.anuke.arc.util.*; +import io.anuke.mindustry.*; +import io.anuke.mindustry.core.*; +import io.anuke.mindustry.game.*; import io.anuke.mindustry.net.Net; +import io.anuke.mindustry.net.*; +import io.anuke.mindustry.net.Packets.*; import static io.anuke.mindustry.Vars.*; @@ -97,9 +96,14 @@ public class JoinDialog extends FloatingDialog{ TextButton button = buttons[0] = remote.addButton("[accent]" + server.displayIP(), "clear", () -> { if(!buttons[0].childrenPressed()){ - connect(server.ip, server.port); + if(server.lastHost != null && server.lastHost.version != Version.build && Version.build != -1 && server.lastHost.version != -1){ + ui.showInfo("[scarlet]" + (server.lastHost.version > Version.build ? KickReason.clientOutdated : KickReason.serverOutdated).toString() + "\n[]" + + Core.bundle.format("server.versions", Version.build, server.lastHost.version)); + }else{ + connect(server.ip, server.port); + } } - }).width(targetWidth()).height(130f).pad(4f).get(); + }).width(targetWidth()).pad(4f).get(); button.getLabel().setWrap(true);