mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-17 12:03:31 +01:00
Fixed colours
This commit is contained in:
109
examples/permissions/colortest.js
Normal file
109
examples/permissions/colortest.js
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
/*
|
||||||
|
this bot will demonstrate the different ways you
|
||||||
|
can create colors in Discord.
|
||||||
|
*/
|
||||||
|
|
||||||
|
var Discord = require("../../");
|
||||||
|
|
||||||
|
// Get the email and password
|
||||||
|
var AuthDetails = require("../auth.json");
|
||||||
|
|
||||||
|
var bot = new Discord.Client();
|
||||||
|
|
||||||
|
bot.on("ready", function () {
|
||||||
|
console.log("Ready to begin! Serving in " + bot.channels.length + " channels");
|
||||||
|
});
|
||||||
|
|
||||||
|
bot.on("disconnected", function () {
|
||||||
|
|
||||||
|
console.log("Disconnected!");
|
||||||
|
process.exit(1); //exit node.js with an error
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
bot.on("message", function (msg) {
|
||||||
|
if (msg.content === "create role") {
|
||||||
|
// create the role and add the user to it
|
||||||
|
|
||||||
|
bot.createRoleIfNotExists(msg.channel.server, {
|
||||||
|
name : "Custom Colors",
|
||||||
|
hoist : true, // so it is visible in the members list
|
||||||
|
}).then(function(permission){
|
||||||
|
|
||||||
|
bot.addMemberToRole(msg.sender, permission).then(function(){
|
||||||
|
|
||||||
|
bot.reply(msg, "added you to the role!");
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (msg.content.indexOf("preset color") === 0) {
|
||||||
|
|
||||||
|
// set the role to a preset color
|
||||||
|
var colorName = msg.content.split(" ")[2];
|
||||||
|
var role = msg.channel.server.getRole("name", "Custom Colors");
|
||||||
|
|
||||||
|
if(Discord.Color[colorName]){ // if the color is a preset
|
||||||
|
|
||||||
|
bot.updateRole(role, {
|
||||||
|
color : Discord.Color[colorName]
|
||||||
|
}).then(function(){
|
||||||
|
bot.reply(msg, "done!");
|
||||||
|
});
|
||||||
|
|
||||||
|
}else{
|
||||||
|
bot.reply(msg, "that color isn't a preset color!");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (msg.content.indexOf("custom color") === 0) {
|
||||||
|
|
||||||
|
var colorName = msg.content.split(" ")[2];
|
||||||
|
var role = msg.channel.server.getRole("name", "Custom Colors");
|
||||||
|
|
||||||
|
bot.updateRole(role, {
|
||||||
|
color : colorName
|
||||||
|
}).then(function(){
|
||||||
|
bot.reply(msg, "done!");
|
||||||
|
}).catch(function(e){
|
||||||
|
bot.reply(msg, "an error occurred. Was that a valid hex/dec color?");
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (msg.content === "remove me") {
|
||||||
|
// remove the user from the good people list, if it exists
|
||||||
|
var found = false;
|
||||||
|
|
||||||
|
for (var role of msg.channel.server.roles) {
|
||||||
|
if (role.name === "good people") {
|
||||||
|
found = role;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (found) {
|
||||||
|
// if the role exists
|
||||||
|
|
||||||
|
if (msg.sender.hasRole(role)) {
|
||||||
|
// remove the member from the role
|
||||||
|
bot.removeMemberFromRole(msg.sender, role);
|
||||||
|
bot.reply(msg, "removed!")
|
||||||
|
} else {
|
||||||
|
bot.reply(msg, "you're not in the role!");
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// role doesn't exist
|
||||||
|
bot.reply(msg, "the role doesn't even exist!");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
bot.login(AuthDetails.email, AuthDetails.password);
|
||||||
@@ -20,7 +20,7 @@ var ChannelPermissions = (function () {
|
|||||||
if (this.type === "member") {
|
if (this.type === "member") {
|
||||||
this.packed = channel.server.getMember("id", data.id).evalPerms.packed;
|
this.packed = channel.server.getMember("id", data.id).evalPerms.packed;
|
||||||
} else {
|
} else {
|
||||||
this.packed = channel.server.getRole(data.id).packed;
|
this.packed = channel.server.getRole("id", data.id).packed;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.packed = this.packed & ~data.deny;
|
this.packed = this.packed & ~data.deny;
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ var Invite = require("./invite.js");
|
|||||||
var PMChannel = require("./PMChannel.js");
|
var PMChannel = require("./PMChannel.js");
|
||||||
var ServerPermissions = require("./ServerPermissions.js");
|
var ServerPermissions = require("./ServerPermissions.js");
|
||||||
var gameMap = require("../ref/gameMap.json");
|
var gameMap = require("../ref/gameMap.json");
|
||||||
|
var Color = require("../ref/colours.js");
|
||||||
var zlib;
|
var zlib;
|
||||||
|
|
||||||
var EventEmitter = require('events');
|
var EventEmitter = require('events');
|
||||||
@@ -824,16 +825,11 @@ var Client = (function (_EventEmitter) {
|
|||||||
|
|
||||||
var server = role.server.id;
|
var server = role.server.id;
|
||||||
|
|
||||||
var modRole = role;
|
|
||||||
for (var key in data) {
|
|
||||||
modRole[key] = data[key];
|
|
||||||
}
|
|
||||||
|
|
||||||
request.patch(Endpoints.SERVERS + "/" + server + "/roles/" + role.id).set("authorization", self.token).send({
|
request.patch(Endpoints.SERVERS + "/" + server + "/roles/" + role.id).set("authorization", self.token).send({
|
||||||
color: modRole.color,
|
color: Color.toDec(data.color) || role.color,
|
||||||
hoist: modRole.hoist,
|
hoist: data.hoist || role.hoist,
|
||||||
name: modRole.name,
|
name: data.name || role.name,
|
||||||
permissions: modRole.packed
|
permissions: data.packed || role.packed
|
||||||
}).end(function (err, res) {
|
}).end(function (err, res) {
|
||||||
if (err) {
|
if (err) {
|
||||||
cb(err);
|
cb(err);
|
||||||
@@ -1479,7 +1475,7 @@ var Client = (function (_EventEmitter) {
|
|||||||
case "GUILD_ROLE_DELETE":
|
case "GUILD_ROLE_DELETE":
|
||||||
|
|
||||||
var server = self.getServer("id", data.guild_id);
|
var server = self.getServer("id", data.guild_id);
|
||||||
var role = server.getRole(data.role_id);
|
var role = server.getRole("id", data.role_id);
|
||||||
|
|
||||||
self.emit("serverRoleDelete", server, role);
|
self.emit("serverRoleDelete", server, role);
|
||||||
|
|
||||||
@@ -1490,7 +1486,7 @@ var Client = (function (_EventEmitter) {
|
|||||||
case "GUILD_ROLE_UPDATE":
|
case "GUILD_ROLE_UPDATE":
|
||||||
|
|
||||||
var server = self.getServer("id", data.guild_id);
|
var server = self.getServer("id", data.guild_id);
|
||||||
var role = server.getRole(data.role.id);
|
var role = server.getRole("id", data.role.id);
|
||||||
var newRole = server.updateRole(data.role);
|
var newRole = server.updateRole(data.role);
|
||||||
|
|
||||||
self.emit("serverRoleUpdate", server, role, newRole);
|
self.emit("serverRoleUpdate", server, role, newRole);
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ var Member = (function (_User) {
|
|||||||
key: "roles",
|
key: "roles",
|
||||||
get: function get() {
|
get: function get() {
|
||||||
|
|
||||||
var ufRoles = [this.server.getRole(this.server.id)];
|
var ufRoles = [this.server.getRole("id", this.server.id)];
|
||||||
|
|
||||||
for (var _iterator5 = this.rawRoles, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
|
for (var _iterator5 = this.rawRoles, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
|
||||||
var _ref5;
|
var _ref5;
|
||||||
@@ -146,7 +146,7 @@ var Member = (function (_User) {
|
|||||||
|
|
||||||
var rawRole = _ref5;
|
var rawRole = _ref5;
|
||||||
|
|
||||||
ufRoles.push(this.server.getRole(rawRole));
|
ufRoles.push(this.server.getRole("id", rawRole));
|
||||||
}
|
}
|
||||||
|
|
||||||
return ufRoles;
|
return ufRoles;
|
||||||
|
|||||||
@@ -3,12 +3,12 @@
|
|||||||
var request = require("superagent");
|
var request = require("superagent");
|
||||||
var Endpoints = require("./Endpoints.js");
|
var Endpoints = require("./Endpoints.js");
|
||||||
var Client = require("./Client.js");
|
var Client = require("./Client.js");
|
||||||
var Colors = require("../ref/colours.js");
|
var Color = require("../ref/colours.js");
|
||||||
|
|
||||||
var Discord = {
|
var Discord = {
|
||||||
Endpoints: Endpoints,
|
Endpoints: Endpoints,
|
||||||
Client: Client,
|
Client: Client,
|
||||||
Colors: Colors,
|
Color: Color,
|
||||||
User: require("./user.js"),
|
User: require("./user.js"),
|
||||||
Server: require("./server.js"),
|
Server: require("./server.js"),
|
||||||
Channel: require("./channel.js"),
|
Channel: require("./channel.js"),
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ var Server = (function () {
|
|||||||
|
|
||||||
// get/set
|
// get/set
|
||||||
|
|
||||||
Server.prototype.getRole = function getRole(id) {
|
Server.prototype.getRole = function getRole(key, value) {
|
||||||
for (var _iterator3 = this.roles, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
|
for (var _iterator3 = this.roles, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
|
||||||
var _ref3;
|
var _ref3;
|
||||||
|
|
||||||
@@ -86,7 +86,7 @@ var Server = (function () {
|
|||||||
|
|
||||||
var role = _ref3;
|
var role = _ref3;
|
||||||
|
|
||||||
if (role.id == id) {
|
if (role[key] === value) {
|
||||||
return role;
|
return role;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -96,18 +96,18 @@ var Server = (function () {
|
|||||||
|
|
||||||
Server.prototype.addRole = function addRole(data) {
|
Server.prototype.addRole = function addRole(data) {
|
||||||
|
|
||||||
if (this.getRole(data.id)) {
|
if (this.getRole("id", data.id)) {
|
||||||
return this.getRole(data.id);
|
return this.getRole("id", data.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
var perms = new ServerPermissions(data);
|
var perms = new ServerPermissions(data, this);
|
||||||
this.roles.push(perms);
|
this.roles.push(perms);
|
||||||
return 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("id", data.id);
|
||||||
|
|
||||||
if (oldRole) {
|
if (oldRole) {
|
||||||
var index = this.roles.indexOf(oldRole);
|
var index = this.roles.indexOf(oldRole);
|
||||||
|
|||||||
@@ -2,49 +2,61 @@
|
|||||||
credits to izy521 for the colour list
|
credits to izy521 for the colour list
|
||||||
https://github.com/izy521/discord.io/blob/master/docs/colors.md
|
https://github.com/izy521/discord.io/blob/master/docs/colors.md
|
||||||
*/
|
*/
|
||||||
module.exports = {
|
exports.DEFAULT = 0;
|
||||||
DEFAULT: 0,
|
exports.AQUA = 1752220;
|
||||||
AQUA: 1752220,
|
exports.GREEN= 3066993;
|
||||||
GREEN: 3066993,
|
exports.BLUE= 3447003;
|
||||||
BLUE: 3447003,
|
exports.PURPLE= 10181046;
|
||||||
PURPLE: 10181046,
|
exports.GOLD= 15844367;
|
||||||
GOLD: 15844367,
|
exports.ORANGE= 15105570;
|
||||||
ORANGE: 15105570,
|
exports.RED= 15158332;
|
||||||
RED: 15158332,
|
exports.GREY= 9807270;
|
||||||
GREY: 9807270,
|
exports.DARKER_GREY= 8359053;
|
||||||
DARKER_GREY: 8359053,
|
exports.NAVY= 3426654;
|
||||||
NAVY: 3426654,
|
exports.DARK_AQUA= 1146986;
|
||||||
DARK_AQUA: 1146986,
|
exports.DARK_GREEN= 2067276;
|
||||||
DARK_GREEN: 2067276,
|
exports.DARK_BLUE= 2123412;
|
||||||
DARK_BLUE: 2123412,
|
exports.DARK_PURPLE= 7419530;
|
||||||
DARK_PURPLE: 7419530,
|
exports.DARK_GOLD= 12745742;
|
||||||
DARK_GOLD: 12745742,
|
exports.DARK_ORANGE= 11027200;
|
||||||
DARK_ORANGE: 11027200,
|
exports.DARK_RED= 10038562;
|
||||||
DARK_RED: 10038562,
|
exports.DARK_GREY= 9936031;
|
||||||
DARK_GREY: 9936031,
|
exports.LIGHT_GREY= 12370112;
|
||||||
LIGHT_GREY: 12370112,
|
exports.DARK_NAVY= 2899536;
|
||||||
DARK_NAVY: 2899536
|
|
||||||
}
|
exports.toDec = function (data) {
|
||||||
|
var hextest = /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i;
|
||||||
|
|
||||||
exports.toDec = function(data){
|
|
||||||
var hextest = /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/;
|
|
||||||
|
|
||||||
var num;
|
var num;
|
||||||
|
|
||||||
if(hextest.test(data)){
|
if (hextest.test(data)) {
|
||||||
// it's a hex number with a # in front
|
// it's a hex number with a # in front
|
||||||
num = data.substr(1).toString(10);
|
|
||||||
}else if(hextest.test("#" + data)){
|
// there's a bug in discord as of 28/10/15, where any
|
||||||
|
// hex colors beginning with a 0 do not render properly.
|
||||||
|
// this is a temporary fix, and it does mean that you won't
|
||||||
|
// get correct colors all the time, although it is barely noticeable.
|
||||||
|
if(data.charAt(1) === "0"){
|
||||||
|
var tdata = data.split("");
|
||||||
|
tdata[1] = 1;
|
||||||
|
data = tdata.join("");
|
||||||
|
}
|
||||||
|
|
||||||
|
num = parseInt(data.substr(1), 16).toString(10);
|
||||||
|
} else if (hextest.test("#" + data)) {
|
||||||
// it's a hex number with no # in front
|
// it's a hex number with no # in front
|
||||||
num = data.toString(10);
|
num = parseInt(data, 16).toString(10);
|
||||||
}else{
|
} else {
|
||||||
num = data.toString(10);
|
num = data.toString(10);
|
||||||
}
|
}
|
||||||
return num;
|
|
||||||
|
console.log(num);
|
||||||
|
|
||||||
|
return parseInt(num);
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.toHex = function(data){
|
exports.toHex = function (data) {
|
||||||
|
|
||||||
return "#" + data.toString(16);
|
return "#" + data.toString(16);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -13,7 +13,7 @@ class ChannelPermissions {
|
|||||||
if (this.type === "member") {
|
if (this.type === "member") {
|
||||||
this.packed = channel.server.getMember("id", data.id).evalPerms.packed;
|
this.packed = channel.server.getMember("id", data.id).evalPerms.packed;
|
||||||
} else {
|
} else {
|
||||||
this.packed = channel.server.getRole(data.id).packed;
|
this.packed = channel.server.getRole("id", data.id).packed;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.packed = this.packed & ~data.deny;
|
this.packed = this.packed & ~data.deny;
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ var Invite = require("./invite.js");
|
|||||||
var PMChannel = require("./PMChannel.js");
|
var PMChannel = require("./PMChannel.js");
|
||||||
var ServerPermissions = require("./ServerPermissions.js");
|
var ServerPermissions = require("./ServerPermissions.js");
|
||||||
var gameMap = require("../ref/gameMap.json");
|
var gameMap = require("../ref/gameMap.json");
|
||||||
|
var Color = require("../ref/colours.js");
|
||||||
var zlib;
|
var zlib;
|
||||||
|
|
||||||
var EventEmitter = require('events');
|
var EventEmitter = require('events');
|
||||||
@@ -873,26 +874,21 @@ class Client extends EventEmitter {
|
|||||||
|
|
||||||
var server = role.server.id;
|
var server = role.server.id;
|
||||||
|
|
||||||
var modRole = role;
|
|
||||||
for (var key in data) {
|
|
||||||
modRole[key] = data[key];
|
|
||||||
}
|
|
||||||
|
|
||||||
request
|
request
|
||||||
.patch(`${Endpoints.SERVERS}/${server}/roles/${role.id}`)
|
.patch(`${Endpoints.SERVERS}/${server}/roles/${role.id}`)
|
||||||
.set("authorization", self.token)
|
.set("authorization", self.token)
|
||||||
.send({
|
.send({
|
||||||
color: modRole.color,
|
color: Color.toDec(data.color) || role.color,
|
||||||
hoist: modRole.hoist,
|
hoist: data.hoist || role.hoist,
|
||||||
name: modRole.name,
|
name: data.name || role.name,
|
||||||
permissions: modRole.packed
|
permissions: data.packed || role.packed
|
||||||
})
|
})
|
||||||
.end(function (err, res) {
|
.end(function (err, res) {
|
||||||
if (err) {
|
if (err) {
|
||||||
cb(err);
|
cb(err);
|
||||||
reject(err);
|
reject(err);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
var data = self.getServer("id", server).updateRole(res.body);
|
var data = self.getServer("id", server).updateRole(res.body);
|
||||||
resolve(data);
|
resolve(data);
|
||||||
cb(null, data);
|
cb(null, data);
|
||||||
@@ -1510,7 +1506,7 @@ class Client extends EventEmitter {
|
|||||||
case "GUILD_ROLE_DELETE":
|
case "GUILD_ROLE_DELETE":
|
||||||
|
|
||||||
var server = self.getServer("id", data.guild_id);
|
var server = self.getServer("id", data.guild_id);
|
||||||
var role = server.getRole(data.role_id);
|
var role = server.getRole("id", data.role_id);
|
||||||
|
|
||||||
self.emit("serverRoleDelete", server, role);
|
self.emit("serverRoleDelete", server, role);
|
||||||
|
|
||||||
@@ -1521,7 +1517,7 @@ class Client extends EventEmitter {
|
|||||||
case "GUILD_ROLE_UPDATE":
|
case "GUILD_ROLE_UPDATE":
|
||||||
|
|
||||||
var server = self.getServer("id", data.guild_id);
|
var server = self.getServer("id", data.guild_id);
|
||||||
var role = server.getRole(data.role.id);
|
var role = server.getRole("id", data.role.id);
|
||||||
var newRole = server.updateRole(data.role);
|
var newRole = server.updateRole(data.role);
|
||||||
|
|
||||||
self.emit("serverRoleUpdate", server, role, newRole);
|
self.emit("serverRoleUpdate", server, role, newRole);
|
||||||
|
|||||||
@@ -12,10 +12,10 @@ class Member extends User{
|
|||||||
|
|
||||||
get roles(){
|
get roles(){
|
||||||
|
|
||||||
var ufRoles = [ this.server.getRole(this.server.id) ];
|
var ufRoles = [ this.server.getRole("id", this.server.id) ];
|
||||||
|
|
||||||
for(var rawRole of this.rawRoles){
|
for(var rawRole of this.rawRoles){
|
||||||
ufRoles.push( this.server.getRole(rawRole) );
|
ufRoles.push( this.server.getRole("id", rawRole) );
|
||||||
}
|
}
|
||||||
|
|
||||||
return ufRoles;
|
return ufRoles;
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
var request = require("superagent");
|
var request = require("superagent");
|
||||||
var Endpoints = require("./Endpoints.js");
|
var Endpoints = require("./Endpoints.js");
|
||||||
var Client = require("./Client.js");
|
var Client = require("./Client.js");
|
||||||
var Colors = require("../ref/colours.js");
|
var Color = require("../ref/colours.js");
|
||||||
|
|
||||||
var Discord = {
|
var Discord = {
|
||||||
Endpoints : Endpoints,
|
Endpoints : Endpoints,
|
||||||
Client : Client,
|
Client : Client,
|
||||||
Colors : Colors,
|
Color : Color,
|
||||||
User : require("./user.js"),
|
User : require("./user.js"),
|
||||||
Server : require("./server.js"),
|
Server : require("./server.js"),
|
||||||
Channel : require("./channel.js"),
|
Channel : require("./channel.js"),
|
||||||
|
|||||||
@@ -73,9 +73,9 @@ class Server {
|
|||||||
|
|
||||||
// get/set
|
// get/set
|
||||||
|
|
||||||
getRole(id){
|
getRole(key, value){
|
||||||
for (var role of this.roles) {
|
for (var role of this.roles) {
|
||||||
if (role.id == id) {
|
if (role[key] === value) {
|
||||||
return role;
|
return role;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -85,11 +85,11 @@ class Server {
|
|||||||
|
|
||||||
addRole(data){
|
addRole(data){
|
||||||
|
|
||||||
if(this.getRole(data.id)){
|
if(this.getRole("id", data.id)){
|
||||||
return this.getRole(data.id);
|
return this.getRole("id", data.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
var perms = new ServerPermissions(data);
|
var perms = new ServerPermissions(data, this);
|
||||||
this.roles.push(perms);
|
this.roles.push(perms);
|
||||||
return perms;
|
return perms;
|
||||||
|
|
||||||
@@ -97,7 +97,7 @@ class Server {
|
|||||||
|
|
||||||
updateRole(data){
|
updateRole(data){
|
||||||
|
|
||||||
var oldRole = this.getRole(data.id);
|
var oldRole = this.getRole("id", data.id);
|
||||||
|
|
||||||
if(oldRole){
|
if(oldRole){
|
||||||
var index = this.roles.indexOf(oldRole);
|
var index = this.roles.indexOf(oldRole);
|
||||||
|
|||||||
Reference in New Issue
Block a user