add gslt login option (#515)
(cherry picked from commit c81f139fe6b5de0c9f7a005dc2cbe576f4ca8f67)
This commit is contained in:
@@ -31,6 +31,8 @@ namespace Torch
|
||||
int FontSize { get; set; }
|
||||
UGCServiceType UgcServiceType { get; set; }
|
||||
bool EntityManagerEnabled { get; set; }
|
||||
string LoginToken { get; set; }
|
||||
|
||||
void Save(string path = null);
|
||||
}
|
||||
}
|
35
Torch.Server/Patches/SteamLoginPatch.cs
Normal file
35
Torch.Server/Patches/SteamLoginPatch.cs
Normal 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;
|
||||
}
|
||||
}
|
@@ -109,6 +109,9 @@ public class TorchConfig : ViewModel, ITorchConfig
|
||||
GroupName = "Server")]
|
||||
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
|
||||
public void Save(string path = null) => Initializer.Instance?.ConfigPersistent?.Save(path);
|
||||
}
|
Reference in New Issue
Block a user