53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
![]() |
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 });
|
||
|
},
|
||
|
});
|