public async Task RaidCreate( [Summary("Název bosse.")] string bossName, [Summary("Místo.")] string location, [Summary("Čas (" + TimeService.TimeFormat + ").")] DateTime time) { time = timeService.EnsureUtc(time); if (time < DateTime.UtcNow) { await ReplyAsync($"Vážně chceš vytvořit raid v minulosti?"); return; } if (!timeService.IsToday(time)) { await ReplyAsync($"Raid není dnes."); return; } var raidChannelBinding = raidChannelService.TryGetRaidChannelBinding(Context.Guild.Id, Context.Channel.Id); var raidInfo = new RaidInfoDto(RaidType.Normal) { BossName = bossName, Location = location, DateTime = time, }; var roles = teamService.GuildTeamRoles[Context.Guild.Id].TeamRoles.Values; bool shouldMention = !(configuration.GetGuildOptions(Context.Guild.Id)?.IgnoreMention ?? false); string mention = string.Empty; if (shouldMention) { mention = raidChannelBinding.Mention == null?string.Join(' ', roles.Select(t => t.Mention)) : raidChannelBinding.Mention.Mention; } var message = await raidChannelBinding.Channel.SendMessageAsync($"{raidService.ToSimpleString(raidInfo)} {mention}", embed : raidService.ToEmbed(raidInfo)); logger.LogInformation($"New raid has been created '{raidService.ToSimpleString(raidInfo)}'"); raidInfo.Message = message; await Context.Message.AddReactionAsync(Emojis.Check); await raidService.SetDefaultReactions(message); raidStorageService.AddRaid(Context.Guild.Id, raidChannelBinding.Channel.Id, message.Id, raidInfo); await message.ModifyAsync(t => { t.Content = string.Empty; t.Embed = raidService.ToEmbed(raidInfo); }, retryOptions); }