Fix using deleteChannel on private channels

This commit is contained in:
abalabahaha
2016-07-28 04:36:04 +09:00
parent babf550459
commit dc939c48ee
3 changed files with 20 additions and 12 deletions

View File

@@ -1035,8 +1035,12 @@ var InternalClient = (function () {
return this.resolver.resolveChannel(_channel).then(function (channel) { return this.resolver.resolveChannel(_channel).then(function (channel) {
return _this24.apiRequest("del", _Constants.Endpoints.CHANNEL(channel.id), true).then(function () { return _this24.apiRequest("del", _Constants.Endpoints.CHANNEL(channel.id), true).then(function () {
channel.server.channels.remove(channel); if (channel.server) {
_this24.channels.remove(channel); channel.server.channels.remove(channel);
_this24.channels.remove(channel);
} else {
_this24.private_channels.remove(channel);
}
}); });
}); });
}; };

View File

@@ -227,7 +227,7 @@ var Server = (function (_Equality) {
channel.members.add(user); channel.members.add(user);
user.voiceChannel = channel; user.voiceChannel = channel;
if (oldChannel.id) { if (oldChannel.id && channel.id !== oldChannel.id) {
this.client.emit("voiceLeave", oldChannel, user); this.client.emit("voiceLeave", oldChannel, user);
this.client.emit("voiceSwitch", oldChannel, channel, user); this.client.emit("voiceSwitch", oldChannel, channel, user);
} }

View File

@@ -908,8 +908,12 @@ export default class InternalClient {
.then(channel => .then(channel =>
this.apiRequest("del", Endpoints.CHANNEL(channel.id), true) this.apiRequest("del", Endpoints.CHANNEL(channel.id), true)
.then(() => { .then(() => {
channel.server.channels.remove(channel); if(channel.server) {
this.channels.remove(channel); channel.server.channels.remove(channel);
this.channels.remove(channel);
} else {
this.private_channels.remove(channel);
}
}) })
); );
} }
@@ -1838,13 +1842,13 @@ export default class InternalClient {
var server = self.servers.get("id", data.guild_id); var server = self.servers.get("id", data.guild_id);
if (server) { if (server) {
var chan = null; var chan = null;
if (data.type === "text") { if (data.type === "text") {
chan = self.channels.add(new TextChannel(data, client, server)); chan = self.channels.add(new TextChannel(data, client, server));
} else { } else {
chan = self.channels.add(new VoiceChannel(data, client, server)); chan = self.channels.add(new VoiceChannel(data, client, server));
} }
client.emit("channelCreated", server.channels.add(chan)); client.emit("channelCreated", server.channels.add(chan));
} else if (data.is_private) { } else if (data.is_private) {
client.emit("channelCreated", self.private_channels.add(new PMChannel(data, client))); client.emit("channelCreated", self.private_channels.add(new PMChannel(data, client)));
} else { } else {