Exemple #1
0
        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);
        }
Exemple #4
0
        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);
        }