internal void HandleVote(VoteResult result) { Player p = result.caller; #if DEBUG Console.WriteLine("Webserver returns: " + result.result); #endif switch (result.result) { case "0": Say(result.caller, m_StringLocalizer["not_yet_voted", result.service.Name], MsgColor, m_Configuration["MessageFailedIconUrl"]); break; case "1": if (result.giveItemDirectly) { OnPlayerVoted?.Invoke(result.caller, result.apidefinition); new VotifierWebclient().DownloadStringAsync(new Uri(string.Format(result.apidefinition.ReportSuccess, result.service.APIKey, result.caller.channel.owner.playerID.steamID.m_SteamID.ToString()))); return; } else { Say(result.caller, m_StringLocalizer["vote_pending_message", result.service.Name], MsgColor, m_Configuration["MessageFailedIconUrl"]); return; } case "2": Say(result.caller, m_StringLocalizer["vote_due_message", result.service.Name], MsgColor, m_Configuration["MessageFailedIconUrl"]); break; } }
private void Wc_DownloadStringCompleted(DownloadStringCompletedEventArgs e, Player _caller, Service _service, ServiceDefinition _apidefinition, bool _giveItemDirectly) { VoteResult v = new VoteResult() { caller = _caller, result = e.Result, apidefinition = _apidefinition, service = _service, giveItemDirectly = _giveItemDirectly }; lock (queue) { queue.Enqueue(v); } }
private IEnumerator <WaitForSeconds> CheckQueue() { while (Loaded) { if (VotifierPlugin.Instance.queue.Count > 0) { VoteResult v = VotifierPlugin.Instance.queue.Dequeue(); VotifierPlugin.Instance.HandleVote(v); } yield return(new WaitForSeconds(0.1f)); } }