Clash of clans crashfix

This commit is contained in:
Kwoth 2016-10-13 00:32:11 +02:00
parent 02338876bf
commit 93480f9b4d
5 changed files with 14 additions and 3 deletions

View File

@ -25,13 +25,16 @@ namespace NadekoBot.Modules.ClashOfClans
{ {
ClashWars = new ConcurrentDictionary<ulong, List<ClashWar>>( ClashWars = new ConcurrentDictionary<ulong, List<ClashWar>>(
uow.ClashOfClans uow.ClashOfClans
.GetAll() .GetAllWars()
.Select(cw => { .Select(cw => {
if (cw == null || cw.Bases == null)
return null;
cw.Channel = NadekoBot.Client.GetGuild(cw.GuildId) cw.Channel = NadekoBot.Client.GetGuild(cw.GuildId)
?.GetTextChannel(cw.ChannelId); ?.GetTextChannel(cw.ChannelId);
cw.Bases.Capacity = cw.Size; cw.Bases.Capacity = cw.Size;
return cw; return cw;
}) })
.Where(cw => cw?.Channel != null)
.GroupBy(cw => cw.GuildId) .GroupBy(cw => cw.GuildId)
.ToDictionary(g => g.Key, g => g.ToList())); .ToDictionary(g => g.Key, g => g.ToList()));
} }

View File

@ -36,6 +36,7 @@ namespace NadekoBot
public static StatsService Stats { get; private set; } public static StatsService Stats { get; private set; }
public static ConcurrentDictionary<string, string> ModulePrefixes { get; private set; } public static ConcurrentDictionary<string, string> ModulePrefixes { get; private set; }
public static bool Ready { get; private set; }
public async Task RunAsync(string[] args) public async Task RunAsync(string[] args)
{ {
@ -97,6 +98,7 @@ namespace NadekoBot
#if !GLOBAL_NADEKO #if !GLOBAL_NADEKO
await CommandService.Load(new Music(Localizer, CommandService, Client, Google)).ConfigureAwait(false); await CommandService.Load(new Music(Localizer, CommandService, Client, Google)).ConfigureAwait(false);
#endif #endif
Ready = true;
Console.WriteLine(await Stats.Print().ConfigureAwait(false)); Console.WriteLine(await Stats.Print().ConfigureAwait(false));
await Task.Delay(-1); await Task.Delay(-1);

View File

@ -72,7 +72,7 @@ namespace NadekoBot.Services
if (usrMsg == null) if (usrMsg == null)
return; return;
if (usrMsg.Author.IsBot) //no bots if (usrMsg.Author.IsBot || !NadekoBot.Ready) //no bots
return; return;
var guild = (msg.Channel as ITextChannel)?.Guild; var guild = (msg.Channel as ITextChannel)?.Guild;

View File

@ -9,6 +9,6 @@ namespace NadekoBot.Services.Database.Repositories
{ {
public interface IClashOfClansRepository : IRepository<ClashWar> public interface IClashOfClansRepository : IRepository<ClashWar>
{ {
IEnumerable<ClashWar> GetAllWars();
} }
} }

View File

@ -13,5 +13,11 @@ namespace NadekoBot.Services.Database.Repositories.Impl
public ClashOfClansRepository(DbContext context) : base(context) public ClashOfClansRepository(DbContext context) : base(context)
{ {
} }
public IEnumerable<ClashWar> GetAllWars()
{
return _set.Include(cw => cw.Bases)
.ToList();
}
} }
} }