3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-21 16:55:03 +00:00

CustomEvents: check existing roles on addRoleAction

This commit is contained in:
metal 2021-08-21 14:58:34 +00:00 committed by GitHub
parent 71351435c9
commit 6f0b3e0568

View file

@ -28,9 +28,12 @@ export async function addRoleAction(
if (event.trigger.type === "command" && !canActOn(pluginData, eventData.msg.member, target)) {
throw new ActionError("Missing permissions");
}
const rolesToAdd = Array.isArray(action.role) ? action.role : [action.role];
const targetRoles = [...target.roles.cache.keys()];
const rolesToAdd = (Array.isArray(action.role) ? action.role : [action.role]).filter(id => !targetRoles.includes(id));
if (rolesToAdd.length === 0) {
throw new ActionError("Target already has the role(s) specified");
}
await target.edit({
roles: Array.from(new Set([...target.roles.cache.values(), ...rolesToAdd])) as Snowflake[],
roles: Array.from(new Set([...targetRoles, ...rolesToAdd])) as Snowflake[],
});
}