Added full Role tracking

This commit is contained in:
hydrabolt
2016-04-17 15:43:12 +01:00
parent bbf7be7dfa
commit 71a4cd6a93
3 changed files with 19 additions and 21 deletions

View File

@@ -36,7 +36,8 @@ class Guild {
_updateMember(member, data) { _updateMember(member, data) {
let oldRoles = member.roles; let oldRoles = member.roles;
member.roles = data.roles;
member._roles = data.roles;
if (this.client.ws.emittedReady) { if (this.client.ws.emittedReady) {
this.client.emit(Constants.Events.GUILD_MEMBER_ROLES_UPDATE, this, oldRoles, member.roles); this.client.emit(Constants.Events.GUILD_MEMBER_ROLES_UPDATE, this, oldRoles, member.roles);
} }

View File

@@ -4,38 +4,35 @@ class GuildMember {
constructor(guild, data) { constructor(guild, data) {
this.client = guild.client; this.client = guild.client;
this.guild = guild; this.guild = guild;
this._user = {}; this.user = {};
this._roles = [];
if (data) { if (data) {
this.setup(data); this.setup(data);
} }
} }
setup(data) { setup(data) {
this._user = data.user; this.user = data.user;
this.deaf = data.deaf; this.deaf = data.deaf;
this.mute = data.mute; this.mute = data.mute;
this.joinDate = new Date(data.joined_at); this.joinDate = new Date(data.joined_at);
this.roles = data.roles; this._roles = data.roles;
} }
get username() { get roles() {
return this._user.username; let list = [];
for (let roleID of this._roles) {
let role = this.guild.store.get('roles', roleID);
if (role) {
list.push(role);
}
}
return list;
} }
get id() { get id() {
return this._user.id; return this.user.id;
}
get discriminator() {
return this._user.discriminator;
}
get avatar() {
return this._user.avatar;
}
get bot() {
return this._user.bot;
} }
} }

View File

@@ -30,11 +30,11 @@ client.on('channelUpdate', (old, chan) => {
}); });
client.on('guildMemberAdd', (guild, user) => { client.on('guildMemberAdd', (guild, user) => {
console.log('new guild member', user.username, 'in', guild.name); console.log('new guild member', user.user.username, 'in', guild.name);
}); });
client.on('guildMemberRemove', (guild, user) => { client.on('guildMemberRemove', (guild, user) => {
console.log('dead guild member', user.username, 'in', guild.name); console.log('dead guild member', user.user.username, 'in', guild.name);
}); });
client.on('guildRoleCreate', (guild, role) => { client.on('guildRoleCreate', (guild, role) => {