inspircd / inspircd-contrib

Third-party InspIRCd module repository.
https://www.inspircd.org
66 stars 72 forks source link

add m_canjoinban: matches users banned from a given channel #264

Closed examknow closed 2 years ago

examknow commented 2 years ago

Adds m_canjoinban. This provides the J: extban which checks if a user is banned from a channel. This is useful for communities that consist of multiple channels and want to have a global namespace ban list. For example, you could have #inspircd and #inspircd.dev and a #inspircd.bans channel with +b J:#inspircd.bans on the other two channels. Then, when a user tries to join #inspircd and they are banned in #inspircd.bans, they will not be permitted to enter the channel. This module is inspired by extb_canjoin on solanum.

genius3000 commented 2 years ago

This is quite similar to m_extbanbanlist with the main difference being the linked having a permission check to use a channel's ban list. I also see I implemented my own copy of the ban checking logic, likely to avoid the infinite loop possibility, but I feel like there's room for simplification (something to look into one day).

I'll add that I'm not opposed to two modules doing the same thing with differences in how/etc. It's -contrib, perfect place to test out features. 🤪

examknow commented 2 years ago

Oh oops I didn’t notice that one! One is probably good enough 😀