mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13: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") {
|
||||
this.packed = channel.server.getMember("id", data.id).evalPerms.packed;
|
||||
} else {
|
||||
this.packed = channel.server.getRole(data.id).packed;
|
||||
this.packed = channel.server.getRole("id", data.id).packed;
|
||||
}
|
||||
|
||||
this.packed = this.packed & ~data.deny;
|
||||
|
||||
@@ -16,6 +16,7 @@ var Invite = require("./invite.js");
|
||||
var PMChannel = require("./PMChannel.js");
|
||||
var ServerPermissions = require("./ServerPermissions.js");
|
||||
var gameMap = require("../ref/gameMap.json");
|
||||
var Color = require("../ref/colours.js");
|
||||
var zlib;
|
||||
|
||||
var EventEmitter = require('events');
|
||||
@@ -824,16 +825,11 @@ var Client = (function (_EventEmitter) {
|
||||
|
||||
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({
|
||||
color: modRole.color,
|
||||
hoist: modRole.hoist,
|
||||
name: modRole.name,
|
||||
permissions: modRole.packed
|
||||
color: Color.toDec(data.color) || role.color,
|
||||
hoist: data.hoist || role.hoist,
|
||||
name: data.name || role.name,
|
||||
permissions: data.packed || role.packed
|
||||
}).end(function (err, res) {
|
||||
if (err) {
|
||||
cb(err);
|
||||
@@ -1479,7 +1475,7 @@ var Client = (function (_EventEmitter) {
|
||||
case "GUILD_ROLE_DELETE":
|
||||
|
||||
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);
|
||||
|
||||
@@ -1490,7 +1486,7 @@ var Client = (function (_EventEmitter) {
|
||||
case "GUILD_ROLE_UPDATE":
|
||||
|
||||
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);
|
||||
|
||||
self.emit("serverRoleUpdate", server, role, newRole);
|
||||
|
||||
@@ -130,7 +130,7 @@ var Member = (function (_User) {
|
||||
key: "roles",
|
||||
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]();;) {
|
||||
var _ref5;
|
||||
@@ -146,7 +146,7 @@ var Member = (function (_User) {
|
||||
|
||||
var rawRole = _ref5;
|
||||
|
||||
ufRoles.push(this.server.getRole(rawRole));
|
||||
ufRoles.push(this.server.getRole("id", rawRole));
|
||||
}
|
||||
|
||||
return ufRoles;
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
var request = require("superagent");
|
||||
var Endpoints = require("./Endpoints.js");
|
||||
var Client = require("./Client.js");
|
||||
var Colors = require("../ref/colours.js");
|
||||
var Color = require("../ref/colours.js");
|
||||
|
||||
var Discord = {
|
||||
Endpoints: Endpoints,
|
||||
Client: Client,
|
||||
Colors: Colors,
|
||||
Color: Color,
|
||||
User: require("./user.js"),
|
||||
Server: require("./server.js"),
|
||||
Channel: require("./channel.js"),
|
||||
|
||||
@@ -71,7 +71,7 @@ var Server = (function () {
|
||||
|
||||
// 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]();;) {
|
||||
var _ref3;
|
||||
|
||||
@@ -86,7 +86,7 @@ var Server = (function () {
|
||||
|
||||
var role = _ref3;
|
||||
|
||||
if (role.id == id) {
|
||||
if (role[key] === value) {
|
||||
return role;
|
||||
}
|
||||
}
|
||||
@@ -96,18 +96,18 @@ var Server = (function () {
|
||||
|
||||
Server.prototype.addRole = function addRole(data) {
|
||||
|
||||
if (this.getRole(data.id)) {
|
||||
return this.getRole(data.id);
|
||||
if (this.getRole("id", data.id)) {
|
||||
return this.getRole("id", data.id);
|
||||
}
|
||||
|
||||
var perms = new ServerPermissions(data);
|
||||
var perms = new ServerPermissions(data, this);
|
||||
this.roles.push(perms);
|
||||
return perms;
|
||||
};
|
||||
|
||||
Server.prototype.updateRole = function updateRole(data) {
|
||||
|
||||
var oldRole = this.getRole(data.id);
|
||||
var oldRole = this.getRole("id", data.id);
|
||||
|
||||
if (oldRole) {
|
||||
var index = this.roles.indexOf(oldRole);
|
||||
|
||||
@@ -2,49 +2,61 @@
|
||||
credits to izy521 for the colour list
|
||||
https://github.com/izy521/discord.io/blob/master/docs/colors.md
|
||||
*/
|
||||
module.exports = {
|
||||
DEFAULT: 0,
|
||||
AQUA: 1752220,
|
||||
GREEN: 3066993,
|
||||
BLUE: 3447003,
|
||||
PURPLE: 10181046,
|
||||
GOLD: 15844367,
|
||||
ORANGE: 15105570,
|
||||
RED: 15158332,
|
||||
GREY: 9807270,
|
||||
DARKER_GREY: 8359053,
|
||||
NAVY: 3426654,
|
||||
DARK_AQUA: 1146986,
|
||||
DARK_GREEN: 2067276,
|
||||
DARK_BLUE: 2123412,
|
||||
DARK_PURPLE: 7419530,
|
||||
DARK_GOLD: 12745742,
|
||||
DARK_ORANGE: 11027200,
|
||||
DARK_RED: 10038562,
|
||||
DARK_GREY: 9936031,
|
||||
LIGHT_GREY: 12370112,
|
||||
DARK_NAVY: 2899536
|
||||
}
|
||||
exports.DEFAULT = 0;
|
||||
exports.AQUA = 1752220;
|
||||
exports.GREEN= 3066993;
|
||||
exports.BLUE= 3447003;
|
||||
exports.PURPLE= 10181046;
|
||||
exports.GOLD= 15844367;
|
||||
exports.ORANGE= 15105570;
|
||||
exports.RED= 15158332;
|
||||
exports.GREY= 9807270;
|
||||
exports.DARKER_GREY= 8359053;
|
||||
exports.NAVY= 3426654;
|
||||
exports.DARK_AQUA= 1146986;
|
||||
exports.DARK_GREEN= 2067276;
|
||||
exports.DARK_BLUE= 2123412;
|
||||
exports.DARK_PURPLE= 7419530;
|
||||
exports.DARK_GOLD= 12745742;
|
||||
exports.DARK_ORANGE= 11027200;
|
||||
exports.DARK_RED= 10038562;
|
||||
exports.DARK_GREY= 9936031;
|
||||
exports.LIGHT_GREY= 12370112;
|
||||
exports.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;
|
||||
|
||||
if(hextest.test(data)){
|
||||
|
||||
if (hextest.test(data)) {
|
||||
// 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
|
||||
num = data.toString(10);
|
||||
}else{
|
||||
num = parseInt(data, 16).toString(10);
|
||||
} else {
|
||||
num = data.toString(10);
|
||||
}
|
||||
return num;
|
||||
|
||||
console.log(num);
|
||||
|
||||
return parseInt(num);
|
||||
}
|
||||
|
||||
exports.toHex = function(data){
|
||||
|
||||
exports.toHex = function (data) {
|
||||
|
||||
return "#" + data.toString(16);
|
||||
|
||||
|
||||
}
|
||||
@@ -13,7 +13,7 @@ class ChannelPermissions {
|
||||
if (this.type === "member") {
|
||||
this.packed = channel.server.getMember("id", data.id).evalPerms.packed;
|
||||
} else {
|
||||
this.packed = channel.server.getRole(data.id).packed;
|
||||
this.packed = channel.server.getRole("id", data.id).packed;
|
||||
}
|
||||
|
||||
this.packed = this.packed & ~data.deny;
|
||||
|
||||
@@ -8,6 +8,7 @@ var Invite = require("./invite.js");
|
||||
var PMChannel = require("./PMChannel.js");
|
||||
var ServerPermissions = require("./ServerPermissions.js");
|
||||
var gameMap = require("../ref/gameMap.json");
|
||||
var Color = require("../ref/colours.js");
|
||||
var zlib;
|
||||
|
||||
var EventEmitter = require('events');
|
||||
@@ -873,26 +874,21 @@ class Client extends EventEmitter {
|
||||
|
||||
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({
|
||||
color: modRole.color,
|
||||
hoist: modRole.hoist,
|
||||
name: modRole.name,
|
||||
permissions: modRole.packed
|
||||
color: Color.toDec(data.color) || role.color,
|
||||
hoist: data.hoist || role.hoist,
|
||||
name: data.name || role.name,
|
||||
permissions: data.packed || role.packed
|
||||
})
|
||||
.end(function (err, res) {
|
||||
if (err) {
|
||||
cb(err);
|
||||
reject(err);
|
||||
} else {
|
||||
|
||||
|
||||
var data = self.getServer("id", server).updateRole(res.body);
|
||||
resolve(data);
|
||||
cb(null, data);
|
||||
@@ -1510,7 +1506,7 @@ class Client extends EventEmitter {
|
||||
case "GUILD_ROLE_DELETE":
|
||||
|
||||
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);
|
||||
|
||||
@@ -1521,7 +1517,7 @@ class Client extends EventEmitter {
|
||||
case "GUILD_ROLE_UPDATE":
|
||||
|
||||
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);
|
||||
|
||||
self.emit("serverRoleUpdate", server, role, newRole);
|
||||
|
||||
@@ -12,10 +12,10 @@ class Member extends User{
|
||||
|
||||
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){
|
||||
ufRoles.push( this.server.getRole(rawRole) );
|
||||
ufRoles.push( this.server.getRole("id", rawRole) );
|
||||
}
|
||||
|
||||
return ufRoles;
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
var request = require("superagent");
|
||||
var Endpoints = require("./Endpoints.js");
|
||||
var Client = require("./Client.js");
|
||||
var Colors = require("../ref/colours.js");
|
||||
var Color = require("../ref/colours.js");
|
||||
|
||||
var Discord = {
|
||||
Endpoints : Endpoints,
|
||||
Client : Client,
|
||||
Colors : Colors,
|
||||
Color : Color,
|
||||
User : require("./user.js"),
|
||||
Server : require("./server.js"),
|
||||
Channel : require("./channel.js"),
|
||||
|
||||
@@ -73,9 +73,9 @@ class Server {
|
||||
|
||||
// get/set
|
||||
|
||||
getRole(id){
|
||||
getRole(key, value){
|
||||
for (var role of this.roles) {
|
||||
if (role.id == id) {
|
||||
if (role[key] === value) {
|
||||
return role;
|
||||
}
|
||||
}
|
||||
@@ -85,11 +85,11 @@ class Server {
|
||||
|
||||
addRole(data){
|
||||
|
||||
if(this.getRole(data.id)){
|
||||
return this.getRole(data.id);
|
||||
if(this.getRole("id", data.id)){
|
||||
return this.getRole("id", data.id);
|
||||
}
|
||||
|
||||
var perms = new ServerPermissions(data);
|
||||
var perms = new ServerPermissions(data, this);
|
||||
this.roles.push(perms);
|
||||
return perms;
|
||||
|
||||
@@ -97,7 +97,7 @@ class Server {
|
||||
|
||||
updateRole(data){
|
||||
|
||||
var oldRole = this.getRole(data.id);
|
||||
var oldRole = this.getRole("id", data.id);
|
||||
|
||||
if(oldRole){
|
||||
var index = this.roles.indexOf(oldRole);
|
||||
|
||||
Reference in New Issue
Block a user