mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-17 12:03:31 +01:00
Added role creation and new role listening
bot.createRole(server, cb(err, ServerPermissions))
and
bot.on("serverRoleCreate", server, ServerPermissions)
This commit is contained in:
@@ -30,6 +30,28 @@ var ChannelPermissions = (function () {
|
|||||||
this.allow = data.allow;
|
this.allow = data.allow;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ChannelPermissions.prototype.serialise = function 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
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
ChannelPermissions.prototype.getBit = function getBit(x) {
|
ChannelPermissions.prototype.getBit = function getBit(x) {
|
||||||
return (this.packed >>> x & 1) === 1;
|
return (this.packed >>> x & 1) === 1;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -712,6 +712,30 @@ var Client = (function () {
|
|||||||
return prom;
|
return prom;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Client.prototype.createRole = function createRole(server) {
|
||||||
|
var cb = arguments.length <= 1 || arguments[1] === undefined ? function (err, perm) {} : arguments[1];
|
||||||
|
|
||||||
|
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
|
//def createws
|
||||||
|
|
||||||
Client.prototype.createws = function createws(url) {
|
Client.prototype.createws = function createws(url) {
|
||||||
@@ -1089,6 +1113,17 @@ var Client = (function () {
|
|||||||
|
|
||||||
break;
|
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":
|
case "GUILD_ROLE_DELETE":
|
||||||
|
|
||||||
var server = self.getServer("id", data.guild_id);
|
var server = self.getServer("id", data.guild_id);
|
||||||
|
|||||||
@@ -19,6 +19,28 @@ var ServerPermissions = (function () {
|
|||||||
this.id = data.id;
|
this.id = data.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ServerPermissions.prototype.serialise = function 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
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
ServerPermissions.prototype.getBit = function getBit(x) {
|
ServerPermissions.prototype.getBit = function getBit(x) {
|
||||||
return (this.packed >>> x & 1) === 1;
|
return (this.packed >>> x & 1) === 1;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -94,6 +94,17 @@ var Server = (function () {
|
|||||||
return null;
|
return null;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Server.prototype.addRole = function addRole(data) {
|
||||||
|
|
||||||
|
if (this.getRole(data.id)) {
|
||||||
|
return this.getRole(data.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
var perms = new ServerPermissions(data);
|
||||||
|
this.roles.push(perms);
|
||||||
|
return perms;
|
||||||
|
};
|
||||||
|
|
||||||
Server.prototype.updateRole = function updateRole(data) {
|
Server.prototype.updateRole = function updateRole(data) {
|
||||||
|
|
||||||
var oldRole = this.getRole(data.id);
|
var oldRole = this.getRole(data.id);
|
||||||
|
|||||||
@@ -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);}
|
get createInstantInvite(){return this.getBit(0);}
|
||||||
set createInstantInvite(val){this.setBit(0, val);}
|
set createInstantInvite(val){this.setBit(0, val);}
|
||||||
|
|
||||||
|
|||||||
@@ -757,6 +757,36 @@ class Client {
|
|||||||
return prom;
|
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
|
//def createws
|
||||||
createws(url) {
|
createws(url) {
|
||||||
if (this.websocket)
|
if (this.websocket)
|
||||||
@@ -1088,6 +1118,17 @@ class Client {
|
|||||||
|
|
||||||
break;
|
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":
|
case "GUILD_ROLE_DELETE":
|
||||||
|
|
||||||
var server = self.getServer("id", data.guild_id);
|
var server = self.getServer("id", data.guild_id);
|
||||||
|
|||||||
@@ -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);}
|
get createInstantInvite(){return this.getBit(0);}
|
||||||
set createInstantInvite(val){this.setBit(0, val);}
|
set createInstantInvite(val){this.setBit(0, val);}
|
||||||
|
|
||||||
|
|||||||
@@ -83,6 +83,18 @@ class Server {
|
|||||||
return null;
|
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){
|
updateRole(data){
|
||||||
|
|
||||||
var oldRole = this.getRole(data.id);
|
var oldRole = this.getRole(data.id);
|
||||||
|
|||||||
@@ -30,10 +30,8 @@ mybot.on("message", function (message) {
|
|||||||
var perms = JSON.stringify(message.channel.permissionsOf(user).serialise(), null, 4);
|
var perms = JSON.stringify(message.channel.permissionsOf(user).serialise(), null, 4);
|
||||||
perms = JSON.parse(perms);
|
perms = JSON.parse(perms);
|
||||||
|
|
||||||
request.get(message.sender.avatarURL, function(err, resp, body){
|
this.createRole(message.channel.server).catch(error).then((data) => {
|
||||||
mybot.setAvatar( new Buffer(body) ).catch(error).then(() => {
|
mybot.reply(message, JSON.stringify(data.serialise(), null, 4));
|
||||||
mybot.reply(message, "I have your avatar now!");
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user