3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-06-08 00:05:01 +00:00

refactor: move defaults to config schemas

This commit is contained in:
Dragory 2025-05-23 01:12:52 +00:00
parent 09eb8e92f2
commit 83d35052c3
No known key found for this signature in database
91 changed files with 450 additions and 888 deletions

View file

@ -11,19 +11,12 @@ import { AddReactionRoleEvt } from "./events/AddReactionRoleEvt.js";
import { MessageDeletedEvt } from "./events/MessageDeletedEvt.js";
import { ReactionRolesPluginType, zReactionRolesConfig } from "./types.js";
const MIN_AUTO_REFRESH = 1000 * 60 * 15; // 15min minimum, let's not abuse the API
export const ReactionRolesPlugin = guildPlugin<ReactionRolesPluginType>()({
name: "reaction_roles",
const defaultOptions: PluginOptions<ReactionRolesPluginType> = {
config: {
auto_refresh_interval: MIN_AUTO_REFRESH,
remove_user_reactions: true,
can_manage: false,
button_groups: null,
},
overrides: [
dependencies: () => [LogsPlugin],
configSchema: zReactionRolesConfig,
defaultOverrides: [
{
level: ">=100",
config: {
@ -31,14 +24,6 @@ const defaultOptions: PluginOptions<ReactionRolesPluginType> = {
},
},
],
};
export const ReactionRolesPlugin = guildPlugin<ReactionRolesPluginType>()({
name: "reaction_roles",
dependencies: () => [LogsPlugin],
configParser: (input) => zReactionRolesConfig.parse(input),
defaultOptions,
// prettier-ignore
messageCommands: [

View file

@ -5,11 +5,13 @@ import { GuildReactionRoles } from "../../data/GuildReactionRoles.js";
import { GuildSavedMessages } from "../../data/GuildSavedMessages.js";
import { CommonPlugin } from "../Common/CommonPlugin.js";
const MIN_AUTO_REFRESH = 1000 * 60 * 15; // 15min minimum, let's not abuse the API
export const zReactionRolesConfig = z.strictObject({
auto_refresh_interval: z.number(),
remove_user_reactions: z.boolean(),
can_manage: z.boolean(),
button_groups: z.nullable(z.unknown()),
auto_refresh_interval: z.number().min(MIN_AUTO_REFRESH).default(MIN_AUTO_REFRESH),
remove_user_reactions: z.boolean().default(true),
can_manage: z.boolean().default(false),
button_groups: z.null().default(null),
});
export type RoleChangeMode = "+" | "-";
@ -27,7 +29,7 @@ const zReactionRolePair = z.union([z.tuple([z.string(), z.string(), z.string()])
export type TReactionRolePair = z.infer<typeof zReactionRolePair>;
export interface ReactionRolesPluginType extends BasePluginType {
config: z.infer<typeof zReactionRolesConfig>;
configSchema: typeof zReactionRolesConfig;
state: {
reactionRoles: GuildReactionRoles;
savedMessages: GuildSavedMessages;