handle extended +f channel mode (unrealircd(!))
issue: the bot cannot msg to the channel, it reports that the channel is moderated, but it's not.
.say #mychannel hello! :)
Cannot say to #mychannel: It is moderated.
egg version: downloaded on 30nov2021 the git version (develop)
via irc client:
/mode #mychannel
#mychannel +CKPfnrt [15j#R15,40m#M5,15n#N15,15t]:15
#mychannel created on <datehere_doesntmatter>
via the bot:
.channel #mychannel
#Lord255# (#mychannel) channel
Channel #mychannel, 11 members, mode +mCRtMrNn:
as far as i can see, the bot does not interprets well the +f channel mode. if it matters:
- the network/server is an unrealircd v5.2.2
- the bot's nick is not registered (thought i checked the source code and as far as i can see it's cuz of +m without op;halfop; or voice)
removing +f +m
irc client:
<xyz> sets mode: +f [15j#R15,15n#N15,15t]:15
#mychannel +CKPfnrt [15j#R15,15n#N15,15t]:15
#mychannel created on <datehere_doesntmatter>
eggdrop:
#mychannel: mode change '+f [15j#R15,15n#N15,15t]:15' by <hostmask>
.say #mychannel hello
Cannot say to #mychannel: It is moderated.
.channel #mychannel
#Lord255# (#mychannel) channel
Channel #mychannel, 12 members, mode +mCRtMrNn:
tried a restart of the bot:
.channel #mychannel
#Lord255# (#mychannel) channel
Channel #mychannel, 12 members, mode +CRtrNn:
seems fine. (moderated removed - only refresh that mode on restart? due to +f m..) so: restarting the bot helps to workaround the +f +m:M mode; so in case of removal, the bot realizes it after a restart.
You can use .reset #channel to refresh the modes.
I just stumbled on this issue today.
I have #Portugal channel on my network with +Pfnrt [5c#C2,10j#R2,5k#K2,20m#M2,2n#N2,6t#d,1r#d]:15 modes, reported both by WeeChat and HexChat.
When I do .tcl getchanmode #Portugal I get:
Tcl: +mcCRtMrNdnk [5c#C2,10j#R2,5k#K2,20m#M2,2n#N2,6t#d,1r#d]:15
If I do .channel #Portugal I get (along the rest of the channel info):
Channel #Portugal, 20 members, mode +mcCRtMrNdnk [5c#C2,10j#R2,5k#K2,20m#M2,2n#N2,6t#d,1r#d]:15
In a proc I have, if {[regexp c [getchanmode $chan]]} which seems to be triggered because eggdrop gets confused with the values of the chanmode +f of UnrealIRCd.
Basically, eggdrop is turning all +f values into channel modes and it's not even displaying the +f on the modes list.