private void ChannelUpdateEvents(JObject message) { DiscordChannelUpdateEventArgs e = new DiscordChannelUpdateEventArgs(); e.RawJson = message; DiscordChannel oldChannel = ServersList.Find(x => x.channels.Find(y => y.id == message["d"]["id"].ToString()) != null).channels.Find(x=>x.id == message["d"]["id"].ToString()); e.OldChannel = oldChannel; DiscordChannel newChannel = oldChannel; newChannel.name = message["d"]["name"].ToString(); newChannel.topic = message["d"]["topic"].ToString(); newChannel.is_private = message["d"]["is_private"].ToObject<bool>(); List<DiscordPermissionOverride> permissionoverrides = new List<DiscordPermissionOverride>(); foreach (var o in message["d"]["permission_overwrites"]) { DiscordPermissionOverride dpo = new DiscordPermissionOverride(o["allow"].ToObject<uint>(), o["deny"].ToObject<uint>()); dpo.type = o["type"].ToObject<DiscordPermissionOverride.OverrideType>(); dpo.id = o["id"].ToString(); permissionoverrides.Add(dpo); } newChannel.PermissionOverrides = permissionoverrides; e.NewChannel = newChannel; DiscordServer serverToRemoveFrom = ServersList.Find(x => x.channels.Find(y => y.id == newChannel.id) != null); newChannel.parent = serverToRemoveFrom; int indexOfServer = ServersList.IndexOf(serverToRemoveFrom); serverToRemoveFrom.channels.Remove(oldChannel); serverToRemoveFrom.channels.Add(newChannel); ServersList.RemoveAt(indexOfServer); ServersList.Insert(indexOfServer, serverToRemoveFrom); if (ChannelUpdated != null) ChannelUpdated(this, e); }
private void ChannelUpdateEvents(JObject message) { DiscordChannelUpdateEventArgs e = new DiscordChannelUpdateEventArgs(); e.RawJson = message; DiscordChannel oldChannel = ServersList.Find(x => x.channels.Find(y => y.id == message["d"]["id"].ToString()) != null).channels.Find(x=>x.id == message["d"]["id"].ToString()); e.OldChannel = oldChannel; DiscordChannel newChannel = oldChannel; newChannel.name = message["d"]["name"].ToString(); newChannel.topic = message["d"]["topic"].ToString(); newChannel.is_private = message["d"]["is_private"].ToObject<bool>(); e.NewChannel = newChannel; DiscordServer serverToRemoveFrom = ServersList.Find(x => x.channels.Find(y => y.id == newChannel.id) != null); int indexOfServer = ServersList.IndexOf(serverToRemoveFrom); serverToRemoveFrom.channels.Remove(oldChannel); serverToRemoveFrom.channels.Add(newChannel); ServersList.RemoveAt(indexOfServer); ServersList.Insert(indexOfServer, serverToRemoveFrom); if (ChannelUpdated != null) ChannelUpdated(this, e); }