mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-03-16 14:11:50 +00:00
Merge pull request #31 from roflmaoqwerty/mention-self-assignable-roles
Role mentions for self assignable role plugin
This commit is contained in:
commit
7897f6e312
1 changed files with 13 additions and 4 deletions
|
@ -17,6 +17,7 @@ type TSelfGrantableRoleEntry = t.TypeOf<typeof SelfGrantableRoleEntry>;
|
||||||
|
|
||||||
const ConfigSchema = t.type({
|
const ConfigSchema = t.type({
|
||||||
entries: t.record(t.string, SelfGrantableRoleEntry),
|
entries: t.record(t.string, SelfGrantableRoleEntry),
|
||||||
|
mention_roles: t.boolean,
|
||||||
});
|
});
|
||||||
type TConfigSchema = t.TypeOf<typeof ConfigSchema>;
|
type TConfigSchema = t.TypeOf<typeof ConfigSchema>;
|
||||||
|
|
||||||
|
@ -89,6 +90,7 @@ export class SelfGrantableRolesPlugin extends ZeppelinPlugin<TConfigSchema> {
|
||||||
return {
|
return {
|
||||||
config: {
|
config: {
|
||||||
entries: {},
|
entries: {},
|
||||||
|
mention_roles: false,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -313,20 +315,27 @@ export class SelfGrantableRolesPlugin extends ZeppelinPlugin<TConfigSchema> {
|
||||||
return;
|
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 addedRolesWord = rolesToAdd.size === 1 ? "role" : "roles";
|
||||||
|
|
||||||
const messageParts = [];
|
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) {
|
if (skipped.size || removed.size) {
|
||||||
const skippedRolesStr = skipped.size
|
const skippedRolesStr = skipped.size
|
||||||
? "skipped " +
|
? "skipped " +
|
||||||
Array.from(skipped.values())
|
Array.from(skipped.values())
|
||||||
.map(r => `**${r.name}**`)
|
.map(r => (mentionRoles ? `<@&${r.id}>` : `**${r.name}**`))
|
||||||
.join(",")
|
.join(",")
|
||||||
: null;
|
: 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 ");
|
const skippedRemovedStr = [skippedRolesStr, removedRolesStr].filter(Boolean).join(" and ");
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue