Constructors
constructor
- new Context<T>(commandName, commandMessage): Context<T>
Parameters
- commandName: string
- commandMessage: T
Properties
ReadonlycommandName
commandName: string
Accessors
attachments
- get attachments(): Collection<string, Attachment>
Returns Collection<string, Attachment>
channel
- get channel(): GuildTextBasedChannel
Returns GuildTextBasedChannel
channelId
- get channelId(): string
Returns string
config
- get config(): undefined | {
ai_automod?: {
actions: (
| {
delete_timeframe?: number;
duration?: number;
notify?: boolean;
reason?: string;
type: "ban";
}
| {
notify?: boolean;
reason?: string;
type: "kick";
}
| {
duration?: number;
notify?: boolean;
reason?: string;
type: "mute";
}
| {
duration?: number;
mode: "give" | "take";
notify?: boolean;
reason?: string;
roles: string[];
type: "role";
}
| {
type: "none";
}
| {
notify?: boolean;
reason?: string;
type: "warn";
}
| {
notify: true;
reason?: string;
type: "verbal_warn";
}
| {
count: number;
notify?: boolean;
reason?: string;
type: "clear";
}
| {
type: "delete_message";
})[];
automatic_actions?: {
enabled: boolean;
stops: Record<string, (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[]>;
};
enabled: boolean;
evaluate_after_attempts: number;
evaluation_cache_expires_in: number;
exception_regex_patterns: (string | [string, string])[];
max_individual_scores?: {
flirtation: number;
identity_attack: number;
incoherent: number;
insult: number;
obscene: number;
profanity: number;
severe_toxicity: number;
sexually_explicit: number;
spam: number;
threat: number;
toxicity: number;
unsubstantial: number;
};
max_single_score: number;
max_total_score: number;
};
anti_member_join?: {
ban_duration?: number;
behavior: "ban" | "kick";
custom_reason?: string;
enabled: boolean;
ignore_bots: boolean;
};
antispam?: {
actions: (
| {
delete_timeframe?: number;
duration?: number;
notify?: boolean;
reason?: string;
type: "ban";
}
| {
notify?: boolean;
reason?: string;
type: "kick";
}
| {
duration?: number;
notify?: boolean;
reason?: string;
type: "mute";
}
| {
duration?: number;
mode: "give" | "take";
notify?: boolean;
reason?: string;
roles: string[];
type: "role";
}
| {
type: "none";
}
| {
notify?: boolean;
reason?: string;
type: "warn";
}
| {
notify: true;
reason?: string;
type: "verbal_warn";
}
| {
count: number;
notify?: boolean;
reason?: string;
type: "clear";
}
| {
type: "delete_message";
})[];
channels: {
list: string[];
mode: "exclude" | "include";
};
enabled: boolean;
limit: number;
timeframe: number;
};
auto_role?: {
enabled: boolean;
ignore_bots: boolean;
roles: string[];
};
auto_triggers?: {
enabled: boolean;
global_disabled_channels: string[];
triggers: ({
buttons: {
label: string;
url: string;
}[];
enabled_channels: string[] | "all";
ignore_roles: string[];
ignore_users: string[];
message: string;
type: "sticky_message";
} | {
action: "assign_role" | "take_away_role";
enabled_channels: string[] | "all";
ignore_roles: string[];
ignore_users: string[];
must_contain: string[];
must_not_contain: string[];
roles: string[];
type: "member_status_update";
})[];
};
bump_reminder?: {
disabled_channels: string[];
enabled?: boolean;
on_bump_content?: string;
remind_after: number;
reminder_content?: string;
};
channel_archives?: {
archive_category: string;
enabled: boolean;
ignored_channels: string[];
};
commands: {
channels: {
list: string[];
mode: "exclude" | "include";
};
disabled_commands: string[];
mention_prefix: boolean;
moderation_command_behavior: "delete" | "default";
ratelimiting?: {
block_duration: number;
enabled: boolean;
max_attempts: number;
overrides: Record<string, {
block_duration: number;
enabled: boolean;
max_attempts: number;
timeframe: number;
}>;
timeframe: number;
};
rerun_on_edit: boolean;
respond_on_precondition_fail: boolean;
troll_command_immune_users: string[];
};
debug_mode: boolean;
echoing?: {
allow_mentions: boolean;
};
extensions?: {
disabled_extensions: string[];
enabled?: boolean;
installed_extensions: string[];
};
infractions: {
dm_fallback: "none" | "create_channel" | "create_thread";
dm_fallback_channel_expires_in: number;
dm_fallback_parent_channel?: string;
points: {
ban: number;
clear: number;
kick: number;
massban: number;
masskick: number;
mod_message: number;
mute: number;
note: number;
role: number;
softban: number;
tempban: number;
timeout: number;
unban: number;
warning: number;
};
reason_template_placeholder_wrapper: string;
reason_templates: Record<string, string>;
send_ids_to_user: boolean;
};
logging?: {
bulk_delete_send_json: boolean;
default_enabled: boolean;
enabled: boolean;
exclusions: {
events?: LogEventType[];
mode: "exclude" | "include";
snowflakes: string[];
type: "channel" | "user" | "category_channel";
}[];
global_ignored_channels: string[];
hooks: Record<string, string>;
overrides: ({
channel: string;
enabled: true;
events: [LogEventType, ...LogEventType[]];
} | {
enabled: false;
events: [LogEventType, ...LogEventType[]];
})[];
primary_channel?: string;
unsubscribed_events: LogEventType[];
};
member_verification?: {
channel?: string;
conditions: {
age_less_than?: number;
always: boolean;
no_avatar?: boolean;
};
enabled: boolean;
expired_actions: (
| {
delete_timeframe?: number;
duration?: number;
notify?: boolean;
reason?: string;
type: "ban";
}
| {
notify?: boolean;
reason?: string;
type: "kick";
}
| {
duration?: number;
notify?: boolean;
reason?: string;
type: "mute";
}
| {
duration?: number;
mode: "give" | "take";
notify?: boolean;
reason?: string;
roles: string[];
type: "role";
}
| {
type: "none";
}
| {
notify?: boolean;
reason?: string;
type: "warn";
}
| {
notify: true;
reason?: string;
type: "verbal_warn";
}
| {
count: number;
notify?: boolean;
reason?: string;
type: "clear";
}
| {
type: "delete_message";
})[];
max_duration?: number;
method: "channel_interaction" | "dm_interaction";
success_message?: string;
unverified_roles: string[];
verification_message?: string;
verified_roles: string[];
};
message_reporting?: {
action_required_permissions: {
ban: string[];
ignore: string[];
kick: string[];
mute: string[];
warn: string[];
};
enabled: boolean;
logging_channel?: string;
permission_level?: number;
permissions: string[];
roles: string[];
users: string[];
};
muting?: {
role?: string;
};
permissions: {
check_discord_permissions:
| "never"
| "always"
| "during_automod"
| "during_manual_actions";
command_permission_mode?: "ignore" | "overwrite" | "check";
invincible?: {
roles: string[];
users: string[];
};
mode?: "discord" | "levels" | "layered";
};
prefix: string;
quick_mute?: {
default_duration?: number;
enabled: boolean;
mute_clear_emoji?: string;
mute_emoji?: string;
reason?: string;
};
raid_protection?: {
action:
| "none"
| "lock"
| "lock_and_antijoin"
| "antijoin"
| "auto";
channel_mode: "exclude" | "include";
channels: string[];
enabled: boolean;
member_actions: (
| {
delete_timeframe?: number;
duration?: number;
notify?: boolean;
reason?: string;
type: "ban";
}
| {
notify?: boolean;
reason?: string;
type: "kick";
}
| {
duration?: number;
notify?: boolean;
reason?: string;
type: "mute";
}
| {
duration?: number;
mode: "give" | "take";
notify?: boolean;
reason?: string;
roles: string[];
type: "role";
}
| {
type: "none";
}
| {
notify?: boolean;
reason?: string;
type: "warn";
}
| {
notify: true;
reason?: string;
type: "verbal_warn";
}
| {
count: number;
notify?: boolean;
reason?: string;
type: "clear";
}
| {
type: "delete_message";
})[];
send_log: boolean;
threshold: number;
timeframe: number;
};
reaction_roles?: {
enabled: boolean;
ignore_bots: boolean;
ratelimiting?: {
block_duration: number;
enabled: boolean;
max_attempts: number;
timeframe: number;
};
};
rule_moderation?: {
enabled: boolean;
global_disabled_channels: string[];
rules: (
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
domains: string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
scan_links_only: boolean;
type: "domain_filter";
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
data: string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
type: "mime_type_filter";
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
data: string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
type: "file_extension_filter";
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
allow_internal_invites: boolean;
allowed_invite_codes: string[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
type: "anti_invite";
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
patterns: (string | [string, string])[];
type: "regex_filter";
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
max_repeated_chars: number;
max_repeated_words: number;
mode: "normal" | "invert";
name: null | string;
type: "repeated_text_filter";
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
max_mentions: number;
max_role_mentions: number;
max_user_mentions: number;
mode: "normal" | "invert";
name: null | string;
type: "mass_mention_filter";
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
inherit_from_word_filter: boolean;
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
scan_embeds: boolean;
tokens: string[];
type: "image_filter";
words: string[];
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
inherit_from_word_filter: boolean;
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
tokens: string[];
type: "embed_filter";
words: string[];
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
excluded_domains_regex: string[];
excluded_link_regex: string[];
excluded_links: string[];
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
tokens: string[];
type: "EXPERIMENTAL_url_crawl";
words: string[];
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
score_thresholds: {
hentai: number;
porn: number;
sexy: number;
};
type: "EXPERIMENTAL_nsfw_filter";
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
normalize: boolean;
tokens: string[];
type: "word_filter";
words: string[];
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
check_mime_types: boolean;
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
hashes: Record<string, null | string>;
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
type: "file_filter";
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
flirtation_threshold: number;
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
identity_attack_threshold: number;
insult_threshold: number;
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
profanity_threshold: number;
severe_toxicity_threshold: number;
sexual_explicit_threshold: number;
threat_threshold: number;
toxicity_threshold: number;
type: "ai_scan";
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
normalize: boolean;
regex_patterns: string[];
tokens: string[];
type: "profile_filter";
words: string[];
})[];
};
survey_system?: {
default_log_channel?: string;
enabled: boolean;
surveys: Record<string, {
description?: string;
end_message?: string;
log_channel?: string;
name: string;
questions: [{
default_value?: string;
maxLength?: number;
minLength?: number;
placeholder?: string;
question: string;
required: boolean;
type: "paragraph" | "short";
}, ...{
default_value?: string;
maxLength?: number;
minLength?: number;
placeholder?: string;
question: string;
required: boolean;
type: "paragraph" | "short";
}[]];
required_channels: string[];
required_permissions: string[];
required_roles: string[];
required_users: string[];
}>;
};
welcomer?: {
channel: string;
custom_message?: string;
delete_after?: number;
enabled: boolean;
force_embeds: boolean;
forced_embed_color?: number;
mention: boolean;
randomize: boolean;
say_hi_button?: {
emoji: string;
enabled: boolean;
expire_after: null | number;
label: string;
reply: string;
};
};
} Returns undefined | {
ai_automod?: {
actions: (
| {
delete_timeframe?: number;
duration?: number;
notify?: boolean;
reason?: string;
type: "ban";
}
| {
notify?: boolean;
reason?: string;
type: "kick";
}
| {
duration?: number;
notify?: boolean;
reason?: string;
type: "mute";
}
| {
duration?: number;
mode: "give" | "take";
notify?: boolean;
reason?: string;
roles: string[];
type: "role";
}
| {
type: "none";
}
| {
notify?: boolean;
reason?: string;
type: "warn";
}
| {
notify: true;
reason?: string;
type: "verbal_warn";
}
| {
count: number;
notify?: boolean;
reason?: string;
type: "clear";
}
| {
type: "delete_message";
})[];
automatic_actions?: {
enabled: boolean;
stops: Record<string, (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[]>;
};
enabled: boolean;
evaluate_after_attempts: number;
evaluation_cache_expires_in: number;
exception_regex_patterns: (string | [string, string])[];
max_individual_scores?: {
flirtation: number;
identity_attack: number;
incoherent: number;
insult: number;
obscene: number;
profanity: number;
severe_toxicity: number;
sexually_explicit: number;
spam: number;
threat: number;
toxicity: number;
unsubstantial: number;
};
max_single_score: number;
max_total_score: number;
};
anti_member_join?: {
ban_duration?: number;
behavior: "ban" | "kick";
custom_reason?: string;
enabled: boolean;
ignore_bots: boolean;
};
antispam?: {
actions: (
| {
delete_timeframe?: number;
duration?: number;
notify?: boolean;
reason?: string;
type: "ban";
}
| {
notify?: boolean;
reason?: string;
type: "kick";
}
| {
duration?: number;
notify?: boolean;
reason?: string;
type: "mute";
}
| {
duration?: number;
mode: "give" | "take";
notify?: boolean;
reason?: string;
roles: string[];
type: "role";
}
| {
type: "none";
}
| {
notify?: boolean;
reason?: string;
type: "warn";
}
| {
notify: true;
reason?: string;
type: "verbal_warn";
}
| {
count: number;
notify?: boolean;
reason?: string;
type: "clear";
}
| {
type: "delete_message";
})[];
channels: {
list: string[];
mode: "exclude" | "include";
};
enabled: boolean;
limit: number;
timeframe: number;
};
auto_role?: {
enabled: boolean;
ignore_bots: boolean;
roles: string[];
};
auto_triggers?: {
enabled: boolean;
global_disabled_channels: string[];
triggers: ({
buttons: {
label: string;
url: string;
}[];
enabled_channels: string[] | "all";
ignore_roles: string[];
ignore_users: string[];
message: string;
type: "sticky_message";
} | {
action: "assign_role" | "take_away_role";
enabled_channels: string[] | "all";
ignore_roles: string[];
ignore_users: string[];
must_contain: string[];
must_not_contain: string[];
roles: string[];
type: "member_status_update";
})[];
};
bump_reminder?: {
disabled_channels: string[];
enabled?: boolean;
on_bump_content?: string;
remind_after: number;
reminder_content?: string;
};
channel_archives?: {
archive_category: string;
enabled: boolean;
ignored_channels: string[];
};
commands: {
channels: {
list: string[];
mode: "exclude" | "include";
};
disabled_commands: string[];
mention_prefix: boolean;
moderation_command_behavior: "delete" | "default";
ratelimiting?: {
block_duration: number;
enabled: boolean;
max_attempts: number;
overrides: Record<string, {
block_duration: number;
enabled: boolean;
max_attempts: number;
timeframe: number;
}>;
timeframe: number;
};
rerun_on_edit: boolean;
respond_on_precondition_fail: boolean;
troll_command_immune_users: string[];
};
debug_mode: boolean;
echoing?: {
allow_mentions: boolean;
};
extensions?: {
disabled_extensions: string[];
enabled?: boolean;
installed_extensions: string[];
};
infractions: {
dm_fallback: "none" | "create_channel" | "create_thread";
dm_fallback_channel_expires_in: number;
dm_fallback_parent_channel?: string;
points: {
ban: number;
clear: number;
kick: number;
massban: number;
masskick: number;
mod_message: number;
mute: number;
note: number;
role: number;
softban: number;
tempban: number;
timeout: number;
unban: number;
warning: number;
};
reason_template_placeholder_wrapper: string;
reason_templates: Record<string, string>;
send_ids_to_user: boolean;
};
logging?: {
bulk_delete_send_json: boolean;
default_enabled: boolean;
enabled: boolean;
exclusions: {
events?: LogEventType[];
mode: "exclude" | "include";
snowflakes: string[];
type: "channel" | "user" | "category_channel";
}[];
global_ignored_channels: string[];
hooks: Record<string, string>;
overrides: ({
channel: string;
enabled: true;
events: [LogEventType, ...LogEventType[]];
} | {
enabled: false;
events: [LogEventType, ...LogEventType[]];
})[];
primary_channel?: string;
unsubscribed_events: LogEventType[];
};
member_verification?: {
channel?: string;
conditions: {
age_less_than?: number;
always: boolean;
no_avatar?: boolean;
};
enabled: boolean;
expired_actions: (
| {
delete_timeframe?: number;
duration?: number;
notify?: boolean;
reason?: string;
type: "ban";
}
| {
notify?: boolean;
reason?: string;
type: "kick";
}
| {
duration?: number;
notify?: boolean;
reason?: string;
type: "mute";
}
| {
duration?: number;
mode: "give" | "take";
notify?: boolean;
reason?: string;
roles: string[];
type: "role";
}
| {
type: "none";
}
| {
notify?: boolean;
reason?: string;
type: "warn";
}
| {
notify: true;
reason?: string;
type: "verbal_warn";
}
| {
count: number;
notify?: boolean;
reason?: string;
type: "clear";
}
| {
type: "delete_message";
})[];
max_duration?: number;
method: "channel_interaction" | "dm_interaction";
success_message?: string;
unverified_roles: string[];
verification_message?: string;
verified_roles: string[];
};
message_reporting?: {
action_required_permissions: {
ban: string[];
ignore: string[];
kick: string[];
mute: string[];
warn: string[];
};
enabled: boolean;
logging_channel?: string;
permission_level?: number;
permissions: string[];
roles: string[];
users: string[];
};
muting?: {
role?: string;
};
permissions: {
check_discord_permissions:
| "never"
| "always"
| "during_automod"
| "during_manual_actions";
command_permission_mode?: "ignore" | "overwrite" | "check";
invincible?: {
roles: string[];
users: string[];
};
mode?: "discord" | "levels" | "layered";
};
prefix: string;
quick_mute?: {
default_duration?: number;
enabled: boolean;
mute_clear_emoji?: string;
mute_emoji?: string;
reason?: string;
};
raid_protection?: {
action:
| "none"
| "lock"
| "lock_and_antijoin"
| "antijoin"
| "auto";
channel_mode: "exclude" | "include";
channels: string[];
enabled: boolean;
member_actions: (
| {
delete_timeframe?: number;
duration?: number;
notify?: boolean;
reason?: string;
type: "ban";
}
| {
notify?: boolean;
reason?: string;
type: "kick";
}
| {
duration?: number;
notify?: boolean;
reason?: string;
type: "mute";
}
| {
duration?: number;
mode: "give" | "take";
notify?: boolean;
reason?: string;
roles: string[];
type: "role";
}
| {
type: "none";
}
| {
notify?: boolean;
reason?: string;
type: "warn";
}
| {
notify: true;
reason?: string;
type: "verbal_warn";
}
| {
count: number;
notify?: boolean;
reason?: string;
type: "clear";
}
| {
type: "delete_message";
})[];
send_log: boolean;
threshold: number;
timeframe: number;
};
reaction_roles?: {
enabled: boolean;
ignore_bots: boolean;
ratelimiting?: {
block_duration: number;
enabled: boolean;
max_attempts: number;
timeframe: number;
};
};
rule_moderation?: {
enabled: boolean;
global_disabled_channels: string[];
rules: (
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
domains: string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
scan_links_only: boolean;
type: "domain_filter";
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
data: string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
type: "mime_type_filter";
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
data: string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
type: "file_extension_filter";
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
allow_internal_invites: boolean;
allowed_invite_codes: string[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
type: "anti_invite";
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
patterns: (string | [string, string])[];
type: "regex_filter";
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
max_repeated_chars: number;
max_repeated_words: number;
mode: "normal" | "invert";
name: null | string;
type: "repeated_text_filter";
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
max_mentions: number;
max_role_mentions: number;
max_user_mentions: number;
mode: "normal" | "invert";
name: null | string;
type: "mass_mention_filter";
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
inherit_from_word_filter: boolean;
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
scan_embeds: boolean;
tokens: string[];
type: "image_filter";
words: string[];
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
inherit_from_word_filter: boolean;
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
tokens: string[];
type: "embed_filter";
words: string[];
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
excluded_domains_regex: string[];
excluded_link_regex: string[];
excluded_links: string[];
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
tokens: string[];
type: "EXPERIMENTAL_url_crawl";
words: string[];
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
score_thresholds: {
hentai: number;
porn: number;
sexy: number;
};
type: "EXPERIMENTAL_nsfw_filter";
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
normalize: boolean;
tokens: string[];
type: "word_filter";
words: string[];
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
check_mime_types: boolean;
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
hashes: Record<string, null | string>;
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
type: "file_filter";
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
flirtation_threshold: number;
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
identity_attack_threshold: number;
insult_threshold: number;
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
profanity_threshold: number;
severe_toxicity_threshold: number;
sexual_explicit_threshold: number;
threat_threshold: number;
toxicity_threshold: number;
type: "ai_scan";
}
| {
actions: (
| {
delete_timeframe?: (...) | (...);
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "ban";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "kick";
}
| {
duration?: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "mute";
}
| {
duration?: (...) | (...);
mode: (...) | (...);
notify?: (...) | (...) | (...);
reason?: (...) | (...);
roles: (...)[];
type: "role";
}
| {
type: "none";
}
| {
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "warn";
}
| {
notify: true;
reason?: (...) | (...);
type: "verbal_warn";
}
| {
count: number;
notify?: (...) | (...) | (...);
reason?: (...) | (...);
type: "clear";
}
| {
type: "delete_message";
})[];
bail: boolean;
bypasses: null | string[];
enabled: boolean;
exceptions?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
for?: {
channels?: (...)[];
roles?: (...)[];
users?: (...)[];
};
is_bypasser: boolean;
mode: "normal" | "invert";
name: null | string;
normalize: boolean;
regex_patterns: string[];
tokens: string[];
type: "profile_filter";
words: string[];
})[];
};
survey_system?: {
default_log_channel?: string;
enabled: boolean;
surveys: Record<string, {
description?: string;
end_message?: string;
log_channel?: string;
name: string;
questions: [{
default_value?: string;
maxLength?: number;
minLength?: number;
placeholder?: string;
question: string;
required: boolean;
type: "paragraph" | "short";
}, ...{
default_value?: string;
maxLength?: number;
minLength?: number;
placeholder?: string;
question: string;
required: boolean;
type: "paragraph" | "short";
}[]];
required_channels: string[];
required_permissions: string[];
required_roles: string[];
required_users: string[];
}>;
};
welcomer?: {
channel: string;
custom_message?: string;
delete_after?: number;
enabled: boolean;
force_embeds: boolean;
forced_embed_color?: number;
mention: boolean;
randomize: boolean;
say_hi_button?: {
emoji: string;
enabled: boolean;
expire_after: null | number;
label: string;
reply: string;
};
};
}
guild
- get guild(): Guild
Returns Guild
guildId
- get guildId(): string
Returns string
member
- get member(): null | GuildMember
Returns null | GuildMember
memberId
- get memberId(): null | string
Returns null | string
systemConfig
- get systemConfig(): {
$schema?: string;
api: {
enabled: boolean;
server_status:
| "error"
| "operational"
| "degraded"
| "partial_outage"
| "major_outage"
| "maintenance";
server_status_description?: string;
server_status_started_at?: Date;
};
command_permission_mode: "ignore" | "overwrite" | "check";
commands: {
global_disabled: string[];
groups: Record<string, string[]>;
mention_prefix: boolean;
register_application_commands_on_boot:
| "none"
| "guild"
| "always_global"
| "auto_global";
system_banned_users: string[];
};
emoji_resolve_strategy: "both" | "home_guild" | "application";
enable_file_filter: boolean;
extensions: {
default_mode: "enable_all" | "disable_all";
};
log_server?: {
auto_start: boolean;
enabled: boolean;
};
logging?: {
enabled: boolean;
webhook_url: string;
};
presence?: {
name?: string;
status?:
| "online"
| "idle"
| "dnd"
| "invisible";
type:
| "Playing"
| "Streaming"
| "Listening"
| "Watching"
| "Custom"
| "Competing";
url?: string;
};
restart_exit_code: number;
snippets?: {
save_attachments?: boolean;
};
statistics?: {
enabled: boolean;
sync_delay: number;
};
sync_emojis: boolean;
system_admins: string[];
trust_proxies?: number;
} Returns {
$schema?: string;
api: {
enabled: boolean;
server_status:
| "error"
| "operational"
| "degraded"
| "partial_outage"
| "major_outage"
| "maintenance";
server_status_description?: string;
server_status_started_at?: Date;
};
command_permission_mode: "ignore" | "overwrite" | "check";
commands: {
global_disabled: string[];
groups: Record<string, string[]>;
mention_prefix: boolean;
register_application_commands_on_boot:
| "none"
| "guild"
| "always_global"
| "auto_global";
system_banned_users: string[];
};
emoji_resolve_strategy: "both" | "home_guild" | "application";
enable_file_filter: boolean;
extensions: {
default_mode: "enable_all" | "disable_all";
};
log_server?: {
auto_start: boolean;
enabled: boolean;
};
logging?: {
enabled: boolean;
webhook_url: string;
};
presence?: {
name?: string;
status?:
| "online"
| "idle"
| "dnd"
| "invisible";
type:
| "Playing"
| "Streaming"
| "Listening"
| "Watching"
| "Custom"
| "Competing";
url?: string;
};
restart_exit_code: number;
snippets?: {
save_attachments?: boolean;
};
statistics?: {
enabled: boolean;
sync_delay: number;
};
sync_emojis: boolean;
system_admins: string[];
trust_proxies?: number;
}
Optional$schema?: string
api: {
enabled: boolean;
server_status:
| "error"
| "operational"
| "degraded"
| "partial_outage"
| "major_outage"
| "maintenance";
server_status_description?: string;
server_status_started_at?: Date;
}
enabled: boolean
server_status:
| "error"
| "operational"
| "degraded"
| "partial_outage"
| "major_outage"
| "maintenance"
Optionalserver_status_description?: string
Optionalserver_status_started_at?: Date
command_permission_mode: "ignore" | "overwrite" | "check"
commands: {
global_disabled: string[];
groups: Record<string, string[]>;
mention_prefix: boolean;
register_application_commands_on_boot:
| "none"
| "guild"
| "always_global"
| "auto_global";
system_banned_users: string[];
}
global_disabled: string[]
groups: Record<string, string[]>
mention_prefix: boolean
register_application_commands_on_boot:
| "none"
| "guild"
| "always_global"
| "auto_global"
system_banned_users: string[]
emoji_resolve_strategy: "both" | "home_guild" | "application"
enable_file_filter: boolean
extensions: {
default_mode: "enable_all" | "disable_all";
}
default_mode: "enable_all" | "disable_all"
Optionallog_server?: {
auto_start: boolean;
enabled: boolean;
}
auto_start: boolean
enabled: boolean
Optionallogging?: {
enabled: boolean;
webhook_url: string;
}
enabled: boolean
webhook_url: string
Optionalpresence?: {
name?: string;
status?:
| "online"
| "idle"
| "dnd"
| "invisible";
type:
| "Playing"
| "Streaming"
| "Listening"
| "Watching"
| "Custom"
| "Competing";
url?: string;
}
Optionalname?: string
Optionalstatus?:
| "online"
| "idle"
| "dnd"
| "invisible"
type:
| "Playing"
| "Streaming"
| "Listening"
| "Watching"
| "Custom"
| "Competing"
Optionalurl?: string
restart_exit_code: number
Optionalsnippets?: {
save_attachments?: boolean;
}
Optionalsave_attachments?: boolean
Optionalstatistics?: {
enabled: boolean;
sync_delay: number;
}
enabled: boolean
sync_delay: number
sync_emojis: boolean
system_admins: string[]
Optionaltrust_proxies?: number
Abstractuser
- get user(): User
Returns User
AbstractuserId
- get userId(): string
Returns string
Methods
defer
- defer(options?): Promise<undefined | InteractionResponse<boolean>>
Parameters
Optionaloptions: InteractionDeferReplyOptions
Returns Promise<undefined | InteractionResponse<boolean>>
emoji
- emoji(name): "" | GuildEmoji | ApplicationEmoji
Returns "" | GuildEmoji | ApplicationEmoji
error
- error(options): Promise<Message<boolean>>
Parameters
- options: Parameters<T["reply"]>[0]
Returns Promise<Message<boolean>>
isMessageContextMenu
- isMessageContextMenu(): this is InteractionContext<MessageContextMenuCommandInteraction<CacheType>>
Returns this is InteractionContext<MessageContextMenuCommandInteraction<CacheType>>
reply
- reply(options): Promise<Message<boolean>>
Parameters
- options: Parameters<T["reply"]>[0]
Returns Promise<Message<boolean>>
replyEmbed
- replyEmbed(...embeds): Promise<Message<boolean>>
Parameters
Rest...embeds: (APIEmbed | EmbedBuilder)[]
Returns Promise<Message<boolean>>
success
- success(options): Promise<Message<boolean>>
Parameters
- options: Parameters<T["reply"]>[0]
Returns Promise<Message<boolean>>