public static bool SetVote(UnturnedPlayer player, Plugin.VoteRewardsConfig.Service service) { WebClient wc = new WebClient(); string result = null; string url = null; if (service.Name == "unturned-servers") { url = "http://unturned-servers.net/api/?action=post&object=votes&element=claim&key={0}&steamid={1}"; } else if (service.Name == "unturnedsl") { url = "http://unturnedsl.com/api/dedicated/post/{0}/{1}"; } else if (service.Name == "obs.erve.me" || service.Name == "observatory") { url = "http://api.observatory.rocketmod.net/?server={0}&steamid={1}&claim"; } if (service.APIKey == null || service.APIKey.Length == 0 || url == null) { return(false); } try { result = wc.DownloadString(string.Format(url, service.APIKey, player.CSteamID.m_SteamID)); } catch (WebException) { Logger.LogError(string.Format("\nVoteRewards >> Could not connect to {0}'s API\n", service.Name)); return(false); } if (result.Length != 1) { Logger.LogError(string.Format("\nVoteRewards >> {0}'s API cannot be used with this plugin\n", service.Name)); return(false); } if (result == "0") // Not claimed { return(false); } else if (result == "1") // Claimed { return(true); } return(false); }
public static string GetVote(UnturnedPlayer player, Plugin.VoteRewardsConfig.Service service, string url) { WebClient wc = new WebClient(); string result = null; if (service.APIKey == null || service.APIKey.Length == 0) { Logger.LogError("\nVoteRewards >> API key(s) not found\n"); return(null); } try { result = wc.DownloadString(string.Format(url, service.APIKey, player.CSteamID.m_SteamID)); } catch (WebException) { Logger.LogError(string.Format("\nVoteRewards >> Could not connect to {0}'s API\n", service.Name)); return(null); } if (result.Length != 1) { if (result == "Error: invalid server key") { Logger.LogError("\nVoteRewards >> API key is invalid\n"); } else if (result == "Error: no server key") { Logger.LogError("\nVoteRewards >> API key not found\n"); } else { Logger.LogError(string.Format("\nVoteRewards >> {0}'s API cannot be used with this plugin\n", service.Name)); } return(null); } return(result); }
public static void HandleVote(UnturnedPlayer player, bool giveReward) { string voteResult = null; string serviceName = null; var s = new Plugin.VoteRewardsConfig.Service("", ""); foreach (var service in Plugin.VoteRewardsPlugin.Instance.Configuration.Instance.Services) { if (service.Name == "unturned-servers") { if (service.APIKey == null || service.APIKey.Length == 0) { continue; } s = new Plugin.VoteRewardsConfig.Service(service.Name, service.APIKey); voteResult = GetVote(player, s, "http://unturned-servers.net/api/?object=votes&element=claim&key={0}&steamid={1}"); serviceName = service.Name; if (voteResult == "2") { continue; } break; } else if (service.Name == "unturnedsl") { if (service.APIKey == null || service.APIKey.Length == 0) { continue; } s = new Plugin.VoteRewardsConfig.Service(service.Name, service.APIKey); voteResult = GetVote(player, s, "http://unturnedsl.com/api/dedicated/{0}/{1}"); serviceName = service.Name; if (voteResult == "2") { continue; } break; } else if (service.Name == "obs.erve.me" || service.Name == "observatory") { if (service.APIKey == null || service.APIKey.Length == 0) { continue; } s = new Plugin.VoteRewardsConfig.Service(service.Name, service.APIKey); voteResult = GetVote(player, s, "http://api.observatory.rocketmod.net/?server={0}&steamid={1}"); serviceName = service.Name; if (voteResult == "2") { continue; } break; } } if (voteResult == null && giveReward == true) { UnturnedChat.Say(player, Plugin.VoteRewardsPlugin.Instance.Translate("failed_to_connect"), Color.red); } else { if (voteResult == "0") // Has not voted { UnturnedChat.Say(player, Plugin.VoteRewardsPlugin.Instance.Translate("not_yet_voted", serviceName), Color.red); } else if (voteResult == "1") // Has voted & not claimed { if (giveReward) { if (SetVote(player, s)) { GiveReward(player, serviceName); } else { UnturnedChat.Say(player, Plugin.VoteRewardsPlugin.Instance.Translate("failed_to_connect"), Color.red); } } else { UnturnedChat.Say(player, Plugin.VoteRewardsPlugin.Instance.Translate("pending_reward")); } } else if (voteResult == "2") // Has voted & claimed { if (giveReward) { UnturnedChat.Say(player, Plugin.VoteRewardsPlugin.Instance.Translate("already_voted"), Color.red); } } } }