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; }
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
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")]
|
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);
|
||||||
}
|
}
|
Reference in New Issue
Block a user