mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-16 03:23:29 +01:00
Added leave server and other stuff
This commit is contained in:
@@ -251,6 +251,20 @@ var Client = (function (_EventEmitter) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Client.prototype.leaveServer = function leaveServer(server) {
|
||||||
|
var callback = arguments.length <= 1 || arguments[1] === undefined ? function (err) {} : arguments[1];
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
|
self.internal.leaveServer(server).then(function () {
|
||||||
|
callback();resolve();
|
||||||
|
})["catch"](function (e) {
|
||||||
|
callback(e);reject(e);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
return Client;
|
return Client;
|
||||||
})(EventEmitter);
|
})(EventEmitter);
|
||||||
|
|
||||||
|
|||||||
@@ -69,6 +69,46 @@ var InternalClient = (function () {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//def leaveServer
|
||||||
|
|
||||||
|
InternalClient.prototype.leaveServer = function leaveServer(srv) {
|
||||||
|
var self = this;
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
var server = self.resolver.resolveServer(srv);
|
||||||
|
if (server) {
|
||||||
|
|
||||||
|
request.del(Endpoints.SERVER(server.id)).set("authorization", self.token).end(function (err, res) {
|
||||||
|
if (err) {
|
||||||
|
reject(new Error(err.response.text));
|
||||||
|
} else {
|
||||||
|
// remove channels of server then the server
|
||||||
|
for (var _iterator = server.channels, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
|
||||||
|
var _ref;
|
||||||
|
|
||||||
|
if (_isArray) {
|
||||||
|
if (_i >= _iterator.length) break;
|
||||||
|
_ref = _iterator[_i++];
|
||||||
|
} else {
|
||||||
|
_i = _iterator.next();
|
||||||
|
if (_i.done) break;
|
||||||
|
_ref = _i.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
var chan = _ref;
|
||||||
|
|
||||||
|
server.channels.remove(chan);
|
||||||
|
}
|
||||||
|
// remove server
|
||||||
|
self.servers.remove(server);
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
reject(new Error("server did not resolve"));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
// def login
|
// def login
|
||||||
|
|
||||||
InternalClient.prototype.login = function login(email, password) {
|
InternalClient.prototype.login = function login(email, password) {
|
||||||
|
|||||||
@@ -20,6 +20,21 @@ var Resolver = (function () {
|
|||||||
this.internal = internal;
|
this.internal = internal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Resolver.prototype.resolveServer = function resolveServer(resource) {
|
||||||
|
if (resource instanceof Server) {
|
||||||
|
return resource;
|
||||||
|
} else if (resource instanceof ServerChannel) {
|
||||||
|
return resource.server;
|
||||||
|
} else if (resource instanceof String || typeof resource === "string") {
|
||||||
|
return this.internal.servers.get("id", resource);
|
||||||
|
} else if (resource instanceof Message) {
|
||||||
|
if (resource.channel instanceof TextChannel) {
|
||||||
|
return resource.server;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
};
|
||||||
|
|
||||||
Resolver.prototype.resolveFile = function resolveFile(resource) {
|
Resolver.prototype.resolveFile = function resolveFile(resource) {
|
||||||
if (typeof resource === "string" || resource instanceof String) {
|
if (typeof resource === "string" || resource instanceof String) {
|
||||||
return fs.createReadStream(resource);
|
return fs.createReadStream(resource);
|
||||||
|
|||||||
@@ -52,10 +52,10 @@ var Server = (function (_Equality) {
|
|||||||
|
|
||||||
data.channels.forEach(function (dataChannel) {
|
data.channels.forEach(function (dataChannel) {
|
||||||
if (dataChannel.type === "text") {
|
if (dataChannel.type === "text") {
|
||||||
var channel = client.internal.channels.add(new TextChannel(dataChannel, client));
|
var channel = client.internal.channels.add(new TextChannel(dataChannel, client, _this));
|
||||||
_this.channels.add(channel);
|
_this.channels.add(channel);
|
||||||
} else {
|
} else {
|
||||||
var channel = client.internal.channels.add(new VoiceChannel(dataChannel, client));
|
var channel = client.internal.channels.add(new VoiceChannel(dataChannel, client, _this));
|
||||||
_this.channels.add(channel);
|
_this.channels.add(channel);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var PermissionOverwrite = require("./PermissionOverwrite.js");
|
|||||||
var ServerChannel = (function (_Channel) {
|
var ServerChannel = (function (_Channel) {
|
||||||
_inherits(ServerChannel, _Channel);
|
_inherits(ServerChannel, _Channel);
|
||||||
|
|
||||||
function ServerChannel(data, client) {
|
function ServerChannel(data, client, server) {
|
||||||
var _this = this;
|
var _this = this;
|
||||||
|
|
||||||
_classCallCheck(this, ServerChannel);
|
_classCallCheck(this, ServerChannel);
|
||||||
@@ -20,6 +20,7 @@ var ServerChannel = (function (_Channel) {
|
|||||||
this.name = data.name;
|
this.name = data.name;
|
||||||
this.type = data.type;
|
this.type = data.type;
|
||||||
this.permissionOverwrites = new Cache();
|
this.permissionOverwrites = new Cache();
|
||||||
|
this.server = server;
|
||||||
data.permission_overwrites.forEach(function (permission) {
|
data.permission_overwrites.forEach(function (permission) {
|
||||||
_this.permissionOverwrites.add(new PermissionOverwrite(permission));
|
_this.permissionOverwrites.add(new PermissionOverwrite(permission));
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -12,10 +12,10 @@ var Cache = require("../Util/Cache.js");
|
|||||||
var TextChannel = (function (_ServerChannel) {
|
var TextChannel = (function (_ServerChannel) {
|
||||||
_inherits(TextChannel, _ServerChannel);
|
_inherits(TextChannel, _ServerChannel);
|
||||||
|
|
||||||
function TextChannel(data, client) {
|
function TextChannel(data, client, server) {
|
||||||
_classCallCheck(this, TextChannel);
|
_classCallCheck(this, TextChannel);
|
||||||
|
|
||||||
_ServerChannel.call(this, data, client);
|
_ServerChannel.call(this, data, client, server);
|
||||||
|
|
||||||
this.name = data.name;
|
this.name = data.name;
|
||||||
this.topic = data.topic;
|
this.topic = data.topic;
|
||||||
|
|||||||
@@ -9,10 +9,10 @@ var ServerChannel = require("./ServerChannel.js");
|
|||||||
var VoiceChannel = (function (_ServerChannel) {
|
var VoiceChannel = (function (_ServerChannel) {
|
||||||
_inherits(VoiceChannel, _ServerChannel);
|
_inherits(VoiceChannel, _ServerChannel);
|
||||||
|
|
||||||
function VoiceChannel(data, client) {
|
function VoiceChannel(data, client, server) {
|
||||||
_classCallCheck(this, VoiceChannel);
|
_classCallCheck(this, VoiceChannel);
|
||||||
|
|
||||||
_ServerChannel.call(this, data, client);
|
_ServerChannel.call(this, data, client, server);
|
||||||
}
|
}
|
||||||
|
|
||||||
return VoiceChannel;
|
return VoiceChannel;
|
||||||
|
|||||||
@@ -226,6 +226,21 @@ class Client extends EventEmitter {
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
leaveServer(server, callback=function(err){}){
|
||||||
|
var self = this;
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
|
||||||
|
self.internal.leaveServer(server)
|
||||||
|
.then(() => {
|
||||||
|
callback(); resolve();
|
||||||
|
})
|
||||||
|
.catch(e => {
|
||||||
|
callback(e); reject(e);
|
||||||
|
})
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = Client;
|
module.exports = Client;
|
||||||
@@ -65,6 +65,36 @@ class InternalClient {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//def leaveServer
|
||||||
|
leaveServer(srv) {
|
||||||
|
var self = this;
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
var server = self.resolver.resolveServer(srv);
|
||||||
|
if(server){
|
||||||
|
|
||||||
|
request
|
||||||
|
.del(Endpoints.SERVER(server.id))
|
||||||
|
.set("authorization", self.token)
|
||||||
|
.end((err, res) => {
|
||||||
|
if(err){
|
||||||
|
reject(new Error(err.response.text));
|
||||||
|
}else{
|
||||||
|
// remove channels of server then the server
|
||||||
|
for(var chan of server.channels){
|
||||||
|
server.channels.remove(chan);
|
||||||
|
}
|
||||||
|
// remove server
|
||||||
|
self.servers.remove(server);
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}else{
|
||||||
|
reject(new Error("server did not resolve"));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// def login
|
// def login
|
||||||
login(email, password) {
|
login(email, password) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|||||||
@@ -15,6 +15,21 @@ class Resolver {
|
|||||||
constructor(internal) {
|
constructor(internal) {
|
||||||
this.internal = internal;
|
this.internal = internal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resolveServer(resource){
|
||||||
|
if(resource instanceof Server){
|
||||||
|
return resource;
|
||||||
|
}else if(resource instanceof ServerChannel){
|
||||||
|
return resource.server;
|
||||||
|
}else if(resource instanceof String || typeof resource === "string"){
|
||||||
|
return this.internal.servers.get("id", resource);
|
||||||
|
}else if(resource instanceof Message){
|
||||||
|
if(resource.channel instanceof TextChannel){
|
||||||
|
return resource.server;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
resolveFile(resource) {
|
resolveFile(resource) {
|
||||||
if (typeof resource === "string" || resource instanceof String) {
|
if (typeof resource === "string" || resource instanceof String) {
|
||||||
|
|||||||
@@ -41,10 +41,10 @@ class Server extends Equality {
|
|||||||
|
|
||||||
data.channels.forEach( (dataChannel) => {
|
data.channels.forEach( (dataChannel) => {
|
||||||
if(dataChannel.type === "text"){
|
if(dataChannel.type === "text"){
|
||||||
var channel = client.internal.channels.add(new TextChannel(dataChannel, client));
|
var channel = client.internal.channels.add(new TextChannel(dataChannel, client, this));
|
||||||
this.channels.add(channel);
|
this.channels.add(channel);
|
||||||
}else{
|
}else{
|
||||||
var channel = client.internal.channels.add(new VoiceChannel(dataChannel, client));
|
var channel = client.internal.channels.add(new VoiceChannel(dataChannel, client, this));
|
||||||
this.channels.add(channel);
|
this.channels.add(channel);
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|||||||
@@ -5,11 +5,12 @@ var Cache = require("../Util/Cache.js");
|
|||||||
var PermissionOverwrite = require("./PermissionOverwrite.js");
|
var PermissionOverwrite = require("./PermissionOverwrite.js");
|
||||||
|
|
||||||
class ServerChannel extends Channel{
|
class ServerChannel extends Channel{
|
||||||
constructor(data, client){
|
constructor(data, client, server){
|
||||||
super(data, client);
|
super(data, client);
|
||||||
this.name = data.name;
|
this.name = data.name;
|
||||||
this.type = data.type;
|
this.type = data.type;
|
||||||
this.permissionOverwrites = new Cache();
|
this.permissionOverwrites = new Cache();
|
||||||
|
this.server = server;
|
||||||
data.permission_overwrites.forEach((permission) => {
|
data.permission_overwrites.forEach((permission) => {
|
||||||
this.permissionOverwrites.add( new PermissionOverwrite(permission) );
|
this.permissionOverwrites.add( new PermissionOverwrite(permission) );
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ var ServerChannel = require("./ServerChannel.js");
|
|||||||
var Cache = require("../Util/Cache.js");
|
var Cache = require("../Util/Cache.js");
|
||||||
|
|
||||||
class TextChannel extends ServerChannel{
|
class TextChannel extends ServerChannel{
|
||||||
constructor(data, client){
|
constructor(data, client, server){
|
||||||
super(data, client);
|
super(data, client, server);
|
||||||
|
|
||||||
this.name = data.name;
|
this.name = data.name;
|
||||||
this.topic = data.topic;
|
this.topic = data.topic;
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
var ServerChannel = require("./ServerChannel.js");
|
var ServerChannel = require("./ServerChannel.js");
|
||||||
|
|
||||||
class VoiceChannel extends ServerChannel{
|
class VoiceChannel extends ServerChannel{
|
||||||
constructor(data, client){
|
constructor(data, client, server){
|
||||||
super(data, client);
|
super(data, client, server);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user