diff --git a/docs/modelists/channel-modes.csv b/docs/modelists/channel-modes.csv index 0baa9e3..d8ff8a5 100644 --- a/docs/modelists/channel-modes.csv +++ b/docs/modelists/channel-modes.csv @@ -23,7 +23,8 @@ inviteonly,i,i,i,i,i,i,i,i,i,i,i,i issecure,,,,,,,,,,,,Z joinflood,,,j (m_joinflood),,,,,j,j,j,, key,k,k,k,k,k,k,k,k,k,k,k,k -kicknorejoin,,,J (m_kicknorejoin),,,,,,,J,, +kicknorejoin,,,,,,,,,,J,, +kicknorejoin_insp,,,J (m_kicknorejoin),,,,,,,,, largebanlist,,,,,,,,L,L,L,, limit,l,l,l,l,l,l,l,l,l,l,l,l moderated,m,m,m,m,m,m,m,m,m,m,m,m @@ -53,7 +54,8 @@ redirect,,,L (m_redirect),,,L,,f,f,f,,L registered,,r,r (m_services_account),r,R,R,R,,,,,r regmoderated,,M,M (m_services_account),M,,M,M,,,,,M regonly,,R,R (m_services_account),R,r,r,r,r,r,r,r,R -repeat,,,E (m_repeat),,,,,,,K (ext/chm_norepeat.c),, +repeat,,,,,,,,,,K (ext/chm_norepeat.c),, +repeat_insp,,,E (m_repeat),,,,,,,,, secret,s,s,s,s,s,s,s,s,s,s,s,s sslonly,,S,z (m_sslmodes),z,,,,S (ext/chm_sslonly),S (ext/chm_sslonly),S (ext/chm_sslonly.c),S,z stripcolor,,,S (m_stripcolor),,,S,,c,c,c,,S diff --git a/docs/modelists/channel-modes.html b/docs/modelists/channel-modes.html index 2f2e655..fa6b276 100644 --- a/docs/modelists/channel-modes.html +++ b/docs/modelists/channel-modes.html @@ -160,7 +160,10 @@ td:first-child, th[scope="row"] { +k+k+k+k+k+k+k+k+k+k+k+k kicknorejoin -n/an/a+J
(m_kicknorejoin)n/an/an/an/an/an/a+Jn/an/a +n/an/an/an/an/an/an/an/an/a+Jn/an/a + +kicknorejoin_insp +n/an/a+J
(m_kicknorejoin)n/an/an/an/an/an/an/an/an/a largebanlist n/an/an/an/an/an/an/a+L+L+Ln/an/a @@ -250,7 +253,10 @@ td:first-child, th[scope="row"] { n/a+R+R
(m_services_account)+R+r+r+r+r+r+r+r+R repeat -n/an/a+E
(m_repeat)n/an/an/an/an/an/a+K
(ext/chm_norepeat.c)n/an/a +n/an/an/an/an/an/an/an/an/a+K
(ext/chm_norepeat.c)n/an/a + +repeat_insp +n/an/a+E
(m_repeat)n/an/an/an/an/an/an/an/an/a secret +s+s+s+s+s+s+s+s+s+s+s+s diff --git a/protocols/inspircd.py b/protocols/inspircd.py index 98adc5e..dd0d43e 100644 --- a/protocols/inspircd.py +++ b/protocols/inspircd.py @@ -452,7 +452,7 @@ class InspIRCdProtocol(TS6BaseProtocol): # Strip c_ prefixes to be consistent with other protocols. name = name.lstrip('c_') - if name == 'reginvite': # Reginvite? That's a dumb name. + if name == 'reginvite': # Reginvite? That's an odd name. name = 'regonly' if name == 'founder': # Channel mode +q @@ -461,6 +461,11 @@ class InspIRCdProtocol(TS6BaseProtocol): # but I personally prefer the latter. name = 'owner' + if name in ('repeat', 'kicknorejoin'): + # Suffix modes using inspircd-specific arguments so that it can + # be safely relayed. + name += '_insp' + # We don't care about mode prefixes; just the mode char. self.cmodes[name] = char[-1]