3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-10 20:35:02 +00:00

Fix up docs

This commit is contained in:
Dragory 2020-07-30 13:08:06 +03:00
parent 743a5e9ce4
commit 7909c99a7f
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1
35 changed files with 371 additions and 64 deletions

View file

@ -15,6 +15,13 @@ const defaultOptions: PluginOptions<AutoDeletePluginType> = {
};
export const AutoDeletePlugin = zeppelinPlugin<AutoDeletePluginType>()("auto_delete", {
showInDocs: true,
info: {
prettyName: "Auto-delete",
description: "Allows Zeppelin to auto-delete messages from a channel after a delay",
configurationGuide: "Maximum deletion delay is currently 5 minutes",
},
configSchema: ConfigSchema,
defaultOptions,

View file

@ -6,6 +6,7 @@ import { DisableAutoReactionsCmd } from "./commands/DisableAutoReactionsCmd";
import { GuildSavedMessages } from "src/data/GuildSavedMessages";
import { GuildAutoReactions } from "src/data/GuildAutoReactions";
import { AddReactionsEvt } from "./events/AddReactionsEvt";
import { trimPluginDescription } from "../../utils";
const defaultOptions: PluginOptions<AutoReactionsPluginType> = {
config: {
@ -22,6 +23,14 @@ const defaultOptions: PluginOptions<AutoReactionsPluginType> = {
};
export const AutoReactionsPlugin = zeppelinPlugin<AutoReactionsPluginType>()("auto_reactions", {
showInDocs: true,
info: {
prettyName: "Auto-reactions",
description: trimPluginDescription(`
Allows setting up automatic reactions to all new messages on a channel
`),
},
configSchema: ConfigSchema,
defaultOptions,

View file

@ -22,6 +22,7 @@ import { MutesPlugin } from "../Mutes/MutesPlugin";
import { AntiraidClearCmd } from "./commands/AntiraidClearCmd";
import { SetAntiraidCmd } from "./commands/SetAntiraidCmd";
import { ViewAntiraidCmd } from "./commands/ViewAntiraidCmd";
import { pluginInfo } from "./info";
const defaultOptions = {
config: {
@ -134,6 +135,9 @@ const configPreprocessor: ConfigPreprocessorFn<AutomodPluginType> = options => {
};
export const AutomodPlugin = zeppelinPlugin<AutomodPluginType>()("automod", {
showInDocs: true,
info: pluginInfo,
dependencies: [LogsPlugin, ModActionsPlugin, MutesPlugin],
configSchema: ConfigSchema,

View file

@ -0,0 +1,102 @@
import { ZeppelinPluginBlueprint } from "../ZeppelinPluginBlueprint";
import { trimPluginDescription } from "../../utils";
export const pluginInfo: ZeppelinPluginBlueprint["info"] = {
prettyName: "Automod",
description: trimPluginDescription(`
Allows specifying automated actions in response to triggers. Example use cases include word filtering and spam prevention.
`),
configurationGuide: trimPluginDescription(`
The automod plugin is very customizable. For a full list of available triggers, actions, and their options, see Config schema at the bottom of this page.
### Simple word filter
Removes any messages that contain the word 'banana' and sends a warning to the user.
Moderators (level >= 50) are ignored by the filter based on the override.
~~~yml
automod:
config:
rules:
my_filter:
triggers:
- match_words:
words: ['banana']
case_sensitive: false
only_full_words: true
actions:
clean: true
warn:
reason: 'Do not talk about bananas!'
overrides:
- level: '>=50'
config:
rules:
my_filter:
enabled: false
~~~
### Spam detection
This example includes 2 filters:
- The first one is triggered if a user sends 5 messages within 10 seconds OR 3 attachments within 60 seconds.
The messages are deleted and the user is muted for 5 minutes.
- The second filter is triggered if a user sends more than 2 emoji within 5 seconds.
The messages are deleted but the user is not muted.
Moderators are ignored by both filters based on the override.
~~~yml
automod:
config:
rules:
my_spam_filter:
triggers:
- message_spam:
amount: 5
within: 10s
- attachment_spam:
amount: 3
within: 60s
actions:
clean: true
mute:
duration: 5m
reason: 'Auto-muted for spam'
my_second_filter:
triggers:
- message_spam:
amount: 5
within: 10s
actions:
clean: true
overrides:
- level: '>=50'
config:
rules:
my_spam_filter:
enabled: false
my_second_filter:
enabled: false
~~~
### Custom status alerts
This example sends an alert any time a user with a matching custom status sends a message.
~~~yml
automod:
config:
rules:
bad_custom_statuses:
triggers:
- match_words:
words: ['banana']
match_custom_status: true
actions:
alert:
channel: "473087035574321152"
text: |-
Bad custom status on user <@!{user.id}>:
{matchSummary}
~~~
`),
};

View file

@ -10,6 +10,7 @@ import { postCaseToCaseLogChannel } from "./functions/postToCaseLogChannel";
import { CaseTypes } from "../../data/CaseTypes";
import { getCaseTypeAmountForUserId } from "./functions/getCaseTypeAmountForUserId";
import { getCaseEmbed } from "./functions/getCaseEmbed";
import { trimPluginDescription } from "../../utils";
const defaultOptions = {
config: {
@ -19,6 +20,14 @@ const defaultOptions = {
};
export const CasesPlugin = zeppelinPlugin<CasesPluginType>()("cases", {
showInDocs: true,
info: {
prettyName: "Cases",
description: trimPluginDescription(`
This plugin contains basic configuration for cases created by other plugins
`),
},
configSchema: ConfigSchema,
defaultOptions,

View file

@ -5,11 +5,12 @@ import { GuildLogs } from "src/data/GuildLogs";
import { GuildSavedMessages } from "src/data/GuildSavedMessages";
import { onMessageCreate } from "./util/onMessageCreate";
import { onMessageUpdate } from "./util/onMessageUpdate";
import { trimPluginDescription } from "../../utils";
const defaultOptions: PluginOptions<CensorPluginType> = {
config: {
filter_zalgo: false,
filter_invites: true,
filter_invites: false,
invite_guild_whitelist: null,
invite_guild_blacklist: null,
invite_code_whitelist: null,
@ -41,6 +42,15 @@ const defaultOptions: PluginOptions<CensorPluginType> = {
};
export const CensorPlugin = zeppelinPlugin<CensorPluginType>()("censor", {
showInDocs: true,
info: {
prettyName: "Censor",
description: trimPluginDescription(`
Censor words, tokens, links, regex, etc.
For more advanced filtering, check out the Automod plugin!
`),
},
configSchema: ConfigSchema,
defaultOptions,

View file

@ -3,6 +3,7 @@ import { CompanionChannelsPluginType, ConfigSchema, TCompanionChannelOpts } from
import { VoiceChannelJoinEvt } from "./events/VoiceChannelJoinEvt";
import { VoiceChannelSwitchEvt } from "./events/VoiceChannelSwitchEvt";
import { VoiceChannelLeaveEvt } from "./events/VoiceChannelLeaveEvt";
import { trimPluginDescription } from "../../utils";
const defaultOptions = {
config: {
@ -11,6 +12,16 @@ const defaultOptions = {
};
export const CompanionChannelsPlugin = zeppelinPlugin<CompanionChannelsPluginType>()("companion_channels", {
showInDocs: true,
info: {
prettyName: "Companion channels",
description: trimPluginDescription(`
Set up 'companion channels' between text and voice channels.
Once set up, any time a user joins one of the specified voice channels,
they'll get channel permissions applied to them for the text channels.
`),
},
configSchema: ConfigSchema,
defaultOptions,

View file

@ -12,6 +12,8 @@ const defaultOptions = {
};
export const CustomEventsPlugin = zeppelinPlugin<CustomEventsPluginType>()("custom_events", {
showInDocs: false,
configSchema: ConfigSchema,
defaultOptions,

View file

@ -9,6 +9,7 @@ import { FollowCmd } from "./commands/FollowCmd";
import { DeleteFollowCmd, ListFollowCmd } from "./commands/ListFollowCmd";
import { ChannelJoinAlertsEvt, ChannelLeaveAlertsEvt, ChannelSwitchAlertsEvt } from "./events/SendAlertsEvts";
import { GuildBanRemoveAlertsEvt } from "./events/BanRemoveAlertsEvt";
import { trimPluginDescription } from "../../utils";
const defaultOptions: PluginOptions<LocateUserPluginType> = {
config: {
@ -27,6 +28,16 @@ const defaultOptions: PluginOptions<LocateUserPluginType> = {
};
export const LocateUserPlugin = zeppelinPlugin<LocateUserPluginType>()("locate_user", {
showInDocs: true,
info: {
prettyName: "Locate user",
description: trimPluginDescription(`
This plugin allows users with access to the commands the following:
* Instantly receive an invite to the voice channel of a user
* Be notified as soon as a user switches or joins a voice channel
`),
},
configSchema: ConfigSchema,
defaultOptions,

View file

@ -41,6 +41,11 @@ const defaultOptions: PluginOptions<LogsPluginType> = {
};
export const LogsPlugin = zeppelinPlugin<LogsPluginType>()("logs", {
showInDocs: true,
info: {
prettyName: "Logs",
},
configSchema: ConfigSchema,
defaultOptions,

View file

@ -21,11 +21,11 @@ const defaultOptions: PluginOptions<MessageSaverPluginType> = {
};
export const MessageSaverPlugin = zeppelinPlugin<MessageSaverPluginType>()("message_saver", {
showInDocs: false,
configSchema: ConfigSchema,
defaultOptions,
showInDocs: false,
// prettier-ignore
commands: [
SaveMessagesToDBCmd,

View file

@ -32,6 +32,7 @@ import { warnMember } from "./functions/warnMember";
import { Member } from "eris";
import { kickMember } from "./functions/kickMember";
import { banUserId } from "./functions/banUserId";
import { trimPluginDescription } from "../../utils";
const defaultOptions = {
config: {
@ -89,6 +90,14 @@ const defaultOptions = {
};
export const ModActionsPlugin = zeppelinPlugin<ModActionsPluginType>()("mod_actions", {
showInDocs: true,
info: {
prettyName: "Mod actions",
description: trimPluginDescription(`
This plugin contains the 'typical' mod actions such as warning, muting, kicking, banning, etc.
`),
},
configSchema: ConfigSchema,
defaultOptions,

View file

@ -56,6 +56,11 @@ let FIRST_CHECK_TIME = Date.now();
const FIRST_CHECK_INCREMENT = 5 * 1000;
export const MutesPlugin = zeppelinPlugin<MutesPluginType>()("mutes", {
showInDocs: true,
info: {
prettyName: "Mutes",
},
configSchema: ConfigSchema,
defaultOptions,

View file

@ -22,6 +22,8 @@ const defaultOptions: PluginOptions<NameHistoryPluginType> = {
};
export const NameHistoryPlugin = zeppelinPlugin<NameHistoryPluginType>()("name_history", {
showInDocs: false,
configSchema: ConfigSchema,
defaultOptions,

View file

@ -5,6 +5,7 @@ import { GuildPersistedData } from "src/data/GuildPersistedData";
import { GuildLogs } from "src/data/GuildLogs";
import { StoreDataEvt } from "./events/StoreDataEvt";
import { LoadDataEvt } from "./events/LoadDataEvt";
import { trimPluginDescription } from "../../utils";
const defaultOptions: PluginOptions<PersistPluginType> = {
config: {
@ -15,6 +16,15 @@ const defaultOptions: PluginOptions<PersistPluginType> = {
};
export const PersistPlugin = zeppelinPlugin<PersistPluginType>()("persist", {
showInDocs: true,
info: {
prettyName: "Persist",
description: trimPluginDescription(`
Re-apply roles or nicknames for users when they rejoin the server.
Mute roles are re-applied automatically, this plugin is not required for that.
`),
},
configSchema: ConfigSchema,
defaultOptions,

View file

@ -21,6 +21,11 @@ const defaultOptions: PluginOptions<PingableRolesPluginType> = {
};
export const PingableRolesPlugin = zeppelinPlugin<PingableRolesPluginType>()("pingable_roles", {
showInDocs: true,
info: {
prettyName: "Pingable roles",
},
configSchema: ConfigSchema,
defaultOptions,

View file

@ -28,6 +28,11 @@ const defaultOptions: PluginOptions<PostPluginType> = {
};
export const PostPlugin = zeppelinPlugin<PostPluginType>()("post", {
showInDocs: true,
info: {
prettyName: "Post",
},
configSchema: ConfigSchema,
defaultOptions,

View file

@ -30,6 +30,11 @@ const defaultOptions: PluginOptions<ReactionRolesPluginType> = {
};
export const ReactionRolesPlugin = zeppelinPlugin<ReactionRolesPluginType>()("reaction_roles", {
showInDocs: true,
info: {
prettyName: "Reaction roles",
},
configSchema: ConfigSchema,
defaultOptions,

View file

@ -22,6 +22,11 @@ const defaultOptions: PluginOptions<RemindersPluginType> = {
};
export const RemindersPlugin = zeppelinPlugin<RemindersPluginType>()("reminders", {
showInDocs: true,
info: {
prettyName: "Reminders",
},
configSchema: ConfigSchema,
defaultOptions,

View file

@ -6,6 +6,7 @@ import { AddRoleCmd } from "./commands/AddRoleCmd";
import { RemoveRoleCmd } from "./commands/RemoveRoleCmd";
import { MassAddRoleCmd } from "./commands/MassAddRoleCmd";
import { MassRemoveRoleCmd } from "./commands/MassRemoveRoleCmd";
import { trimPluginDescription } from "../../utils";
const defaultOptions: PluginOptions<RolesPluginType> = {
config: {
@ -30,6 +31,14 @@ const defaultOptions: PluginOptions<RolesPluginType> = {
};
export const RolesPlugin = zeppelinPlugin<RolesPluginType>()("roles", {
showInDocs: true,
info: {
prettyName: "Roles",
description: trimPluginDescription(`
Enables authorised users to add and remove whitelisted roles with a command.
`),
},
configSchema: ConfigSchema,
defaultOptions,

View file

@ -8,6 +8,7 @@ import { GuildChannel } from "eris";
export const AddRoleCmd = rolesCmd({
trigger: "addrole",
permission: "can_assign",
description: "Add a role to the specified member",
signature: {
member: ct.resolvedMember(),

View file

@ -8,6 +8,7 @@ import { stripObjectToScalars, verboseUserMention, resolveRoleId } from "src/uti
export const RemoveRoleCmd = rolesCmd({
trigger: "removerole",
permission: "can_assign",
description: "Remove a role from the specified member",
signature: {
member: ct.resolvedMember(),

View file

@ -14,6 +14,8 @@ const defaultOptions: PluginOptions<SelfGrantableRolesPluginType> = {
};
export const SelfGrantableRolesPlugin = zeppelinPlugin<SelfGrantableRolesPluginType>()("self_grantable_roles", {
showInDocs: true,
configSchema: ConfigSchema,
defaultOptions,

View file

@ -35,6 +35,11 @@ const defaultOptions: PluginOptions<SlowmodePluginType> = {
};
export const SlowmodePlugin = zeppelinPlugin<SlowmodePluginType>()("slowmode", {
showInDocs: true,
info: {
prettyName: "Slowmode",
},
configSchema: ConfigSchema,
defaultOptions,

View file

@ -8,6 +8,7 @@ import { GuildMutes } from "src/data/GuildMutes";
import { onMessageCreate } from "./util/onMessageCreate";
import { clearOldRecentActions } from "./util/clearOldRecentActions";
import { SpamVoiceJoinEvt, SpamVoiceSwitchEvt } from "./events/SpamVoiceEvt";
import { trimPluginDescription } from "../../utils";
const defaultOptions: PluginOptions<SpamPluginType> = {
config: {
@ -41,6 +42,15 @@ const defaultOptions: PluginOptions<SpamPluginType> = {
};
export const SpamPlugin = zeppelinPlugin<SpamPluginType>()("spam", {
showInDocs: true,
info: {
prettyName: "Spam protection",
description: trimPluginDescription(`
Basic spam detection and auto-muting.
For more advanced spam filtering, check out the Automod plugin!
`),
},
configSchema: ConfigSchema,
defaultOptions,

View file

@ -27,6 +27,8 @@ const defaultOptions: PluginOptions<StarboardPluginType> = {
};
export const StarboardPlugin = zeppelinPlugin<StarboardPluginType>()("starboard", {
showInDocs: true,
configSchema: ConfigSchema,
defaultOptions,

View file

@ -45,6 +45,11 @@ const defaultOptions: PluginOptions<TagsPluginType> = {
};
export const TagsPlugin = zeppelinPlugin<TagsPluginType>()("tags", {
showInDocs: true,
info: {
prettyName: "Tags",
},
configSchema: ConfigSchema,
defaultOptions,

View file

@ -5,6 +5,8 @@ import { UsernameSaverPluginType } from "./types";
import { MessageCreateUpdateUsernameEvt, VoiceChannelJoinUpdateUsernameEvt } from "./events/UpdateUsernameEvts";
export const UsernameSaverPlugin = zeppelinPlugin<UsernameSaverPluginType>()("username_saver", {
showInDocs: false,
// prettier-ignore
events: [
MessageCreateUpdateUsernameEvt,

View file

@ -78,6 +78,11 @@ const defaultOptions: PluginOptions<UtilityPluginType> = {
};
export const UtilityPlugin = zeppelinPlugin<UtilityPluginType>()("utility", {
showInDocs: true,
info: {
prettyName: "Utility",
},
configSchema: ConfigSchema,
defaultOptions,

View file

@ -8,11 +8,16 @@ const defaultOptions: PluginOptions<WelcomeMessagePluginType> = {
config: {
send_dm: false,
send_to_channel: null,
message: "",
message: null,
},
};
export const WelcomeMessagePlugin = zeppelinPlugin<WelcomeMessagePluginType>()("welcome_message", {
showInDocs: true,
info: {
prettyName: "Welcome message",
},
configSchema: ConfigSchema,
defaultOptions,