InspIRCd v4 is still early in development!
If you use this branch you may experience crashes, weird behaviour, and unannounced breaking changes.
You probably want to use InspIRCd v3 instead.
The "permchannels" Module (v4)
Description
This module adds channel mode P
(permanent) which prevents the channel from being deleted when the last user leaves.
Configuration
To load this module use the following <module>
tag:
<module name="permchannels">
<permchanneldb>
The <permchanneldb>
tag defines settings about how the permchannels module should behave. This tag can only be defined once.
Name | Type | Default Value | Description |
---|---|---|---|
filename | Text | None | If defined then the location to write a permchannels configuration file to. |
listmodes | Boolean | No | Whether to save list modes to the permchannels configuration file. |
operonly | Boolean | Yes | Whether channel mode P (permanent) can only be set by server operators. Changing this is not recommended. |
saveperiod | Duration | 5s | The time period between attempts to check whether the permchannel database needs to be written. |
backoff | Number | 0 | The value to multiply the saveperiod by every time a save fails. When the save succeeds the period will be reset. |
maxbackoff | Duration | 0s | The maximum write period that should be allowed even if incremental backoff is enabled. |
writeversion | Number | 2 | The version of the permchannel database format to write. |
The format field should be set to one of the following values:
Value | Description |
---|---|
1 | Write a database compatible with v2 or newer. |
2 | Write a database compatible with v4 or newer. This preserves the setter and set time of list modes by moving list modes to their own field. |
Example Usage
<permchanneldb filename="permchannels.conf"
listmodes="yes"
operonly="yes"
saveperiod="5s"
backoff="2"
maxbackoff="5m"
writeversion="2">
<permchannels>
The <permchannels>
tag defines a permanent channel. This tag can be defined as many times as required.
Name | Type | Default Value | Description |
---|---|---|---|
channel | Text | None | Required! The name of the channel. |
modes | Text | None | If defined then the modes set on the channel. |
topic | Text | None | If defined then the topic of the channel. |
topicsetby | Text | The server name | The nickname of the user who set the channel topic. |
topicts | Number | The current UNIX time | The UNIX time at which the channel topic was set. |
ts | Number | The current UNIX time | The UNIX time at which the channel was created. |
Example Usage
<permchannels channel="#example"
modes="+bnt *!*@example.com"
topic="Welcome to the Example channel!"
topicsetby="Sadie"
topicts="956188800"
ts="726192000">
Channel Modes
Name | Character | Type | Parameter Syntax | Usable By | Description |
---|---|---|---|---|---|
permanent | P | Switch | None | Server operators | Prevents the channel from being deleted when the last user leaves. |
Special Notes
You should remember to <include>
the file specified in <permchannels:filename>
in your server configuration.
It is recommended that you set channel mode +P (permanent) on channels and let InspIRCd write a configuration file rather than manually defining permanent channels in your server configuration.