private Task <bool> LoginAnon() { var tcs = new TaskCompletionSource <bool>(); LoggedOnHandler loggedOnCallback = null; LogonFailedHandler logonFailedCallback = null; ConnectedHandler disconnectedCallback = null; loggedOnCallback = () => { tcs.SetResult(true); onLoggedOn -= loggedOnCallback; onLogonFailed -= logonFailedCallback; onDisconnected -= disconnectedCallback; }; logonFailedCallback = (result) => { tcs.SetResult(false); onLogonFailed -= logonFailedCallback; onLoggedOn -= loggedOnCallback; onDisconnected -= disconnectedCallback; }; disconnectedCallback = () => { tcs.SetResult(false); onDisconnected -= disconnectedCallback; onLoggedOn -= loggedOnCallback; onLogonFailed -= logonFailedCallback; }; onLoggedOn += loggedOnCallback; onLogonFailed += logonFailedCallback; onDisconnected += disconnectedCallback; DebugLog.WriteLine("Steam3Session", "Logging anonymously into Steam3..."); steamUser.LogOnAnonymous(); return(tcs.Task); }
public Task <bool> LoginAsAsync(SteamUser.LogOnDetails details) { TaskCompletionSource <bool> tcs = new TaskCompletionSource <bool>(); LoggedOnHandler loggedOnCallback = null; LogonFailedHandler logonFailedCallback = null; ConnectedHandler disconnectedCallback = null; loggedOnCallback = () => { tcs.SetResult(true); onLoggedOn -= loggedOnCallback; onLogonFailed -= logonFailedCallback; onDisconnected -= disconnectedCallback; }; logonFailedCallback = (result) => { tcs.SetResult(false); onLogonFailed -= logonFailedCallback; onLoggedOn -= loggedOnCallback; onDisconnected -= disconnectedCallback; }; disconnectedCallback = () => { tcs.SetResult(false); onDisconnected -= disconnectedCallback; onLoggedOn -= loggedOnCallback; onLogonFailed -= logonFailedCallback; }; onLoggedOn += loggedOnCallback; onLogonFailed += logonFailedCallback; onDisconnected += disconnectedCallback; SetLoginDetails(details); DebugLog.WriteLine("Steam3Session", "Connecting to Steam3..."); Connect(); return(tcs.Task); }