mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
45 lines
940 B
JavaScript
45 lines
940 B
JavaScript
'use strict';
|
|
|
|
const Action = require('./Action');
|
|
const Constants = require('../../util/Constants');
|
|
const CloneObject = require('../../util/CloneObject');
|
|
const Message = require('../../structures/Message');
|
|
|
|
class GuildRoleUpdateAction extends Action {
|
|
|
|
constructor(client) {
|
|
super(client);
|
|
}
|
|
|
|
handle(data) {
|
|
|
|
let client = this.client;
|
|
let guild = client.store.get('guilds', data.guild_id);
|
|
|
|
let roleData = data.role;
|
|
|
|
if (guild) {
|
|
let oldRole;
|
|
let existingRole = guild.store.get('roles', roleData.id);
|
|
// exists and not the same
|
|
if (existingRole && !existingRole.equals(roleData)) {
|
|
oldRole = CloneObject(existingRole);
|
|
existingRole.setup(data.role);
|
|
client.emit(Constants.Events.GUILD_ROLE_UPDATE, guild, oldRole, existingRole);
|
|
}
|
|
|
|
return {
|
|
old: oldRole,
|
|
updated: existingRole,
|
|
};
|
|
}
|
|
|
|
return {
|
|
old: null,
|
|
updated: null,
|
|
};
|
|
}
|
|
};
|
|
|
|
module.exports = GuildRoleUpdateAction;
|