Fixed Steam kicking

This commit is contained in:
Anuken 2023-12-05 13:54:47 -05:00
parent fdfb79477b
commit b3c26fac05
3 changed files with 13 additions and 9 deletions

View File

@ -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{

View File

@ -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;
}

View File

@ -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);