public void LoadEvents() { Client.UserJoined += async(u) => { Task.Run(() => UserJoin?.Invoke(new RuntimeUser(u))); }; Client.UserLeft += async(u) => { Task.Run(() => UserLeft?.Invoke(new RuntimeUser(u))); }; Client.UserUpdated += async(u, unew) => { RuntimeUser userOld = new RuntimeUser(u); RuntimeUser userNew = new RuntimeUser(unew); Task.Run(() => UserUpdated?.Invoke(userOld, userNew)); }; Client.MessageReceived += async(m) => { RuntimeMessage newMessage = new RuntimeMessage(m); if (MessageReceived != null) { await MessageReceived.Invoke(newMessage); } }; Client.JoinedGuild += async(g) => { Task.Run(async() => { RuntimeGuild guild = new RuntimeGuild(g); await GuildJoin?.Invoke(guild); }); }; Client.LeftGuild += async(g) => { RuntimeGuild guild = new RuntimeGuild(g); await GuildLeave?.Invoke(guild); }; foreach (var shard in Client.Shards) { shard.Disconnected += async(ex) => { await OnShardDisconnect?.Invoke(ex, shard.ShardId); }; shard.Connected += async() => { if (OnShardConnect != null) { await OnShardConnect.Invoke(shard.ShardId); } }; } }
private async Task Module_LeftGuild(SocketGuild arg) { RuntimeGuild r = new RuntimeGuild(arg); if (await IsEnabled(r.Id)) { await LeftGuild(r); } }
private async Task Module_JoinedGuild(SocketGuild arg) { RuntimeGuild r = new RuntimeGuild(arg); if (await IsEnabled(r.Id)) { try { await JoinedGuild(r); } catch (Exception e) { } } }
private async Task Client_LeftGuild(IGuild arg) { RuntimeGuild g = new RuntimeGuild(arg); Task.Run(() => Events.OnGuildLeave(g)); }
// Events private async Task Client_JoinedGuild(IGuild arg) { RuntimeGuild g = new RuntimeGuild(arg); Task.Run(() => Events.OnGuildJoin(g)); }