mIRC Home    About    Download    Register    News    Help

Print Thread
#271366 26/02/23 06:26 PM
Joined: May 2022
Posts: 78
F
Fernet Offline OP
Babel fish
OP Offline
Babel fish
F
Joined: May 2022
Posts: 78
Hi everybody. I'd like to have an addon on my MIRC channel that check ON JOIN and on NICK change if a nick is registered on the net (my channel is on MindForge).
If is not registered, it send a warn after 180 seconds, and if no nick change then kick that nick.
Any help?
Thanks in advance

Fernet #271377 27/02/23 01:52 PM
Joined: Jan 2004
Posts: 2,127
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 2,127
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.

maroon #271385 28/02/23 12:59 PM
Joined: May 2022
Posts: 78
F
Fernet Offline OP
Babel fish
OP Offline
Babel fish
F
Joined: May 2022
Posts: 78
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.

Fernet #271388 28/02/23 08:15 PM
Joined: Jan 2004
Posts: 2,127
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 2,127
I can't see why editing the script wouldn't work. Perhaps you can add some debug echo messages to the status window to see where the problem. For the line where you now have

IF (MindUser????? iswm $2)

... insert a blank line above + below it, so you can paste this echo messages above/below it:

echo -s debug: $scriptline $nopath($script) $2

For most nicks this should show 1 echo message, but for guest nicks it should show 2 of them. If you don't see either echo message for a guestnick, then scroll up and also add the echo on the line above

; Ban evasion or rejoin kick

* *

Here's a quick and dirty stab at doing what you're wanting, I arbitrarily picked a big channel there, so you'll need to change the #channelname. I added comments to the code that should make it easier for you to follow it

This throttles the whois to be no more often than once per 5 seconds, but you may need to bump that up if the network doesn't like it that fast.

Every 5 secs it gets the next nick from the list to do a /whois on them, and doesn't take them off the list until a successful /whois reply comes back, in case the network has ignored your request. I see the whois has a line saying if someone is logged into an account, and another line showing they've identified to this specific nick, so I hooked the 2nd one.

When YOU join that channel, it adds everyone already in the channel into the queue, so it may take a while to work your way through it.

Code
alias WhoisSnooper {
  if (WhoisSnooper* !iswm $ctimer) {
    ;don't do anything if they are already flagged as registered
    if ($ialmark($1,registered)) return
    ; add nick to list, addtok avoids duplicates. ialmark goes away when $me exits $ial
    .ialmark -n $me list $addtok($ialmark($me,list).mark,$1,32)
    ; start the timer is not already set * 5 sec delay between whois'ing
    ; we want timer gone if we disconnect so don't use -o
    if (!$timer(WhoisSnooper $+ $network)) .timerWhoisSnooper $+ $network 0 5 WhoisSnooper
    ; wait for next 5sec interval to do the /whois
    return
  }
  var %nick $gettok($ialmark($me,list).mark,1,32)
  ; if list was empty then stop timer
  if (%nick == $null) { .ialmark -nr $me list | return }
  ; remove from list if registered
  if ($ialmark($1,registered)) {
    var %list $gettok($ialmark($me,list).mark,2-,32)
    if (%list == $null) { .ialmark -nr $me list | return }
    else .ialmark -n $me list %list
    return
  }
  whois %nick
}

