zappyzep/backend/src/plugins/SelfGrantableRoles/commands/RoleHelpCmd.ts

53 lines
1.5 KiB
TypeScript
Raw Normal View History

import { selfGrantableRolesCmd } from "../types";
import { asSingleLine, trimLines } from "src/utils";
import { getApplyingEntries } from "../util/getApplyingEntries";
export const RoleHelpCmd = selfGrantableRolesCmd({
trigger: ["role help", "role"],
permission: null,
async run({ message: msg, pluginData }) {
const applyingEntries = getApplyingEntries(pluginData, msg);
if (applyingEntries.length === 0) return;
const allPrimaryAliases = [];
for (const entry of applyingEntries) {
for (const aliases of Object.values(entry.roles)) {
if (aliases[0]) {
allPrimaryAliases.push(aliases[0]);
}
}
}
const prefix = pluginData.guildConfig.prefix;
const [firstRole, secondRole] = allPrimaryAliases;
const help1 = asSingleLine(`
To give yourself a role, type e.g. \`${prefix}role ${firstRole}\` where **${firstRole}** is the role you want.
${secondRole ? `You can also add multiple roles at once, e.g. \`${prefix}role ${firstRole} ${secondRole}\`` : ""}
`);
const help2 = asSingleLine(`
To remove a role, type \`${prefix}role remove ${firstRole}\`,
again replacing **${firstRole}** with the role you want to remove.
`);
const helpMessage = trimLines(`
${help1}
${help2}
**Roles available to you:**
${allPrimaryAliases.join(", ")}
`);
const helpEmbed = {
title: "How to get roles",
description: helpMessage,
color: parseInt("42bff4", 16),
};
msg.channel.createMessage({ embed: helpEmbed });
},
});