mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-10 16:43:31 +01:00
Added leave server and other stuff
This commit is contained in:
@@ -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;
|
||||
@@ -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
|
||||
login(email, password) {
|
||||
var self = this;
|
||||
|
||||
@@ -15,6 +15,21 @@ class Resolver {
|
||||
constructor(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) {
|
||||
if (typeof resource === "string" || resource instanceof String) {
|
||||
|
||||
@@ -41,10 +41,10 @@ class Server extends Equality {
|
||||
|
||||
data.channels.forEach( (dataChannel) => {
|
||||
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);
|
||||
}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);
|
||||
}
|
||||
} );
|
||||
|
||||
@@ -5,11 +5,12 @@ var Cache = require("../Util/Cache.js");
|
||||
var PermissionOverwrite = require("./PermissionOverwrite.js");
|
||||
|
||||
class ServerChannel extends Channel{
|
||||
constructor(data, client){
|
||||
constructor(data, client, server){
|
||||
super(data, client);
|
||||
this.name = data.name;
|
||||
this.type = data.type;
|
||||
this.permissionOverwrites = new Cache();
|
||||
this.server = server;
|
||||
data.permission_overwrites.forEach((permission) => {
|
||||
this.permissionOverwrites.add( new PermissionOverwrite(permission) );
|
||||
});
|
||||
|
||||
@@ -4,8 +4,8 @@ var ServerChannel = require("./ServerChannel.js");
|
||||
var Cache = require("../Util/Cache.js");
|
||||
|
||||
class TextChannel extends ServerChannel{
|
||||
constructor(data, client){
|
||||
super(data, client);
|
||||
constructor(data, client, server){
|
||||
super(data, client, server);
|
||||
|
||||
this.name = data.name;
|
||||
this.topic = data.topic;
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
var ServerChannel = require("./ServerChannel.js");
|
||||
|
||||
class VoiceChannel extends ServerChannel{
|
||||
constructor(data, client){
|
||||
super(data, client);
|
||||
constructor(data, client, server){
|
||||
super(data, client, server);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user