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); } }
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); } }
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); } }