Dynamic Bans
History of Dynamic Bans
Before channel services were common, Eggdrop's were used to ban unwanted users from channels. In general, an IRC server only allowed channels to have a certain number of bans placed in the channel at any given time. If this limit was reached, no additional bans could be placed and an unwanted user could continue their unwanted activities until a ban was removed from the channel ban list. But, by removing a previous ban, now that unwanted user could join. Eggdrop addressed this problem by introducing "dynamic bans".
Eggdrop's Dynamic Bans
Dynamic bans are a method where Eggdrop internally stores a much larger list of bans than a channel can, and only activates the ban when it sees a banned user entering the channel. When a ban is added to Eggdrop, the ban is saved to Eggdrop's internal ban system (saved in the .chan file, if you're interested in those details). Importantly, there is no limit on the number of bans Eggdrop can store internally. Once a ban has been placed by Eggdrop, a timer is activated and the ban will be removed after that time expires. By adding bans only when they are needed and then removing them, the channel ban list stays "clean" and never fills to a point where new bans can't be added.
How do I deactivate Dynamic Bans?
Some people don't like dynamic bans. There are three ways you can disable this feature
Method 1: Disabling Dynamic Bans
This is the proper method! From the partyline, read .help chanset and .help chaninfo. The chanset command is the command we'll be using to change a channel setting, and among other information, .help chanset shows us the syntax is
### chanset <channel> <settings>
To find the setting we want to modify, we'll need to look at .help chaninfo (yes, there's a lot in there). Looking through all the available settings, we see
dynamicbans Only activate bans on the channel when necessary? This keeps the channel's ban list from getting excessively long. The bot still remembers every ban, but it only activates a ban on the channel when it sees someone join who matches that ban.
This tells us the setting we want to modify is dynamicbans. To deactivate dynamicbans, we'll type:
.chanset #channel -dynamicbans
Congratulations! Eggdrop will no longer remove bans from the channel
Method 2: Using Sticky Bans
Sometimes you want