示例#1
0
        public async Task EndSignups()
        {
            if (SignupsData.Missions.Any(x => x.Editing == Mission.EditEnum.New && x.Owner == Context.User.Id))
            {
                var mission = SignupsData.Missions.Single(x => x.Editing == Mission.EditEnum.New && x.Owner == Context.User.Id);
                if (SignupHelper.CheckMissionComplete(mission))
                {
                    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);
                    }

                    mission.Modlist ??= "https://modlist.armaforces.com/#/download/default";

                    embed.AddField("Modlista:", mission.Modlist);

                    _miscHelper.BuildTeamsEmbed(mission.Teams, embed);

                    _miscHelper.CreateConfirmationDialog(
                        _dialogs,
                        Context,
                        embed.Build(),
                        dialog =>
                    {
                        _dialogs.Dialogs.Remove(dialog);
                        _ = SignupHelper.CreateSignupChannel(SignupsData, Context.User.Id, Context.Channel);
                        ReplyAsync("No to lecim!");
                    },
                        dialog =>
                    {
                        Context.Channel.DeleteMessageAsync(dialog.DialogID);
                        _dialogs.Dialogs.Remove(dialog);
                        ReplyAsync("Poprawiaj to szybko!");
                    });
                }
                else
                {
                    await ReplyAsync("Nie uzupełniłeś wszystkich informacji ciołku!");
                }
            }
            else
            {
                await ReplyAsync("Co ty chcesz kończyć jak nic nie zacząłeś?");
            }
        }
示例#2
0
        public async Task SaveChanges(bool announce = false)
        {
            if (SignupsData.Missions.Any(x => x.Editing == Mission.EditEnum.Started && x.Owner == Context.User.Id))
            {
                var mission = SignupsData.Missions.Single(x => x.Editing == Mission.EditEnum.Started && x.Owner == Context.User.Id);

                await mission.Access.WaitAsync(-1);

                try
                {
                    if (SignupHelper.CheckMissionComplete(mission))
                    {
                        var guild = _client.GetGuild(_config.AFGuild);

                        var channel = await SignupHelper.UpdateMission(guild, mission, SignupsData);

                        mission.Editing = Mission.EditEnum.NotEditing;

                        if (announce)
                        {
                            await channel.SendMessageAsync("@everyone Misja uległa modyfikacji, proszę zapoznać się z nowymi informacjami i dostosować swój beton.");
                        }

                        await ReplyAsync("Się robi szefie!");
                    }
                    else
                    {
                        await ReplyAsync("Nie uzupełniłeś wszystkich informacji ciołku!");
                    }
                }
                catch (Exception e)
                {
                    await ReplyAsync($"Oj, coś poszło nie tak: {e.Message}");
                }
                finally
                {
                    mission.Access.Release();
                }
            }
        }