From a133c5fd200f9f2481aa8c7535e00e274aa047ca Mon Sep 17 00:00:00 2001 From: Smieszkokoleszko <63968615+Smieszkokoleszko@users.noreply.github.com> Date: Wed, 6 Jan 2021 16:28:02 +0100 Subject: [PATCH 1/3] New command for changing signups name --- .../Handlers/SignupHandler.cs | 4 +- ArmaforcesMissionBot/Modules/Signups.cs | 69 +++++++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) diff --git a/ArmaforcesMissionBot/Handlers/SignupHandler.cs b/ArmaforcesMissionBot/Handlers/SignupHandler.cs index e5d7859..708c01a 100644 --- a/ArmaforcesMissionBot/Handlers/SignupHandler.cs +++ b/ArmaforcesMissionBot/Handlers/SignupHandler.cs @@ -200,7 +200,9 @@ private async Task HandleChannelRemoved(SocketChannel channel) { var signups = _services.GetService(); - if (signups.Missions.Any(x => x.SignupChannel == channel.Id)) + if (signups.Missions.Any(x => + x.SignupChannel == channel.Id && + (x.Editing != ArmaforcesMissionBotSharedClasses.Mission.EditEnum.New))) { signups.Missions.RemoveAll(x => x.SignupChannel == channel.Id); } diff --git a/ArmaforcesMissionBot/Modules/Signups.cs b/ArmaforcesMissionBot/Modules/Signups.cs index f7debdc..c585133 100644 --- a/ArmaforcesMissionBot/Modules/Signups.cs +++ b/ArmaforcesMissionBot/Modules/Signups.cs @@ -685,6 +685,75 @@ public async Task EditMission(int missionNo) } } + [Command("edytuj-nazwe-misji")] + [Summary("Edycja nazwy już utworzonej misji.")] + [ContextDMOrChannel] + public async Task MissionName([Remainder] string newTitle) + { + var signups = _map.GetService(); + + if (signups.Missions.Any(x => + (x.Editing == ArmaforcesMissionBotSharedClasses.Mission.EditEnum.Started) && + x.Owner == Context.User.Id)) + { + var mission = signups.Missions.Single(x => + (x.Editing == ArmaforcesMissionBotSharedClasses.Mission.EditEnum.Started) && + x.Owner == Context.User.Id); + + mission.Title = newTitle; + mission.MentionEveryone = false; + + var embed = new EmbedBuilder() + .WithColor(Color.Green) + .WithTitle(mission.Title) + .WithDescription(mission.Description) + .WithFooter(mission.Date.ToString()) + .AddField("Zamknięcie zapisów:", mission.CloseTime.ToString()) + .AddField("Wołanie wszystkich:", mission.MentionEveryone) + .WithAuthor(Context.User); + + if (mission.Attachment != null) + embed.WithImageUrl(mission.Attachment); + + embed.AddField("Modlista:", mission.Modlist); + + _miscHelper.BuildTeamsEmbed(mission.Teams, embed); + + _miscHelper.CreateConfirmationDialog( + _dialogs, + Context, + embed.Build(), + (Dialog dialog) => + { + _dialogs.Dialogs.Remove(dialog); + mission.Editing = ArmaforcesMissionBotSharedClasses.Mission.EditEnum.New; + _ = SignupHelper.CreateSignupChannel(signups, Context.User.Id, Context.Channel); + ReplyAsync("Pa na to!"); + + try + { + var guild = _client.GetGuild(_config.AFGuild); + guild.GetTextChannel(mission.SignupChannel).DeleteAsync(); + } + catch + { + ReplyAsync("Nie mogłem usunąć starego kanału zapisów."); + } + }, + (Dialog dialog) => + { + Context.Channel.DeleteMessageAsync(dialog.DialogID); + _dialogs.Dialogs.Remove(dialog); + ReplyAsync("Co Ci znowu nie pasuje?"); + }); + + } + else + { + await ReplyAsync("Bez wybrania misji to dupę se edytuj. Pozdrawiam."); + } + } + [Command("zapisz-zmiany")] [Summary("Zapisuje zmiany w aktualnie edytowanej misji, jesli w parametrze zostanie podana wartość true to zostanie wysłane ogłoszenie o zmianach w misji.")] [ContextDMOrChannel] From 880dc198a9756248f37c58dc180b10a4b43fa104 Mon Sep 17 00:00:00 2001 From: Smieszkokoleszko <63968615+Smieszkokoleszko@users.noreply.github.com> Date: Wed, 6 Jan 2021 17:15:43 +0100 Subject: [PATCH 2/3] Simpler way of signups name changing --- .../Handlers/SignupHandler.cs | 4 +- ArmaforcesMissionBot/Helpers/SignupHelper.cs | 1 + ArmaforcesMissionBot/Modules/Signups.cs | 46 +------------------ 3 files changed, 3 insertions(+), 48 deletions(-) diff --git a/ArmaforcesMissionBot/Handlers/SignupHandler.cs b/ArmaforcesMissionBot/Handlers/SignupHandler.cs index 708c01a..e5d7859 100644 --- a/ArmaforcesMissionBot/Handlers/SignupHandler.cs +++ b/ArmaforcesMissionBot/Handlers/SignupHandler.cs @@ -200,9 +200,7 @@ private async Task HandleChannelRemoved(SocketChannel channel) { var signups = _services.GetService(); - if (signups.Missions.Any(x => - x.SignupChannel == channel.Id && - (x.Editing != ArmaforcesMissionBotSharedClasses.Mission.EditEnum.New))) + if (signups.Missions.Any(x => x.SignupChannel == channel.Id)) { signups.Missions.RemoveAll(x => x.SignupChannel == channel.Id); } diff --git a/ArmaforcesMissionBot/Helpers/SignupHelper.cs b/ArmaforcesMissionBot/Helpers/SignupHelper.cs index 4f3171f..feb7341 100644 --- a/ArmaforcesMissionBot/Helpers/SignupHelper.cs +++ b/ArmaforcesMissionBot/Helpers/SignupHelper.cs @@ -280,6 +280,7 @@ await signupChannel.ModifyAsync(x => // really hacky solution to avoid recalculating indexes for each channel integer should have // space for around 68 years, and this bot is not going to work this long for sure x.Position = index; + x.Name = mission.Title; }); var mainEmbed = await CreateMainEmbed(guild, mission); diff --git a/ArmaforcesMissionBot/Modules/Signups.cs b/ArmaforcesMissionBot/Modules/Signups.cs index c585133..4bdca17 100644 --- a/ArmaforcesMissionBot/Modules/Signups.cs +++ b/ArmaforcesMissionBot/Modules/Signups.cs @@ -701,52 +701,8 @@ public async Task MissionName([Remainder] string newTitle) x.Owner == Context.User.Id); mission.Title = newTitle; - mission.MentionEveryone = false; - - var embed = new EmbedBuilder() - .WithColor(Color.Green) - .WithTitle(mission.Title) - .WithDescription(mission.Description) - .WithFooter(mission.Date.ToString()) - .AddField("Zamknięcie zapisów:", mission.CloseTime.ToString()) - .AddField("Wołanie wszystkich:", mission.MentionEveryone) - .WithAuthor(Context.User); - - if (mission.Attachment != null) - embed.WithImageUrl(mission.Attachment); - - embed.AddField("Modlista:", mission.Modlist); - - _miscHelper.BuildTeamsEmbed(mission.Teams, embed); - - _miscHelper.CreateConfirmationDialog( - _dialogs, - Context, - embed.Build(), - (Dialog dialog) => - { - _dialogs.Dialogs.Remove(dialog); - mission.Editing = ArmaforcesMissionBotSharedClasses.Mission.EditEnum.New; - _ = SignupHelper.CreateSignupChannel(signups, Context.User.Id, Context.Channel); - ReplyAsync("Pa na to!"); - - try - { - var guild = _client.GetGuild(_config.AFGuild); - guild.GetTextChannel(mission.SignupChannel).DeleteAsync(); - } - catch - { - ReplyAsync("Nie mogłem usunąć starego kanału zapisów."); - } - }, - (Dialog dialog) => - { - Context.Channel.DeleteMessageAsync(dialog.DialogID); - _dialogs.Dialogs.Remove(dialog); - ReplyAsync("Co Ci znowu nie pasuje?"); - }); + await ReplyAsync("Niech będzie..."); } else { From 880e1a1a1d206c23b33fb52376a6bfe55bc4ebc0 Mon Sep 17 00:00:00 2001 From: Smieszkokoleszko <63968615+Smieszkokoleszko@users.noreply.github.com> Date: Wed, 6 Jan 2021 18:25:16 +0100 Subject: [PATCH 3/3] Code cleanup Removed unnecessary variable and getting the service from provider. --- ArmaforcesMissionBot/Modules/Signups.cs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/ArmaforcesMissionBot/Modules/Signups.cs b/ArmaforcesMissionBot/Modules/Signups.cs index 4bdca17..2a6f5ff 100644 --- a/ArmaforcesMissionBot/Modules/Signups.cs +++ b/ArmaforcesMissionBot/Modules/Signups.cs @@ -690,13 +690,11 @@ public async Task EditMission(int missionNo) [ContextDMOrChannel] public async Task MissionName([Remainder] string newTitle) { - var signups = _map.GetService(); - - if (signups.Missions.Any(x => + if (SignupsData.Missions.Any(x => (x.Editing == ArmaforcesMissionBotSharedClasses.Mission.EditEnum.Started) && x.Owner == Context.User.Id)) { - var mission = signups.Missions.Single(x => + var mission = SignupsData.Missions.Single(x => (x.Editing == ArmaforcesMissionBotSharedClasses.Mission.EditEnum.Started) && x.Owner == Context.User.Id);