ServerRoleCreate listener

This commit is contained in:
hydrabolt
2015-11-01 15:12:33 +00:00
parent 5b7a3dd3a1
commit 4d8cd20cf5
10 changed files with 37 additions and 26 deletions

View File

@@ -20,7 +20,8 @@ var User = require("../Structures/User.js"),
VoiceChannel = require("../Structures/VoiceChannel.js"),
PMChannel = require("../Structures/PMChannel.js"),
Server = require("../Structures/Server.js"),
Message = require("../Structures/Message.js");
Message = require("../Structures/Message.js"),
Role = require("../Structures/Role.js");
var zlib;
@@ -637,6 +638,14 @@ var InternalClient = (function () {
client.emit("warn", "channel updated but not in cache");
}
break;
case PacketType.SERVER_ROLE_CREATE:
var server = self.servers.get("id", data.guild_id);
if (server) {
client.emit("serverRoleCreated", server.roles.add(new Role(data.role, server, client)), server);
} else {
client.emit("warn", "server role made but server not in cache");
}
break;
}
};
};

View File

@@ -108,7 +108,10 @@ var PacketType = {
SERVER_UPDATE: "GUILD_UPDATE",
CHANNEL_CREATE: "CHANNEL_CREATE",
CHANNEL_DELETE: "CHANNEL_DELETE",
CHANNEL_UPDATE: "CHANNEL_UPDATE"
CHANNEL_UPDATE: "CHANNEL_UPDATE",
SERVER_ROLE_CREATE: "GUILD_ROLE_CREATE",
SERVER_ROLE_DELETE: "GUILD_ROLE_DELETE",
SERVER_ROLE_UPDATE: "GUILD_ROLE_UPDATE"
};
exports.API_ENDPOINT = API;

View File

@@ -1,7 +1,5 @@
"use strict";
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Permissions = require("../Constants.js").Permissions;
@@ -23,7 +21,7 @@ var DefaultRole = [Permissions.createInstantInvite, Permissions.readMessages, Pe
}, 0);
var Role = (function () {
function Role(data, serverID, client) {
function Role(data, server, client) {
_classCallCheck(this, Role);
this.position = data.position || -1;
@@ -33,7 +31,7 @@ var Role = (function () {
this.id = data.id;
this.hoist = data.hoist || false;
this.color = data.color || 0;
this.serverID = serverID;
this.server = server;
this.client = client;
}
@@ -135,13 +133,6 @@ var Role = (function () {
return "#" + val;
};
_createClass(Role, [{
key: "server",
get: function get() {
return this.client.internal.servers.get("id", this.serverID);
}
}]);
return Role;
})();

View File

@@ -63,7 +63,7 @@ var Server = (function (_Equality) {
});
data.roles.forEach(function (dataRole) {
_this.roles.add(new Role(dataRole, _this));
_this.roles.add(new Role(dataRole, _this, client));
});
}

View File

@@ -18,8 +18,8 @@ a.on("message", function (m) {
a.reply(m, srv);
});
});
a.on("channelUpdated", function (o, n) {
a.sendMessage(o, o.name + " v " + n.name);
a.on("serverRoleCreated", function (r, s) {
console.log(r);
});
a.login(process.env["discordEmail"], process.env["discordPass"])["catch"](function (e) {

View File

@@ -18,7 +18,8 @@ var User = require("../Structures/User.js"),
VoiceChannel = require("../Structures/VoiceChannel.js"),
PMChannel = require("../Structures/PMChannel.js"),
Server = require("../Structures/Server.js"),
Message = require("../Structures/Message.js");
Message = require("../Structures/Message.js"),
Role = require("../Structures/Role.js");
var zlib;
@@ -661,6 +662,14 @@ class InternalClient {
client.emit("warn", "channel updated but not in cache");
}
break;
case PacketType.SERVER_ROLE_CREATE:
var server = self.servers.get("id", data.guild_id);
if(server){
client.emit("serverRoleCreated", server.roles.add(new Role(data.role, server, client)), server);
}else{
client.emit("warn", "server role made but server not in cache");
}
break;
}
}
}

View File

@@ -71,6 +71,9 @@ var PacketType = {
CHANNEL_CREATE : "CHANNEL_CREATE",
CHANNEL_DELETE : "CHANNEL_DELETE",
CHANNEL_UPDATE : "CHANNEL_UPDATE",
SERVER_ROLE_CREATE : "GUILD_ROLE_CREATE",
SERVER_ROLE_DELETE : "GUILD_ROLE_DELETE",
SERVER_ROLE_UPDATE : "GUILD_ROLE_UPDATE"
}
exports.API_ENDPOINT = API;

View File

@@ -29,7 +29,7 @@ const DefaultRole = [
].reduce( (previous, current) => previous | current, 0 );
class Role{
constructor(data, serverID, client){
constructor(data, server, client){
this.position = data.position || -1;
this.permissions = data.permissions || DefaultRole;
this.name = data.name || "@everyone";
@@ -37,14 +37,10 @@ class Role{
this.id = data.id;
this.hoist = data.hoist || false;
this.color = data.color || 0;
this.serverID = serverID;
this.server = server;
this.client = client;
}
get server(){
return this.client.internal.servers.get("id", this.serverID);
}
serialise(explicit){
var hp = (perm) => this.hasPermission(perm, explicit);

View File

@@ -54,7 +54,7 @@ class Server extends Equality {
} );
data.roles.forEach( (dataRole) => {
this.roles.add( new Role(dataRole, this) );
this.roles.add( new Role(dataRole, this, client) );
} );
}

View File

@@ -13,8 +13,8 @@ a.on("message", m => {
a.reply(m, srv);
});
});
a.on("channelUpdated", (o, n) => {
a.sendMessage(o, o.name + " v " + n.name);
a.on("serverRoleCreated", (r, s) => {
console.log(r);
});
a.login(process.env["discordEmail"], process.env["discordPass"]).catch((e)=>console.log(e));