add gslt login option (#515)

(cherry picked from commit c81f139fe6b5de0c9f7a005dc2cbe576f4ca8f67)
This commit is contained in:
zznty
2022-10-13 20:01:05 +07:00
parent 067d8802b6
commit 17f97af52f
3 changed files with 40 additions and 0 deletions

View File

@@ -31,6 +31,8 @@ namespace Torch
int FontSize { get; set; } int FontSize { get; set; }
UGCServiceType UgcServiceType { get; set; } UGCServiceType UgcServiceType { get; set; }
bool EntityManagerEnabled { get; set; } bool EntityManagerEnabled { get; set; }
string LoginToken { get; set; }
void Save(string path = null); void Save(string path = null);
} }
} }

View File

@@ -0,0 +1,35 @@
using System.Reflection;
using NLog;
using Steamworks;
using Torch.Managers.PatchManager;
using Torch.Utils;
namespace Torch.Patches;
[PatchShim]
public static class SteamLoginPatch
{
private static readonly ILogger Log = LogManager.GetCurrentClassLogger();
[ReflectedMethodInfo(null, "LogOnAnonymous", TypeName = "VRage.Steam.MySteamGameServer, VRage.Steam")]
private static readonly MethodInfo LoginMethod;
public static void Patch(PatchContext context)
{
context.GetPattern(LoginMethod).AddPrefix();
}
private static bool Prefix()
{
#pragma warning disable CS0618
var token = TorchBase.Instance.Config.LoginToken;
#pragma warning restore CS0618
if (string.IsNullOrEmpty(token))
return true;
Log.Info("Logging in to Steam with GSLT");
SteamGameServer.LogOn(token);
return false;
}
}

View File

@@ -109,6 +109,9 @@ public class TorchConfig : ViewModel, ITorchConfig
GroupName = "Server")] GroupName = "Server")]
public bool EntityManagerEnabled { get; set; } = true; public bool EntityManagerEnabled { get; set; } = true;
[Display(Name = "Login Token", Description = "Steam GSLT (can be used if you have dynamic ip)", GroupName = "Server")]
public string LoginToken { get; set; }
// for backward compatibility // for backward compatibility
public void Save(string path = null) => Initializer.Instance?.ConfigPersistent?.Save(path); public void Save(string path = null) => Initializer.Instance?.ConfigPersistent?.Save(path);
} }