Added CHANNEL_UPDATE listener

This commit is contained in:
hydrabolt
2015-11-01 14:57:48 +00:00
parent 74bd0d5dad
commit 5b7a3dd3a1
4 changed files with 76 additions and 6 deletions

View File

@@ -597,13 +597,46 @@ var InternalClient = (function () {
var channel = self.channels.get("id", data.id);
if (channel) {
channel.server.channels.remove(channel);
if (channel.server) // accounts for PMs
channel.server.channels.remove(channel);
self.channels.remove(channel);
client.emit("channelDeleted", channel);
} else {
client.emit("warn", "channel deleted but already out of cache?");
}
break;
case PacketType.CHANNEL_UPDATE:
var channel = self.channels.get("id", data.id) || self.private_channels.get("id", data.id);
if (channel) {
if (channel instanceof PMChannel) {
//PM CHANNEL
client.emit("channelUpdated", self.private_channels.update(channel, new PMChannel(data, client)));
} else {
if (channel.server) {
if (channel.type === "text") {
//TEXT CHANNEL
var chan = new TextChannel(data, client, channel.server);
chan.messages = channel.messages;
channel.server.channels.update(channel, chan);
self.channels.update(channel, chan);
client.emit("channelUpdated", channel, chan);
} else {
//VOICE CHANNEL
var chan = new VoiceChannel(data, client, channel.server);
channel.server.channels.update(channel, chan);
self.channels.update(channel, chan);
client.emit("channelUpdated", channel, chan);
}
} else {
client.emit("warn", "channel updated but server non-existant");
}
}
} else {
client.emit("warn", "channel updated but not in cache");
}
break;
}
};
};