public override async Task <bool> HandleReaction(IEmote emote) { if (emote.Name == EMOTE_ADD.Name) { await SetupFlow.SetPage((int)SetupFlowPage.EnterChannel); SetupFlow.Mode = SetupFlowMode.Add; return(false); } else if (emote.Name == EMOTE_EDIT.Name) { SetupFlow.Mode = SetupFlowMode.Edit; } else if (emote.Name == EMOTE_DELETE.Name) { SetupFlow.Mode = SetupFlowMode.Delete; } else if (emote.Name == EMOTE_EXIT.Name) { await SetupFlow.SetPage((int)SetupFlowPage.Exit); return(false); } await SetupFlow.SetPage((int)SetupFlowPage.ChannelChooser); return(false); }
public override async Task <bool> HandleReaction(IEmote emote) { // Check if this was the exit emote if (emote.Name == EMOTE_EXIT.Name) { // Do not use a pre-prompt SetupFlow.ModeSelectPrePromptLocalizable = null; // Go back to mode select await SetupFlow.SetPage((int)SetupFlowPage.ModeSelect); } else if (emote.Name[1] == EMOTE_NUMBER_SUFFIX) // Check that the ending is the number suffix { // Get the number // TODO remove terrible hack with char -> string conversion int i = int.Parse($"{emote.Name[0]}") - 1; // Verify that it is not -1 if (i == -1) { // Do nothing return(false); } // Set the target channel ID and DynamicSettingsData instance KeyValuePair <ulong, DynamicSettingsData> pair = SetupFlow.GuildSettings.ChannelSettings.ElementAt(i); SetupFlow.TargetChannelId = pair.Key; SetupFlow.ChannelSettings = pair.Value; // Check the mode if (SetupFlow.Mode == SetupFlowMode.Edit) { // Proceed to the edit mode selector await SetupFlow.SetPage((int)SetupFlowPage.SelectEditMode); } else if (SetupFlow.Mode == SetupFlowMode.Delete) { // Remove this settings SetupFlow.GuildSettings.ChannelSettings.TryRemove(pair.Key, out DynamicSettingsData data); // Check if that was the final ChannelSettings if (SetupFlow.GuildSettings.ChannelSettings.Count() == 0) { // Exit await SetupFlow.SetPage((int)SetupFlowPage.Exit); } else { // Set mode select pre-prompt SetupFlow.ModeSelectPrePromptLocalizable = "discord.setup.mode_select.pre_prompt.deleted"; await SetupFlow.SetPage((int)SetupFlowPage.ModeSelect); } } } return(false); }
public override async Task <bool> HandleReaction(IEmote emote) { if (emote.Name == EMOTE_EXIT.Name) { SetupFlow.ModeSelectPrePromptLocalizable = "discord.setup.mode_select.pre_prompt.edits_not_saved"; await SetupFlow.SetPage((int)SetupFlowPage.ModeSelect); } return(false); }
public override async Task <bool> HandleReaction(IEmote emote) { if (emote.Name == EMOTE_EXIT.Name) { if (SetupFlow.Mode == SetupFlowMode.AddInitial) { await SetupFlow.SetPage((int)SetupFlowPage.Exit); } else { // Set a pre-prompt SetupFlow.ModeSelectPrePromptLocalizable = "discord.setup.mode_select.pre_prompt.edits_not_saved"; await SetupFlow.SetPage((int)SetupFlowPage.ModeSelect); } return(false); } else if (emote.Name == EMOTE_SAVE.Name) { // Save settings to the config SaveSettings(); // Check mode if (SetupFlow.Mode == SetupFlowMode.AddInitial || SetupFlow.Mode == SetupFlowMode.Add) { // Add the settings to the config SetupFlow.GuildSettings.ChannelSettings.TryAdd(SetupFlow.TargetChannelId, SetupFlow.ChannelSettings); } // Modify the message to show saved await ModifyOriginalMessage(); // Set a pre-prompt SetupFlow.ModeSelectPrePromptLocalizable = "discord.setup.mode_select.pre_prompt.edits_saved"; // Go back to mode select await SetupFlow.SetPage((int)SetupFlowPage.ModeSelect); return(false); } else { await HandleNotificationsReaction(emote); } return(true); }
public override async Task <bool> HandleReaction(IEmote emote) { if (emote.Name == EMOTE_NOTIFICATIONS.Name) { await SetupFlow.SetPage((int)SetupFlowPage.SelectNotifications); } else if (emote.Name == EMOTE_LANGUAGE.Name) { await SetupFlow.SetPage((int)SetupFlowPage.SelectLanguage); } else if (emote.Name == EMOTE_CHANGE_TARGET.Name) { await SetupFlow.SetPage((int)SetupFlowPage.EnterChannel); } else if (emote.Name == EMOTE_EXIT.Name) { SetupFlow.ModeSelectPrePromptLocalizable = "discord.setup.mode_select.pre_prompt.edits_not_saved"; await SetupFlow.SetPage((int)SetupFlowPage.ModeSelect); } return(false); }