|
|
@@ -28,14 +28,21 @@ namespace Discord.Collections |
|
|
|
protected override void OnRemoved(Channel item) |
|
|
|
{ |
|
|
|
if (!item.IsPrivate) |
|
|
|
item.Server.RemoveChannel(item.Id); |
|
|
|
{ |
|
|
|
var server = item.Server; |
|
|
|
if (server != null) |
|
|
|
item.Server.RemoveChannel(item.Id); |
|
|
|
} |
|
|
|
if (item.RecipientId != null) |
|
|
|
{ |
|
|
|
var user = item.Recipient; |
|
|
|
if (user.PrivateChannelId != item.Id) |
|
|
|
throw new Exception("User has a different private channel."); |
|
|
|
user.PrivateChannelId = null; |
|
|
|
user.RemoveRef(); |
|
|
|
if (user != null) |
|
|
|
{ |
|
|
|
if (user.PrivateChannelId != item.Id) |
|
|
|
throw new Exception("User has a different private channel."); |
|
|
|
user.PrivateChannelId = null; |
|
|
|
user.RemoveRef(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|