Created
June 26, 2019 18:42
-
-
Save norbert-k/fdcb6742010ec27db76c848eadb7b3ab to your computer and use it in GitHub Desktop.
SteamMasterServer.ServerQuery() not calling back SteamMasterServer.QueryCallback callback.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using SteamKit2; | |
namespace SteamServerScraper | |
{ | |
class DebugLogListener : IDebugListener | |
{ | |
public void WriteLine(string category, string msg) | |
{ | |
String timestamp = DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss.fffffff "); | |
Console.WriteLine("DebugLogListener[{2}] - {0}: {1}", category, msg, timestamp); | |
} | |
} | |
class Program | |
{ | |
private static SteamClient steamClient; | |
private static SteamUser steamUser; | |
private static SteamMasterServer steamMasterServer; | |
private static CallbackManager callbackManager; | |
private static bool isRunning; | |
private const uint RustAppId = 252490; | |
static void Main(string[] args) | |
{ | |
DebugLog.AddListener(new DebugLogListener()); | |
DebugLog.Enabled = true; | |
steamClient = new SteamClient(); | |
callbackManager = new CallbackManager(steamClient); | |
steamUser = steamClient.GetHandler<SteamUser>(); | |
steamMasterServer = steamClient.GetHandler<SteamMasterServer>(); | |
callbackManager.Subscribe<SteamClient.ConnectedCallback>(OnConnected); | |
callbackManager.Subscribe<SteamClient.DisconnectedCallback>(OnDisconnected); | |
callbackManager.Subscribe<SteamUser.LoggedOnCallback>(OnLoggedOn); | |
callbackManager.Subscribe<SteamUser.LoggedOffCallback>(OnLoggedOff); | |
// Subscribe to SteamMasterServer.ServerQuery callback | |
callbackManager.Subscribe<SteamMasterServer.QueryCallback>(OnMasterServerQueryCallback); | |
isRunning = true; | |
Console.WriteLine("Connecting to Steam..."); | |
steamClient.Connect(); | |
while (isRunning) | |
{ | |
callbackManager.RunWaitCallbacks(); | |
} | |
} | |
private static void OnMasterServerQueryCallback(SteamMasterServer.QueryCallback queryCallback) | |
{ | |
// Print out server addresses | |
foreach (var server in queryCallback.Servers) | |
{ | |
Console.WriteLine(server.EndPoint.Address); | |
} | |
} | |
private static void OnConnected(SteamClient.ConnectedCallback connectedCallback) | |
{ | |
Console.WriteLine("Connected to Steam! Logging in anonymously"); | |
steamUser.LogOnAnonymous(); | |
} | |
private static void OnDisconnected(SteamClient.DisconnectedCallback disconnectedCallback) | |
{ | |
Console.WriteLine("Disconnected from Steam"); | |
isRunning = false; | |
} | |
private static void OnLoggedOn(SteamUser.LoggedOnCallback loggedOnCallback) | |
{ | |
Console.WriteLine("Successfully logged on anonymously!"); | |
// When logged in start ServerQuery | |
steamMasterServer.ServerQuery(RustServerQueryDetails()); | |
Console.WriteLine("Querying Steam Master Server..."); | |
} | |
private static void OnLoggedOff(SteamUser.LoggedOffCallback loggedOffCallback) | |
{ | |
Console.WriteLine("Logged off of Steam: {0}", loggedOffCallback.Result); | |
} | |
static SteamMasterServer.QueryDetails RustServerQueryDetails() | |
{ | |
return new SteamMasterServer.QueryDetails | |
{ | |
Region = ERegionCode.World, | |
AppID = RustAppId, | |
MaxServers = 10000 | |
}; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment