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;
}
};
};

View File

@@ -18,8 +18,8 @@ a.on("message", function (m) {
a.reply(m, srv);
});
});
a.on("channelCreated", function (channel) {
console.log(channel);
a.on("channelUpdated", function (o, n) {
a.sendMessage(o, o.name + " v " + n.name);
});
a.login(process.env["discordEmail"], process.env["discordPass"])["catch"](function (e) {

View File

@@ -616,7 +616,9 @@ class InternalClient {
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);
@@ -624,6 +626,41 @@ class InternalClient {
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;
}
}
}

View File

@@ -13,8 +13,8 @@ a.on("message", m => {
a.reply(m, srv);
});
});
a.on("channelCreated", (channel) => {
console.log(channel);
a.on("channelUpdated", (o, n) => {
a.sendMessage(o, o.name + " v " + n.name);
});
a.login(process.env["discordEmail"], process.env["discordPass"]).catch((e)=>console.log(e));