3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-27 11:15:02 +00:00

feat: knub v32-next; related fixes

This commit is contained in:
Dragory 2023-04-01 02:16:15 +03:00
parent 448293d6ac
commit c36d47e0b8
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1
89 changed files with 287 additions and 931 deletions

View file

@ -1,5 +1,7 @@
import * as t from "io-ts";
import { CooldownManager, PluginOptions } from "knub";
import { trimPluginDescription } from "../../utils";
import { validate } from "../../validatorUtils";
import { zeppelinGuildPlugin } from "../ZeppelinPluginBlueprint";
import { RoleAddCmd } from "./commands/RoleAddCmd";
import { RoleHelpCmd } from "./commands/RoleHelpCmd";
@ -17,9 +19,6 @@ export const SelfGrantableRolesPlugin = zeppelinGuildPlugin<SelfGrantableRolesPl
name: "self_grantable_roles",
showInDocs: true,
configSchema: ConfigSchema,
defaultOptions,
info: {
prettyName: "Self-grantable roles",
description: trimPluginDescription(`
@ -68,24 +67,31 @@ export const SelfGrantableRolesPlugin = zeppelinGuildPlugin<SelfGrantableRolesPl
can_use: true
~~~
`),
configSchema: ConfigSchema,
},
configParser: (options) => {
const config = options;
for (const [key, entry] of Object.entries(config.entries)) {
configParser: (input) => {
const entries = (input as any).entries;
for (const [key, entry] of Object.entries<any>(entries)) {
// Apply default entry config
config.entries[key] = { ...defaultSelfGrantableRoleEntry, ...entry };
entries[key] = { ...defaultSelfGrantableRoleEntry, ...entry };
// Normalize alias names
if (entry.roles) {
for (const [roleId, aliases] of Object.entries(entry.roles)) {
for (const [roleId, aliases] of Object.entries<string[]>(entry.roles)) {
entry.roles[roleId] = aliases.map((a) => a.toLowerCase());
}
}
}
return { ...options, config };
const error = validate(ConfigSchema, input);
if (error) {
throw error;
}
return input as t.TypeOf<typeof ConfigSchema>;
},
defaultOptions,
// prettier-ignore
messageCommands: [