Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
                    }
                }
            }
        }