diff --git a/build.gradle b/build.gradle index 4ad56f59ff..e3ae3ad3e9 100644 --- a/build.gradle +++ b/build.gradle @@ -326,7 +326,7 @@ project(":core"){ annotationProcessor 'com.github.Anuken:jabel:0.9.0' compileOnly project(":annotations") - kapt project(":annotations") + if(!project.hasProperty("noKapt")) kapt project(":annotations") } afterEvaluate{ diff --git a/core/src/mindustry/net/NetConnection.java b/core/src/mindustry/net/NetConnection.java index a8d27786ed..7c9e51890f 100644 --- a/core/src/mindustry/net/NetConnection.java +++ b/core/src/mindustry/net/NetConnection.java @@ -1,6 +1,5 @@ package mindustry.net; -import arc.*; import arc.struct.*; import arc.util.*; import mindustry.entities.units.*; @@ -82,17 +81,16 @@ public abstract class NetConnection{ Call.kick(this, reason); } - if(uuid.startsWith("steam:")){ - //run with a 2-frame delay so there is time to send the kick packet, steam handles this weirdly - Core.app.post(() -> Core.app.post(this::close)); - }else{ - close(); - } + kickDisconnect(); netServer.admins.save(); kicked = true; } + protected void kickDisconnect(){ + close(); + } + public boolean isConnected(){ return true; } diff --git a/desktop/src/mindustry/desktop/steam/SNet.java b/desktop/src/mindustry/desktop/steam/SNet.java index 0d6a760dc3..e648af88b9 100644 --- a/desktop/src/mindustry/desktop/steam/SNet.java +++ b/desktop/src/mindustry/desktop/steam/SNet.java @@ -263,7 +263,7 @@ public class SNet implements SteamNetworkingCallback, SteamMatchmakingCallback, //check version if(version != Version.build){ ui.loadfrag.hide(); - ui.showInfo("[scarlet]" + (version > Version.build ? KickReason.clientOutdated : KickReason.serverOutdated).toString() + "\n[]" + + ui.showInfo("[scarlet]" + (version > Version.build ? KickReason.clientOutdated : KickReason.serverOutdated) + "\n[]" + Core.bundle.format("server.versions", Version.build, version)); smat.leaveLobby(steamIDLobby); return; @@ -437,6 +437,12 @@ public class SNet implements SteamNetworkingCallback, SteamMatchmakingCallback, return true;//state.isConnectionActive(); } + @Override + protected void kickDisconnect(){ + //delay the close so the kick packet can be sent on steam + Core.app.post(() -> Core.app.post(this::close)); + } + @Override public void close(){ disconnectSteamUser(sid);