diff --git a/content/docs/botserv.md b/content/docs/botserv.md new file mode 100644 index 0000000..c71c993 --- /dev/null +++ b/content/docs/botserv.md @@ -0,0 +1,32 @@ +# BotServ + +Bot services — channel bots that speak, moderate, and auto-respond. Message it with +`/msg BotServ `. + +## Assigning & speaking + +| Command | Syntax | Description | +| --- | --- | --- | +| ASSIGN | `ASSIGN <#channel> ` | Put a bot in a channel | +| UNASSIGN | `UNASSIGN <#channel>` | Remove a channel's bot | +| INFO | `INFO ` | Show bot / channel settings | +| SAY | `SAY <#channel> ` | Speak through the bot | +| ACT | `ACT <#channel> ` | Action (`/me`) through the bot | +| BOTLIST | `BOTLIST` | List assignable bots | + +## Behaviour + +| Command | Syntax | Description | +| --- | --- | --- | +| SET | `SET <#channel> ` · `SET PRIVATE ` | Configure bot behaviour | +| KICK | `KICK <#channel> [params]` · `KICK <#channel> TTB \| TEST ` | Configure kickers | +| BADWORDS | `BADWORDS <#channel> ADD\|DEL\|LIST\|CLEAR [pattern]` | Manage badword patterns | +| TRIGGER | `TRIGGER <#channel> ADD \|[.\|]` · `DEL ` · `LIST` · `CLEAR` | Manage auto-responses | +| COPY | `COPY <#source> <#dest>` | Clone bot settings | + +## Operator + +| Command | Syntax | Description | +| --- | --- | --- | +| AUTOASSIGN | `AUTOASSIGN \| OFF` | Default bot for new channels | +| BOT | `BOT ADD\|CHANGE\|DEL\|LIST` | Manage the bots themselves | diff --git a/content/docs/channel-modes.md b/content/docs/channel-modes.md new file mode 100644 index 0000000..4626994 --- /dev/null +++ b/content/docs/channel-modes.md @@ -0,0 +1,84 @@ +# Channel modes + +Set with `MODE <#channel> + [param]`. Modes are grouped by the four CHANMODES types the server +advertises in ISUPPORT: **A** (list modes, always take a parameter), **B** (always take a parameter), +**C** (parameter only when set), **D** (flag, no parameter). Membership **prefixes** are listed at +the end. + +## Type A — list modes + +Each takes a parameter; using it with no parameter queries the list. + +| Mode | Name | Description | +| --- | --- | --- | +| `b` | ban | Ban a matching `nick!user@host` or [extban](/docs/extbans) from the channel | +| `e` | ban exception | Exempt a matching mask from bans | +| `I` | invite exception | A matching mask may join a `+i` channel without an invite | +| `g` | spamfilter | Per-channel message word/glob filters (matches message text) | +| `X` | exemptchanops | `:` — exempt members at/above a rank from a named restriction | +| `w` | autoop | `:` — auto-grant a status prefix on join | + +## Type B — always take a parameter + +| Mode | Name | Description | +| --- | --- | --- | +| `k` | key | Channel password required to join | + +## Type C — parameter only when set + +| Mode | Name | Param | Description | +| --- | --- | --- | --- | +| `l` | limit | `` | Maximum member count | +| `f` | message flood | `[*]:` | Kick a user exceeding the rate; leading `*` also bans | +| `j` | join flood | `:` | Lock new joins for 60s after the threshold | +| `F` | nick flood | `:` | Block nick changes for 60s after the threshold | +| `L` | redirect | `<#target>` | Send joiners to another channel when `+l`-full | +| `H` | history | `[:]` | Replay recent messages to joiners | +| `B` | anticaps | `<1..100>` | Reject messages that are ≥ this % uppercase (ops exempt) | +| `J` | kicknorejoin | `` | Block rejoin for N seconds after a kick | +| `d` | delaymsg | `` | New members can't speak for N seconds (voiced+ exempt) | +| `K` | norepeat | `` | Block a message identical to one of the sender's previous N lines | + +## Type D — flag modes + +| Mode | Name | Description | +| --- | --- | --- | +| `A` | allowinvite | Any member may use `INVITE` | +| `C` | noctcp | Block CTCPs to the channel | +| `D` | delayjoin | Hide joining members until they speak or gain a prefix | +| `G` | censor | Apply the network word censor to messages | +| `M` | regmoderated | Only registered (logged-in) users may speak | +| `N` | nonick | Block nick changes by members while in the channel | +| `O` | operonly | Only IRC operators may join (oper-set) | +| `P` | permanent | Channel persists with no members (oper-set) | +| `Q` | nokicks | Block `KICK` in the channel | +| `R` | regonly | Only registered users may join | +| `S` | stripcolor | Strip mIRC colour/formatting from messages | +| `T` | nonotice | Block `NOTICE`s to the channel | +| `U` | opmoderated | Messages from unprivileged users go only to ops | +| `c` | nocolor | Block messages containing colour/formatting | +| `i` | inviteonly | Require an invite (or `+I` match) to join | +| `m` | moderated | Only voiced+ may speak | +| `n` | noexternal | Block messages from users not in the channel | +| `p` | private | Private channel | +| `r` | registered | Registered channel — set only by services | +| `s` | secret | Secret channel (hidden from LIST/WHOIS) | +| `t` | topiclock | Only ops may change the topic | +| `z` | secureonly | Only TLS users may join (settable only when all members are on TLS) | + +## Prefix / status modes + +Take a nick parameter; ordered high → low rank. Sigils and the ranks required to grant/revoke are +configurable via `customprefix`. + +| Mode | Prefix | Name | Rank | +| --- | --- | --- | --- | +| `y` | `!` | oper prefix (network staff) | 60 | +| `q` | `~` | owner / founder | 50 | +| `a` | `&` | admin / protected | 40 | +| `o` | `@` | op | 30 | +| `h` | `%` | halfop | 20 | +| `v` | `+` | voice | 10 | + +The `!` oper prefix only exists when `operprefix` or `ojoin` is enabled. Granting or removing a prefix +requires out-ranking both the configured set/unset rank and the target's current top rank. diff --git a/content/docs/chanserv.md b/content/docs/chanserv.md new file mode 100644 index 0000000..965f7ab --- /dev/null +++ b/content/docs/chanserv.md @@ -0,0 +1,57 @@ +# ChanServ + +Channel services — register and manage channels, their access lists, modes, and topics. Message it +with `/msg ChanServ `. + +## Registration & info + +| Command | Syntax | Description | +| --- | --- | --- | +| REGISTER | `REGISTER <#channel>` | Register a channel | +| INFO | `INFO <#channel>` | Show channel information | +| LIST | `LIST` | List registered channels | +| DROP | `DROP <#channel>` | Delete the registration | +| SET | `SET <#channel>