internal async void UpdateRedemptionStatus(ReadMessage formattedMessage, KrakenConnections.RedemptionStates redemptionStateToSet) { var rewards = await krakenConnection.GetUnredeemedRewardsForUser(parent, formattedMessage.RewardID, formattedMessage.userID); parent.ThreadSafeAddPreviewText($"{(redemptionStateToSet == KrakenConnections.RedemptionStates.FULFILLED ? "Accepting" : "Denying")} requests for {formattedMessage.user}", LineType.IrcCommand); krakenConnection.UpdateRedemptionStatus(parent, formattedMessage.RewardID, rewards.Select(x => x.id).ToArray(), redemptionStateToSet); }
private void MeebyIrc_OnRawMessage(object sender, IrcEventArgs e) { try { if (e.Data.Channel != null && e.Data.Nick != null && e.Data.Message != null) { ReadMessage msg = new ReadMessage(); if (e.Data.Tags.ContainsKey("custom-reward-id")) { if (programSettings.TTSLogic == TTSLogic.RewardIDAndCommand || programSettings.SoundRedemptionLogic == SoundRedemptionLogic.ChannelPoints) { var rewardID = e.Data.Tags["custom-reward-id"]; msg.userID = e.Data.Tags["user-id"]; if (rewardID == programSettings.TTSRewardID) { msg.msgType = MessageType.TTSReward; msg.RewardID = rewardID; } else if (rewardID == programSettings.SoundRewardID) { msg.msgType = MessageType.SoundReward; msg.RewardID = rewardID; } else { msg.msgType = MessageType.Normal; msg.RewardID = ""; } } else { msg.msgType = MessageType.Normal; } } msg.user = e.Data.Nick; msg.message = e.Data.Message; msg.rights = GetRoleFromTags(e); bool result = RunBot(msg); } } catch (Exception ex) { Debug.WriteLine(ex); Logger.AddLine("Exception on Raw Message: " + ex.ToString()); } }
public void IgnoreListRemove(ReadMessage msg) { if (moderators.Contains(msg.user)) { string[] helper = msg.message.Split(new char[] { ' ' }, 2); if (ignorelist.Contains(helper[1].ToLower())) { ignorelist.Remove(helper[1].ToLower()); SaveIgnoredList(); SendChatMessage("Removed " + helper[1] + " from ignored list."); } else { SendChatMessage(helper[1] + " is not present on ignored list."); } } }
public void TrustedUsersRemove(ReadMessage msg) { if (moderators.Contains(msg.user)) { string[] helper = msg.message.Split(new char[] { ' ' }, 2); if (trustedUsers.Contains(helper[1].ToLower())) { trustedUsers.Remove(helper[1].ToLower()); SaveTrustedList(); SendChatMessage("Removed " + helper[1] + " from trusted list."); } else { SendChatMessage(helper[1] + " is not present on trusted list."); } } }
public void TrustedUserAdd(ReadMessage msg) { if (moderators.Contains(msg.user)) { string[] helper = msg.message.Split(new char[] { ' ' }, 2); if (!moderators.Contains(helper[1].ToLower())) { if (!trustedUsers.Contains(helper[1].ToLower())) { trustedUsers.Add(helper[1].ToLower()); SaveTrustedList(); SendChatMessage("Added " + helper[1] + " to trusted list."); } else { SendChatMessage(helper[1] + " is already on trusted list."); } } } }
public void IgnoreListAdd(ReadMessage msg) { if (moderators.Contains(msg.user)) { string[] helper = msg.message.Split(new char[] { ' ' }, 2); if (!moderators.Contains(helper[1].ToLower())) { if (!ignorelist.Contains(helper[1].ToLower())) { ignorelist.Add(helper[1].ToLower()); SaveIgnoredList(); SendChatMessage("Added " + helper[1] + " to ignored list."); } else { SendChatMessage(helper[1] + " is already on ignored list."); } } else { SendChatMessage("Moderators can't be added to ignored list!"); } } }
private bool RunBot(ReadMessage formattedMessage) { FormattedMessage = formattedMessage; switch (FormattedMessage.msgType) { case MessageType.TTSReward: { parent.ThreadSafeAddPreviewText(formattedMessage.user + ": " + formattedMessage.message, LineType.SoundCommand); if (programSettings.TTSLogic == TTSLogic.Restricted) { if (FormattedMessage.rights >= programSettings.TTSRoleRequirement) { if (SndDB.PlayTTS(formattedMessage.user, formattedMessage.message, true)) { irc.UpdateRedemptionStatus(formattedMessage, KrakenConnections.RedemptionStates.FULFILLED); } else { irc.UpdateRedemptionStatus(formattedMessage, KrakenConnections.RedemptionStates.CANCELED); } return(true); } else { return(true); } } else { SndDB.PlayTTS(formattedMessage.user, formattedMessage.message, true); return(true); } } case MessageType.SoundReward: { parent.ThreadSafeAddPreviewText(formattedMessage.user + ": " + formattedMessage.message, LineType.SoundCommand); string text = formattedMessage.message.ToLower(); if (text.StartsWith(PrefixChar.ToString())) { text = text.Remove(0, 1); } TwitchRightsEnum privilage = formattedMessage.rights; if (SndDB.PlaySoundIfExists(formattedMessage.user, text, privilage, true)) { irc.UpdateRedemptionStatus(formattedMessage, KrakenConnections.RedemptionStates.FULFILLED); } else { irc.UpdateRedemptionStatus(formattedMessage, KrakenConnections.RedemptionStates.CANCELED); } return(true); } default: if (!formattedMessage.message.StartsWith(PrefixChar.ToString()) || irc.ignorelist.Contains(formattedMessage.user)) { parent.ThreadSafeAddPreviewText(formattedMessage.user + ": " + formattedMessage.message, LineType.Generic); //literally nothing else happens in your code if this is false return(true); } else { TwitchRightsEnum privilage = formattedMessage.rights; string text = formattedMessage.message.Remove(0, 1).ToLower(); //Mod Commands if (formattedMessage.rights >= TwitchRightsEnum.Mod || irc.moderators.Contains(formattedMessage.user)) { if (text == "volume" || text.StartsWith("volume ")) { parent.ThreadSafeAddPreviewText(formattedMessage.user + ": " + formattedMessage.message, LineType.ModCommand); SndDB.ChangeVolumeIRC(irc, text, parent); return(true); } if (text == "delay" || text.StartsWith("delay ")) { parent.ThreadSafeAddPreviewText(formattedMessage.user + ": " + formattedMessage.message, LineType.ModCommand); SndDB.ChangeDelay(irc, text); return(true); } if (text == "stopallsounds") { parent.ThreadSafeAddPreviewText(formattedMessage.user + ": " + formattedMessage.message, LineType.ModCommand); SndDB.Stopallsounds(); return(true); } if (text.StartsWith("removesound ")) { parent.ThreadSafeAddPreviewText(formattedMessage.user + ": " + formattedMessage.message, LineType.ModCommand); SndDB.RemoveSound(irc, text); return(true); } if (text.StartsWith("suboverride")) { parent.ThreadSafeAddPreviewText(formattedMessage.user + ": " + formattedMessage.message, LineType.ModCommand); SndDB.ChangeSubOverride(irc, text); return(true); } } //TTS if (text.StartsWith("tts ")) { parent.ThreadSafeAddPreviewText(formattedMessage.user + ": " + formattedMessage.message, LineType.SoundCommand); if (programSettings.TTSLogic == TTSLogic.RewardIDAndCommand) { if (formattedMessage.rights >= TwitchRightsEnum.Mod) { SndDB.PlayTTS(formattedMessage.user, formattedMessage.message.Split(new char[] { ' ' }, 2)[1]); } return(true); } return(true); } //SoundPlayback else { if (programSettings.SoundRedemptionLogic == SoundRedemptionLogic.Legacy || privilage == TwitchRightsEnum.Admin) { parent.ThreadSafeAddPreviewText(formattedMessage.user + ": " + formattedMessage.message, LineType.SoundCommand); SndDB.PlaySoundIfExists(formattedMessage.user, text, privilage); } } return(true); } } }