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; var chan = _ref;
server.channels.remove(chan); self.channels.remove(chan);
} }
// remove server // remove server
self.servers.remove(server); self.servers.remove(server);
@@ -513,8 +513,37 @@ var InternalClient = (function () {
var server = self.servers.get("id", data.id); var server = self.servers.get("id", data.id);
if (!server) { if (!server) {
self.servers.add(new Server(data, client)); self.servers.add(new Server(data, client));
client.emit("serverCreated", server);
} }
break; 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{ }else{
// remove channels of server then the server // remove channels of server then the server
for(var chan of server.channels){ for(var chan of server.channels){
server.channels.remove(chan); self.channels.remove(chan);
} }
// remove server // remove server
self.servers.remove(server); self.servers.remove(server);
@@ -543,8 +543,25 @@ class InternalClient {
var server = self.servers.get("id", data.id); var server = self.servers.get("id", data.id);
if(!server){ if(!server){
self.servers.add(new Server(data, client)); self.servers.add(new Server(data, client));
client.emit("serverCreated", server);
} }
break; 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;
} }
} }
} }