raw 318:*:{
  var %list $remtok($ialmark($me,list).mark,$2,1,32)
  ; removing them only after a successful end-of-/whois in case of network throttling
  if (%list) ialmark -n $me list %list | else { ialmark -nr $me list }
  if ($ialmark($2,registered)) return
  else {
    ; do nothing if they are not in channel
    if (!$nick(#amigos_eternos,$2)) return
    echo -g #amigos_eternos not reg $2 here is where to put the command to deal with them
    return
    if ($ialmark($2,warn)) { kick #amigos_eternos $2 | return }
    notice $2 please change to a registered nick or identify to this nick
    .timer 1 180 WhoisSnooper $unsafe($2)
    .ialmark -n $2 warn 1
  }
}
raw 307:*:{ .ialmark -n $2 registered 1 | .ialmark -nr $2 warn }
/*
307 maroon othernick :is identified for this nick
330 maroon othernick othernick :is logged in as
318 maroon othernick :End of /WHOIS list.
*/
on *:JOIN:#amigos_eternos:{
  if ($nick == $me) {
    var %i 1 | while ($nick($chan,%i)) { WhoisSnooper $v1 | inc %i }
    return
  }
  if (!$ialmark($nick,registered)) WhoisSnooper $nick
}
on *:NICK:{
  ; ialmarks migrate from oldnick to newnick, so deleting it
  .ialmark -rn $newnick registered | .ialmark -nr $newnick warn
  if ($nick(#amigos_eternos,$newnick)) WhoisSnooper $newnick
}

maroon #271389 01/03/23 12:21 PM
Joined: May 2022
Posts: 78
F
Fernet Offline OP
Babel fish
OP Offline
Babel fish
F
Joined: May 2022
Posts: 78
Originally Posted by maroon
I can't see why editing the script wouldn't work. Perhaps you can add some debug echo messages to the status window to see where the problem. For the line where you now have

IF (MindUser????? iswm $2)

... insert a blank line above + below it, so you can paste this echo messages above/below it:

echo -s debug: $scriptline $nopath($script) $2

For most nicks this should show 1 echo message, but for guest nicks it should show 2 of them. If you don't see either echo message for a guestnick, then scroll up and also add the echo on the line above

; Ban evasion or rejoin kick

* *

Here's a quick and dirty stab at doing what you're wanting, I arbitrarily picked a big channel there, so you'll need to change the #channelname. I added comments to the code that should make it easier for you to follow it

This throttles the whois to be no more often than once per 5 seconds, but you may need to bump that up if the network doesn't like it that fast.

Every 5 secs it gets the next nick from the list to do a /whois on them, and doesn't take them off the list until a successful /whois reply comes back, in case the network has ignored your request. I see the whois has a line saying if someone is logged into an account, and another line showing they've identified to this specific nick, so I hooked the 2nd one.

When YOU join that channel, it adds everyone already in the channel into the queue, so it may take a while to work your way through it.

Code
alias WhoisSnooper {
  if (WhoisSnooper* !iswm $ctimer) {
    ;don't do anything if they are already flagged as registered
    if ($ialmark($1,registered)) return
    ; add nick to list, addtok avoids duplicates. ialmark goes away when $me exits $ial
    .ialmark -n $me list $addtok($ialmark($me,list).mark,$1,32)
    ; start the timer is not already set * 5 sec delay between whois'ing
    ; we want timer gone if we disconnect so don't use -o
    if (!$timer(WhoisSnooper $+ $network)) .timerWhoisSnooper $+ $network 0 5 WhoisSnooper
    ; wait for next 5sec interval to do the /whois
    return
  }
  var %nick $gettok($ialmark($me,list).mark,1,32)
  ; if list was empty then stop timer
  if (%nick == $null) { .ialmark -nr $me list | return }
  ; remove from list if registered
  if ($ialmark($1,registered)) {
    var %list $gettok($ialmark($me,list).mark,2-,32)
    if (%list == $null) { .ialmark -nr $me list | return }
    else .ialmark -n $me list %list
    return
  }
  whois %nick
}

raw 318:*:{
  var %list $remtok($ialmark($me,list).mark,$2,1,32)
  ; removing them only after a successful end-of-/whois in case of network throttling
  if (%list) ialmark -n $me list %list | else { ialmark -nr $me list }
  if ($ialmark($2,registered)) return
  else {
    ; do nothing if they are not in channel
    if (!$nick(#amigos_eternos,$2)) return
    echo -g #amigos_eternos not reg $2 here is where to put the command to deal with them
    return
    if ($ialmark($2,warn)) { kick #amigos_eternos $2 | return }
    notice $2 please change to a registered nick or identify to this nick
    .timer 1 180 WhoisSnooper $unsafe($2)
    .ialmark -n $2 warn 1
  }
}
raw 307:*:{ .ialmark -n $2 registered 1 | .ialmark -nr $2 warn }
/*
307 maroon othernick :is identified for this nick
330 maroon othernick othernick :is logged in as
318 maroon othernick :End of /WHOIS list.
*/
on *:JOIN:#amigos_eternos:{
  if ($nick == $me) {
    var %i 1 | while ($nick($chan,%i)) { WhoisSnooper $v1 | inc %i }
    return
  }
  if (!$ialmark($nick,registered)) WhoisSnooper $nick
}
on *:NICK:{
  ; ialmarks migrate from oldnick to newnick, so deleting it
  .ialmark -rn $newnick registered | .ialmark -nr $newnick warn
  if ($nick(#amigos_eternos,$newnick)) WhoisSnooper $newnick
}

Do I have to create a remote (nick-.check.mrc) and an alias or can I create just a remote? P.S.: If You're in #amigos_eternos I'll be happy to reach You

maroon #271391 01/03/23 01:46 PM
Joined: Jan 2004
Posts: 2,127
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 2,127
update:

The problem of handling guest nicks might also be how networks create guest nicks. It seems that your script assumes that they always have a 5 digit number, but my experience with guest nicks is that the number is UP TO 5 digits, and it's not rare at many networks to see 'guest' followed by a 3 or 4 digit number. If your network can sometimes have nicks being like MindUser1234 MindUser123 etc, then should change like

from:
if (MindUser????? iswm $2)
to:
if (MindUser* iswm $2)

While this would also match MindUserZilla etc, that's collateral damage, lol, though the original mask was also matching GuestABCDE

Fernet #271392 01/03/23 06:36 PM
Joined: Jan 2004
Posts: 2,127
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 2,127
yes, this can all go in a new filename.mrc scriptfile
I only went to the amigos channel to briefly test the script. you'll have a better chance to find me in the #mirc or #mircscripting channels on swiftirc, libera, undernet, etc. they're in the default favorites list installed by newer mirc versions

maroon #271393 01/03/23 06:36 PM
Joined: May 2022
Posts: 78
F
Fernet Offline OP
Babel fish
OP Offline
Babel fish
F
Joined: May 2022
Posts: 78
Originally Posted by maroon
update:

The problem of handling guest nicks might also be how networks create guest nicks. It seems that your script assumes that they always have a 5 digit number, but my experience with guest nicks is that the number is UP TO 5 digits, and it's not rare at many networks to see 'guest' followed by a 3 or 4 digit number. If your network can sometimes have nicks being like MindUser1234 MindUser123 etc, then should change like

from:
if (MindUser????? iswm $2)
to:
if (MindUser* iswm $2)

While this would also match MindUserZilla etc, that's collateral damage, lol, though the original mask was also matching GuestABCDE

Only numbers goes after MindUser and only 5 digits. So: do I have to create a remote and and add an alias?
Thanks for help sir

Fernet #271394 01/03/23 06:40 PM
Joined: Jan 2004
Posts: 2,127
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 2,127
No need for a new script, I was describing how to edit your existing script to handle fewer than 5 digit numbers. But if you say it's 5 digits 100% of the time, then the edit you described earlier was fine, and I have no idea why your edit of that script wasn't working. And my suggestion for debug messages was also adding lines to your existing script, there's not a need for a brand new script to deal with guestnicks

maroon #271395 01/03/23 07:52 PM
Joined: May 2022
Posts: 78
F
Fernet Offline OP
Babel fish
OP Offline
Babel fish
F
Joined: May 2022
Posts: 78
Originally Posted by maroon
No need for a new script, I was describing how to edit your existing script to handle fewer than 5 digit numbers. But if you say it's 5 digits 100% of the time, then the edit you described earlier was fine, and I have no idea why your edit of that script wasn't working. And my suggestion for debug messages was also adding lines to your existing script, there's not a need for a brand new script to deal with guestnicks

I don't have any script yet about it sir. I quoted What You wrote. That's why I asked if I need to add a new file and load it as remote, or what else.

Fernet #271396 01/03/23 07:56 PM
Joined: Jan 2004
Posts: 2,127
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 2,127
Originally Posted by Fernet
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.

Originally Posted by Fernet
Originally Posted by maroon
No need for a new script, I was describing how to edit your existing script to handle fewer than 5 digit numbers. But if you say it's 5 digits 100% of the time, then the edit you described earlier was fine, and I have no idea why your edit of that script wasn't working. And my suggestion for debug messages was also adding lines to your existing script, there's not a need for a brand new script to deal with guestnicks

I don't have any script yet about it sir. I quoted What You wrote. That's why I asked if I need to add a new file and load it as remote, or what else.

This is going in circles. Find me in channel if you can.

maroon #271399 03/03/23 02:55 PM
Joined: May 2022
Posts: 78
F
Fernet Offline OP
Babel fish
OP Offline
Babel fish
F
Joined: May 2022
Posts: 78
Originally Posted by maroon
Originally Posted by Fernet
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.

Originally Posted by Fernet
Originally Posted by maroon
No need for a new script, I was describing how to edit your existing script to handle fewer than 5 digit numbers. But if you say it's 5 digits 100% of the time, then the edit you described earlier was fine, and I have no idea why your edit of that script wasn't working. And my suggestion for debug messages was also adding lines to your existing script, there's not a need for a brand new script to deal with guestnicks

I don't have any script yet about it sir. I quoted What You wrote. That's why I asked if I need to add a new file and load it as remote, or what else.

This is going in circles. Find me in channel if you can.

Well, I tried to reach You on MF but been not lucky. In any case, simply I hope to have an addon and delete CPS because is too difficult for me to edit. There're too many .mrc files. I tried but no way. That's why I asked if is possible to create a single addon.
Thanks sir

Fernet #271400 03/03/23 03:01 PM
Joined: Jan 2004
Posts: 2,127
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 2,127
I don't know why you were looking for me on Mindforge when my post said I only went there briefly to test the script, and right after that I told you where I was - and listed the channels that are part of the favorites list installed by mIRC

maroon #271401 03/03/23 06:35 PM
Joined: May 2022
Posts: 78
F
Fernet Offline OP
Babel fish
OP Offline
Babel fish
F
Joined: May 2022
Posts: 78
Originally Posted by maroon
I don't know why you were looking for me on Mindforge when my post said I only went there briefly to test the script, and right after that I told you where I was - and listed the channels that are part of the favorites list installed by mIRC

Quote
Find me in channel if you can.


= I read #amigos-eternos in Your sample and I tried it

Ok. Thanks anyway and sorry to disturb sir

Last edited by Fernet; 03/03/23 06:37 PM.
Fernet #271402 03/03/23 06:37 PM
Joined: Jan 2004
Posts: 2,127
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 2,127
it's not disturbing me, otherwise i wouldn't have told you where to find me, lol

maroon #271436 05/03/23 06:56 PM
Joined: May 2022
Posts: 78
F
Fernet Offline OP
Babel fish
OP Offline
Babel fish
F
Joined: May 2022
Posts: 78
Originally Posted by maroon
it's not disturbing me, otherwise i wouldn't have told you where to find me, lol

Honestly I read this thread and You right. There'remany trouble from me and I'm sorry. I not an expertin scripting at all. Thanks to You I solved that issue about guest nick, that have nothing to handle about this thread. This thread was about Not Registered Nick checker and kicker.
Sorry again about trouble I caused You.
And thanks sir

maroon #271455 12/03/23 12:59 PM
Joined: May 2022
Posts: 78
F
Fernet Offline OP
Babel fish
OP Offline
Babel fish
F
Joined: May 2022
Posts: 78
Originally Posted by maroon
it's not disturbing me, otherwise i wouldn't have told you where to find me, lol
I deleted CPS,it doesn't has this feature, and because You solved about guests users, then I wish to have an indipendente addon about registered users.
There're some parts that I really can't understand that I marked with ----------> (I only changed the name of the channel blush ):


Code
    .ialmark -n $me list $addtok($ialmark($me,list).mark,$1,32)
    ; start the timer is not already set * 5 sec delay between whois'ing
    ; we want timer gone if we disconnect so don't use -o
    if (!$timer(WhoisSnooper $+ $network)) .timerWhoisSnooper $+ $network 0 5 WhoisSnooper
    ; wait for next 5sec interval to do the /whois
    return
  }
  var %nick $gettok($ialmark($me,list).mark,1,32)
  ; if list was empty then stop timer
  if (%nick == $null) { .ialmark -nr $me list | return }
  ; remove from list if registered
  if ($ialmark($1,registered)) {
    var %list $gettok($ialmark($me,list).mark,2-,32)
    if (%list == $null) { .ialmark -nr $me list | return }
    else .ialmark -n $me list %list
    return
  }
  whois %nick
}

raw 318:*:{
  var %list $remtok($ialmark($me,list).mark,$2,1,32)
  ; removing them only after a successful end-of-/whois in case of network throttling
  if (%list) ialmark -n $me list %list | else { ialmark -nr $me list }
  if ($ialmark($2,registered)) return
  else {
    ; do nothing if they are not in channel
    if (!$nick(#Alessandra,$2)) return
    echo -g #Alessandra not reg $2 --------------------------------????? here is where to put the command to deal with them ?????-----
    return
    if ($ialmark($2,warn)) { kick #Alessandra $2 | return }
    notice $2 please change to a registered nick or identify to this nick
    .timer 1 180 WhoisSnooper $unsafe($2)
    .ialmark -n $2 warn 1
  }
}
raw 307:*:{ .ialmark -n $2 registered 1 | .ialmark -nr $2 warn }
/*
---------->307 maroon othernick :is identified for this nick
---------->330 maroon othernick othernick :is logged in as
---------->318 maroon othernick :End of /WHOIS list.
*/

on *:NICK:{
  ; ialmarks migrate from oldnick to newnick, so deleting it
  .ialmark -rn $newnick registered | .ialmark -nr $newnick warn
  if ($nick(#Alessandra,$newnick)) WhoisSnooper $newnick
}

Thanks for help

Fernet #271456 14/03/23 12:32 AM
Joined: Jan 2004
Posts: 2,127
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 2,127
Hey, the parts of the code you marked off as something you don't understand - they are not actually code. lines marked with
/*
through
*/
are comments that do not get executed. I left them in there for reference while i was coding it. Each line of the /whois reply has a number beginning the message, to identify what kind of message it is. Usually, the replies to whois have $1 set to yourself, and $2 set to whoever is being /whois'ed.

In this code, each time a 307 arrives, I attached an /ialmark to their nick to tell that it's been identified. And each time someone changes nick because it needs to double-check whether they've identified for the $newnick too.

The last thing the /whois reply does is send a 318, which is when the script decides what to do. Either it sees that a 307 has recently been seen for this nick,in which case there's nothing to do except remove the ialmarks, and to take them off the list of nicks that you're waiting for a reply from.

So far you wanted something that checked if they have identified for a specific nick, regardless whether they are logged into a nickserv account. But now you want to do something else depending on whether they're registered too? That would involve adding a tag each time the 330 arrives. And when the 318 arrives, you want to do what if they are not logged into nickserv, that's different than what you're doing if they're using some random nick too?

maroon #271458 14/03/23 12:15 PM
Joined: May 2022
Posts: 78
F
Fernet Offline OP
Babel fish
OP Offline
Babel fish
F
Joined: May 2022
Posts: 78
Quote
.....................
So far you wanted something that checked if they have identified for a specific nick, regardless whether they are logged into a nickserv account. But now you want to do something else depending on whether they're registered too? That would involve adding a tag each time the 330 arrives. And when the 318 arrives, you want to do what if they are not logged into nickserv, that's different than what you're doing if they're using some random nick too?

I wish sir, not I want. I'm here to try to learn. And I thanks You again for support, sir blush
When a user join or already joined in my channel:

1 - it may use registered nick (on /whois we can see---> <nickinuse> is identified for this nick).
2 - it isn't using a registered nick (on /whois we don't have ---> <nickinuse> is identified for this nick).
3 - when a user is joined with a registered nick, it may change in a unregistered one.

So I wish (always if possible) , a nick checker, i.e.:

1 - ON JOIN everyone (op included) #channel: if is registered with /ns , then nothing happen
2 - ON JOIN everyone (op included) #channel: if nick is not registered with /ns , it receive a warn after 10 seconds, then a kick after 60 seconds;
3 - ON newnick (nick change) , everyone (op included) #channel: if new nick is not registered with /ns, it receive a warn after 10 seconds, then a kick after 60 seconds;

If it join or change with a registered nick but not identified, is solved with Your wonderful creation, because it'll be changed in a guest nick (MindUser*****) by the server, and Your script is ready to act and wonderful working (I never stop to thank You , sir) wink

I hope I been more clear sir.

Last edited by Fernet; 14/03/23 02:13 PM.
Fernet #271500 03/04/23 11:18 AM
Joined: May 2022
Posts: 78
F
Fernet Offline OP
Babel fish
OP Offline
Babel fish
F
Joined: May 2022
Posts: 78
Finally I decided to change something on my project: simply maybe is better to unset +R Mode and set +m MODE. So an user can always join but can talk only if the nick is registered/identified. If so, on join he receive +v and can talk. Maybe is more easy?
Thanks


Link Copied to Clipboard