BotServ: community !votekick / !voteban

SET <#channel> VOTEKICK <n> enables in-channel voting: members type
!votekick <nick> (or !voteban), each voter counts once, and when n votes
are reached within the window the assigned bot kicks (or bans then kicks)
the target. Votes are ephemeral and lapse after two minutes. Crowd
moderation with no op online.
This commit is contained in:
Jean Chevronnet 2026-07-13 19:32:25 +00:00
parent 374748b1f9
commit ad61addb84
No known key found for this signature in database
4 changed files with 122 additions and 11 deletions

View file

@ -589,6 +589,7 @@ pub trait Store {
fn set_repeat_kicker(&mut self, channel: &str, times: u16) -> Result<(), ChanError>;
fn set_ttb(&mut self, channel: &str, ttb: u16) -> Result<(), ChanError>;
fn set_ban_expire(&mut self, channel: &str, secs: u32) -> Result<(), ChanError>;
fn set_votekick(&mut self, channel: &str, votes: u16) -> Result<(), ChanError>;
// BADWORDS list (regex patterns). add validates the pattern compiles.
fn badword_add(&mut self, channel: &str, pattern: &str) -> Result<bool, ChanError>;
fn badword_del(&mut self, channel: &str, pattern: &str) -> Result<bool, ChanError>;