Esempio n. 1
0
        private static void OnNewRewardSave(object sender, NewRewardArgs reward)
        {
            try
            {
                var newReward = Plugin.Instance.twitchClient.CreateCustomReward(reward);

                Plugin.Instance.UpdateRwardsList(() =>
                {
                    guiScript.addRewardForm.Hide();
                    UpdateRewardGrid(newReward.Id);
                    guiScript.rewardSettings.SetActive(true);
                });
            }
            catch (CustomRewardException e)
            {
                var message = e.Message;

                if (message == "CREATE_CUSTOM_REWARD_DUPLICATE_REWARD")
                {
                    message = "A reward with the same name already exists on your account.";
                }

                guiScript.addRewardForm.error.Show(message);
            }
        }
Esempio n. 2
0
        public string CreateCustomReward(NewRewardArgs reward)
        {
            var color    = Random.ColorHSV(0f, 1f, 0.6f, 0.7f, 0.4f, 0.5f);
            var hexColor = "#" + ColorUtility.ToHtmlStringRGB(color);
            var url      = $"{helixURL}/channel_points/custom_rewards?broadcaster_id={user.Id}";
            var query    = $"title={reward.Title}&cost={reward.Cost}&prompt={reward.Prompt}&is_user_input_required={reward.IsUserInputRequired}&background_color={hexColor}";

            try
            {
                return(Post(url, query));
            }
            catch (WebException e)
            {
                HttpWebResponse response = (HttpWebResponse)e.Response;

                if (response.StatusCode == HttpStatusCode.BadRequest)
                {
                    var reader  = new StreamReader(e.Response.GetResponseStream());
                    var json    = reader.ReadToEnd();
                    var message = JsonConvert.DeserializeObject <CustomRewardResponse>(json);

                    throw new CustomRewardException(message);
                }

                if (response.StatusCode != HttpStatusCode.Unauthorized)
                {
                    throw e;
                }

                return(null);
            }
        }
Esempio n. 3
0
        public Reward CreateCustomReward(NewRewardArgs reward)
        {
            var color           = Random.ColorHSV(0f, 1f, 0.6f, 0.7f, 0.4f, 0.5f);
            var backgroundColor = "#" + ColorUtility.ToHtmlStringRGB(color);
            var url             = $"{helixURL}/channel_points/custom_rewards";
            var query           = $"is_enabled=false" +
                                  $"&cost={reward.Cost}" +
                                  $"&title={reward.Title}" +
                                  $"&prompt={reward.Prompt}" +
                                  $"&broadcaster_id={user.Id}" +
                                  $"&background_color={backgroundColor}" +
                                  $"&is_user_input_required={reward.IsUserInputRequired}" +
                                  $"&should_redemptions_skip_request_queue={reward.ShouldRedemptionsSkipRequestQueue}";

            try
            {
                var json = Post(url, query);

                return(JsonConvert.DeserializeObject <Rewards>(json).Data[0]);
            }
            catch (WebException e)
            {
                HttpWebResponse response = (HttpWebResponse)e.Response;

                if (response.StatusCode == HttpStatusCode.BadRequest)
                {
                    var reader  = new StreamReader(e.Response.GetResponseStream());
                    var json    = reader.ReadToEnd();
                    var message = JsonConvert.DeserializeObject <CustomRewardResponse>(json);

                    throw new CustomRewardException(message);
                }

                if (response.StatusCode != HttpStatusCode.Unauthorized)
                {
                    throw e;
                }

                return(null);
            }
        }