Added role creation and new role listening

bot.createRole(server, cb(err, ServerPermissions))

and

bot.on("serverRoleCreate", server, ServerPermissions)
This commit is contained in:
hydrabolt
2015-10-26 12:06:38 +00:00
parent e3d2181914
commit 0f02856a8c
9 changed files with 189 additions and 4 deletions

View File

@@ -24,6 +24,28 @@ class ChannelPermissions{
}
serialise() {
return {
createInstantInvite : this.createInstantInvite,
manageRoles : this.manageRoles,
manageChannels : this.manageChannels,
readMessages : this.readMessages,
sendMessages : this.sendMessage,
sendTTSMessages : this.sendTTSMessages,
manageMessages : this.manageMessages,
embedLinks : this.embedLinks,
attachFiles : this.attachFiles,
readMessageHistory : this.readMessageHistory,
mentionEveryone : this.mentionEveryone,
voiceConnect : this.voiceConnect,
voiceSpeak : this.voiceSpeak,
voiceMuteMembers : this.voiceMuteMembers,
voiceDeafenMembers : this.voiceDeafenMembers,
voiceMoveMember : this.voiceMoveMembers,
voiceUseVoiceActivation : this.voiceUseVoiceActivation
}
}
get createInstantInvite(){return this.getBit(0);}
set createInstantInvite(val){this.setBit(0, val);}

View File

@@ -757,6 +757,36 @@ class Client {
return prom;
}
createRole(server, cb = function(err, perm){}){
var self = this;
return new Promise(function(resolve, reject){
server = self.resolveServerID(server);
request
.post(`${Endpoints.SERVERS}/${server}/roles`)
.set("authorization", self.token)
.end(function(err, res){
if(err){
cb(err);
reject(err);
}else{
var data = self.getServer("id", server).addRole(res.body);
resolve(data);
cb(null, data);
}
});
});
}
//def createws
createws(url) {
if (this.websocket)
@@ -1088,6 +1118,17 @@ class Client {
break;
case "GUILD_ROLE_CREATE":
var server = self.getServer("id", data.guild_id);
var role = data.role;
self.trigger("serverRoleCreate", server, server.addRole(role));
server.removeRole(role.id);
break;
case "GUILD_ROLE_DELETE":
var server = self.getServer("id", data.guild_id);

View File

@@ -14,6 +14,28 @@ class ServerPermissions {
}
serialise() {
return {
createInstantInvite : this.createInstantInvite,
manageRoles : this.manageRoles,
manageChannels : this.manageChannels,
readMessages : this.readMessages,
sendMessages : this.sendMessage,
sendTTSMessages : this.sendTTSMessages,
manageMessages : this.manageMessages,
embedLinks : this.embedLinks,
attachFiles : this.attachFiles,
readMessageHistory : this.readMessageHistory,
mentionEveryone : this.mentionEveryone,
voiceConnect : this.voiceConnect,
voiceSpeak : this.voiceSpeak,
voiceMuteMembers : this.voiceMuteMembers,
voiceDeafenMembers : this.voiceDeafenMembers,
voiceMoveMember : this.voiceMoveMembers,
voiceUseVoiceActivation : this.voiceUseVoiceActivation
}
}
get createInstantInvite(){return this.getBit(0);}
set createInstantInvite(val){this.setBit(0, val);}

View File

@@ -83,6 +83,18 @@ class Server {
return null;
}
addRole(data){
if(this.getRole(data.id)){
return this.getRole(data.id);
}
var perms = new ServerPermissions(data);
this.roles.push(perms);
return perms;
}
updateRole(data){
var oldRole = this.getRole(data.id);