diff --git a/backend/src/plugins/SelfGrantableRolesPlugin.ts b/backend/src/plugins/SelfGrantableRolesPlugin.ts index 0c4963f1..48de929a 100644 --- a/backend/src/plugins/SelfGrantableRolesPlugin.ts +++ b/backend/src/plugins/SelfGrantableRolesPlugin.ts @@ -1,7 +1,7 @@ import { decorators as d, IPluginOptions } from "knub"; import { GuildChannel, Message, Role, TextChannel } from "eris"; import { asSingleLine, chunkArray, errorMessage, sorter, successMessage, tDeepPartial, trimLines } from "../utils"; -import { ZeppelinPlugin } from "./ZeppelinPlugin"; +import { trimPluginDescription, ZeppelinPlugin } from "./ZeppelinPlugin"; import * as t from "io-ts"; const RoleMap = t.record(t.string, t.array(t.string)); @@ -30,9 +30,61 @@ const defaultSelfGrantableRoleEntry: t.TypeOf = { export class SelfGrantableRolesPlugin extends ZeppelinPlugin { public static pluginName = "self_grantable_roles"; - public static showInDocs = false; + public static showInDocs = true; public static configSchema = ConfigSchema; + public static pluginInfo = { + prettyName: "Self-grantable roles", + description: trimPluginDescription(` + Allows users to grant themselves roles via a command + `), + configurationGuide: trimPluginDescription(` + ### Basic configuration + In this example, users can add themselves platform roles on the channel 473087035574321152 by using the + \`!role\` command. For example, \`!role pc ps4\` to add both the "pc" and "ps4" roles as specified below. + + ~~~yml + self_grantable_roles: + config: + entries: + basic: + roles: + "543184300250759188": ["pc", "computer"] + "534710505915547658": ["ps4", "ps", "playstation"] + "473085927053590538": ["xbox", "xb1", "xb"] + overrides: + - channel: "473087035574321152" + config: + entries: + basic: + roles: + can_use: true + ~~~ + + ### Maximum number of roles + This is identical to the basic example above, but users can only choose 1 role. + + ~~~yml + self_grantable_roles: + config: + entries: + basic: + roles: + "543184300250759188": ["pc", "computer"] + "534710505915547658": ["ps4", "ps", "playstation"] + "473085927053590538": ["xbox", "xb1", "xb"] + max_roles: 1 + overrides: + - channel: "473087035574321152" + config: + entries: + basic: + roles: + can_use: true + ~~~ + `), + }; + public static getStaticDefaultOptions(): IPluginOptions { return { config: {