Originally Posted by maroon
Actually, you want to know if someone has identified themselves to nickserv by giving it their password, which is not the same thing as whether the nick has been registered by someone.

I'm not clear clear why you're wanting to force someone to change to a different nick if they're not identified to nickserv? Or are you specifically trying to block someone from using someone else's nick?

This will be a little bit difficult, because that network is using a very OLD version of Unreal software, which you can see in the status window from typing "/version" showing they're using version 3-something even though most networks using Unreal are using 5-something or 6-something

In newer network software supporting more of the IrcV3 standard, I can do

/who #channelname %a

and it gives everyone's accountname, and also they default to giving me the accountname as someone joins the channel.

But that doesn't work here. Since it doesn't accept the IrcV3 syntax, you'd be forced to do a /whois every time someone joins the channel, then wait for the /whois reply where you monitor it to see if they're identified. Depending on the network, this would be either raw 307 or 330. You'd need to save this info to their nick using an /ialmark, and then also check raw 318 that's sent at the tail end of the /whois message, by which time you'd know if they're identified to nickserv by whether you'd seen the correct line of the /whois.

Since the $ialmark would be attached to their nick, you wouldn't need to check during all nick changes, since the tag would be there from when they joined. (Unless they change nicks without having first identified)

If they identify to channel after they've joined, does that network do a fake /part then a fake /join to let you know they did identify themselves? Or does that happen only if their address changes when identified, which does not seem to be the case there. I didn't try to find someone to ask, since all the channels look to be speaking Spanish.

I am not attempting to script this yet, because in addition to the above complexity, there's also the problem of needed to limit how often you do the /whois command. If bouncing back from a netsplit, there will be many joins at the same time, and if you issued 30 /whois requests within 1 second, it will either kick you for flooding or just ignore most of the requests.

To handle these cases, you'd need a script to limit how often you ask for a whois, and it would also need to keep track of which nicks it's done a /whois against but hasn't gotten a reply.

Depending on how you want to enforce being identified to nickserv, most networks have a mode like +R that doesn't let anyone join without first being identified to nickserv, and if there's a problem with their client trying to join too quickly after connecting, newer mIRC versions have fixed that, or else for older mIRC's you can put in perform-on-connect something like /autojoin 3 that waits 3 seconds before joining any channels, which hopefully gives nickserv time to see the password.

There's also SASL that can let you identify before the ON CONNECT happens, but looks like your network's Unreal software is too old to support it.

I see your network is in the mIRC default serverlist using the non-SSL port 6667 even though they offer SSL at +6697. I'm pretty sure the reason is that they just made their own self-signed certificate instead of getting a real one from Let'sEncrypt.

Thanks a lot Your kind reply. To have a registered nick should be a further secure option. And because I like to keep my channel clean from moroon and rudeness, I wish to have this checker. Mode +R is active, butit allow anyone to use first a registered nick then to changhe it with an unregistered one and keep it. I tried to use Complete Protection System (CPS), it works but only for GUEST????? nick name. On MindForge guest nick is MindUser?????. I tried to edit all .mrc files (changed GUEST????? with MindUser?????) but it doesn't work.