Fixed serverDelete implementation and added lsitener

This commit is contained in:
hydrabolt
2015-11-01 13:39:20 +00:00
parent 1efc2eb505
commit 5adcb5b8eb
2 changed files with 48 additions and 2 deletions

View File

@@ -96,7 +96,7 @@ var InternalClient = (function () {
var chan = _ref;
server.channels.remove(chan);
self.channels.remove(chan);
}
// remove server
self.servers.remove(server);
@@ -513,8 +513,37 @@ var InternalClient = (function () {
var server = self.servers.get("id", data.id);
if (!server) {
self.servers.add(new Server(data, client));
client.emit("serverCreated", server);
}
break;
case PacketType.SERVER_DELETE:
var server = self.servers.get("id", data.id);
if (server) {
for (var _iterator2 = server.channels, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref2;
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref2 = _iterator2[_i2++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref2 = _i2.value;
}
var channel = _ref2;
self.channels.remove(channel);
}
self.servers.remove(server);
client.emit("serverDeleted", server);
} else {
client.emit("warn", "server was deleted but it was not in the cache");
}
break;
}
};
};

View File

@@ -81,7 +81,7 @@ class InternalClient {
}else{
// remove channels of server then the server
for(var chan of server.channels){
server.channels.remove(chan);
self.channels.remove(chan);
}
// remove server
self.servers.remove(server);
@@ -543,8 +543,25 @@ class InternalClient {
var server = self.servers.get("id", data.id);
if(!server){
self.servers.add(new Server(data, client));
client.emit("serverCreated", server);
}
break;
case PacketType.SERVER_DELETE:
var server = self.servers.get("id", data.id);
if(server){
for(var channel of server.channels){
self.channels.remove(channel);
}
self.servers.remove(server);
client.emit("serverDeleted", server);
}else{
client.emit("warn", "server was deleted but it was not in the cache");
}
break;
}
}
}