mirror of
https://github.com/Anuken/Mindustry.git
synced 2026-04-23 05:51:27 -07:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
735cb74483
3 changed files with 33 additions and 1 deletions
|
|
@ -230,6 +230,7 @@ disconnect.timeout = Timed out.
|
|||
disconnect.data = Failed to load world data!
|
||||
cantconnect = Unable to join game ([accent]{0}[]).
|
||||
connecting = [accent]Connecting...
|
||||
reconnecting = [accent]Reconnecting...
|
||||
connecting.data = [accent]Loading world data...
|
||||
server.port = Port:
|
||||
server.addressinuse = Address already in use!
|
||||
|
|
|
|||
|
|
@ -257,6 +257,11 @@ public class NetClient implements ApplicationListener{
|
|||
public static void kick(KickReason reason){
|
||||
netClient.disconnectQuietly();
|
||||
logic.reset();
|
||||
|
||||
if(reason == KickReason.serverRestarting){
|
||||
ui.join.reconnect();
|
||||
return;
|
||||
}
|
||||
|
||||
if(!reason.quiet){
|
||||
if(reason.extraText() != null){
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import arc.scene.ui.*;
|
|||
import arc.scene.ui.layout.*;
|
||||
import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import arc.util.Timer.*;
|
||||
import arc.util.serialization.*;
|
||||
import mindustry.*;
|
||||
import mindustry.core.*;
|
||||
|
|
@ -33,6 +34,10 @@ public class JoinDialog extends BaseDialog{
|
|||
int refreshes;
|
||||
boolean showHidden;
|
||||
|
||||
String lastIp;
|
||||
int lastPort;
|
||||
Task ping;
|
||||
|
||||
public JoinDialog(){
|
||||
super("@joingame");
|
||||
|
||||
|
|
@ -445,13 +450,34 @@ public class JoinDialog extends BaseDialog{
|
|||
logic.reset();
|
||||
net.reset();
|
||||
Vars.netClient.beginConnecting();
|
||||
net.connect(ip, port, () -> {
|
||||
net.connect(lastIp = ip, lastPort = port, () -> {
|
||||
hide();
|
||||
add.hide();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
public void reconnect(){
|
||||
if(lastIp == null || lastIp.isEmpty()) return;
|
||||
ui.loadfrag.show("@reconnecting");
|
||||
|
||||
ping = Timer.schedule(() -> {
|
||||
net.pingHost(lastIp, lastPort, host -> {
|
||||
if(ping == null) return;
|
||||
ping.cancel();
|
||||
ping = null;
|
||||
connect(lastIp, lastPort);
|
||||
}, exception -> {});
|
||||
}, 1, 1);
|
||||
|
||||
ui.loadfrag.setButton(() -> {
|
||||
ui.loadfrag.hide();
|
||||
if(ping == null) return;
|
||||
ping.cancel();
|
||||
ping = null;
|
||||
});
|
||||
}
|
||||
|
||||
void safeConnect(String ip, int port, int version){
|
||||
if(version != Version.build && Version.build != -1 && version != -1){
|
||||
ui.showInfo("[scarlet]" + (version > Version.build ? KickReason.clientOutdated : KickReason.serverOutdated).toString() + "\n[]" +
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue