3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-03-15 05:41:51 +00:00

Merge pull request #31 from roflmaoqwerty/mention-self-assignable-roles

Role mentions for self assignable role plugin
This commit is contained in:
Miikka 2020-01-22 23:27:47 +02:00 committed by GitHub
commit 7897f6e312
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -17,6 +17,7 @@ type TSelfGrantableRoleEntry = t.TypeOf<typeof SelfGrantableRoleEntry>;
const ConfigSchema = t.type({
entries: t.record(t.string, SelfGrantableRoleEntry),
mention_roles: t.boolean,
});
type TConfigSchema = t.TypeOf<typeof ConfigSchema>;
@ -89,6 +90,7 @@ export class SelfGrantableRolesPlugin extends ZeppelinPlugin<TConfigSchema> {
return {
config: {
entries: {},
mention_roles: false,
},
};
}
@ -313,20 +315,27 @@ export class SelfGrantableRolesPlugin extends ZeppelinPlugin<TConfigSchema> {
return;
}
const addedRolesStr = Array.from(rolesToAdd.values()).map(r => `**${r.name}**`);
const mentionRoles = this.getConfig().mention_roles;
const addedRolesStr = Array.from(rolesToAdd.values()).map(r => (mentionRoles ? `${r.id}` : `**${r.name}**`));
const addedRolesWord = rolesToAdd.size === 1 ? "role" : "roles";
const messageParts = [];
messageParts.push(`Granted you the ${addedRolesStr.join(", ")} ${addedRolesWord}`);
messageParts.push(
`Granted you the ${
mentionRoles ? `<@&` + addedRolesStr.join(">, <@&") + `>` : addedRolesStr.join(", ")
} ${addedRolesWord}`,
);
if (skipped.size || removed.size) {
const skippedRolesStr = skipped.size
? "skipped " +
Array.from(skipped.values())
.map(r => `**${r.name}**`)
.map(r => (mentionRoles ? `<@&${r.id}>` : `**${r.name}**`))
.join(",")
: null;
const removedRolesStr = removed.size ? "removed " + Array.from(removed.values()).map(r => `**${r.name}**`) : null;
const removedRolesStr = removed.size
? "removed " + Array.from(removed.values()).map(r => (mentionRoles ? `<@&${r.id}>` : `**${r.name}**`))
: null;
const skippedRemovedStr = [skippedRolesStr, removedRolesStr].filter(Boolean).join(" and ");