mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-03-16 14:11:50 +00:00
Show self-grantable roles in docs, add configuration guide
This commit is contained in:
parent
401eb21b3e
commit
5f8c42f575
1 changed files with 54 additions and 2 deletions
|
@ -1,7 +1,7 @@
|
||||||
import { decorators as d, IPluginOptions } from "knub";
|
import { decorators as d, IPluginOptions } from "knub";
|
||||||
import { GuildChannel, Message, Role, TextChannel } from "eris";
|
import { GuildChannel, Message, Role, TextChannel } from "eris";
|
||||||
import { asSingleLine, chunkArray, errorMessage, sorter, successMessage, tDeepPartial, trimLines } from "../utils";
|
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";
|
import * as t from "io-ts";
|
||||||
|
|
||||||
const RoleMap = t.record(t.string, t.array(t.string));
|
const RoleMap = t.record(t.string, t.array(t.string));
|
||||||
|
@ -30,9 +30,61 @@ const defaultSelfGrantableRoleEntry: t.TypeOf<typeof PartialRoleEntry> = {
|
||||||
|
|
||||||
export class SelfGrantableRolesPlugin extends ZeppelinPlugin<TConfigSchema> {
|
export class SelfGrantableRolesPlugin extends ZeppelinPlugin<TConfigSchema> {
|
||||||
public static pluginName = "self_grantable_roles";
|
public static pluginName = "self_grantable_roles";
|
||||||
public static showInDocs = false;
|
public static showInDocs = true;
|
||||||
public static configSchema = ConfigSchema;
|
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<TConfigSchema> {
|
public static getStaticDefaultOptions(): IPluginOptions<TConfigSchema> {
|
||||||
return {
|
return {
|
||||||
config: {
|
config: {
|
||||||
|
|
Loading…
Add table
Reference in a new issue