|
Joined: Jan 2011
Posts: 22
Ameglian cow
|
OP
Ameglian cow
Joined: Jan 2011
Posts: 22 |
Can I automate the /msg nickserv identify <pw> needed when I enter a channel that wants that?
|
|
|
|
Joined: Oct 2003
Posts: 3,918
Hoopy frood
|
Hoopy frood
Joined: Oct 2003
Posts: 3,918 |
on me:*:JOIN:#mychan:msg nickserv identify PW
- argv[0] on EFnet #mIRC - "Life is a pointer to an integer without a cast"
|
|
|
|
Joined: Jan 2011
Posts: 22
Ameglian cow
|
OP
Ameglian cow
Joined: Jan 2011
Posts: 22 |
where do i put that command?
|
|
|
|
Joined: Aug 2004
Posts: 7,252
Hoopy frood
|
Hoopy frood
Joined: Aug 2004
Posts: 7,252 |
That goes into your Remotes (Alt + R) Please note that most networks ask/require the information when you connect rather than when you join a specific channel. Also the code given would send the same password no matter what network you were on. Personally, I use the following (with the specific details hidden) on *:notice:*nick* is registered*:*:{
if ($istok(network1 network2 network3,$network,32) && ($nick == nickserv) { .msg $v2 identify <password> }
}
Note that this does require you to use the same password on each network. If you use different passwords on each network then the code would have to be changed. Replace network1 network2 network3 with the appropriate network names and <password> with the appropriate password.
|
|
|
|
Joined: Jan 2011
Posts: 22
Ameglian cow
|
OP
Ameglian cow
Joined: Jan 2011
Posts: 22 |
russel, thx
is the space in front of '.msg ' necessary?
ALSO; are network and server the same thing?
|
|
|
|
Joined: Aug 2004
Posts: 7,252
Hoopy frood
|
Hoopy frood
Joined: Aug 2004
Posts: 7,252 |
That big a space isn't necessary, but there does have to be a bit of space, usually 2 presses of the space bar is sufficient. Also note that the spaces are needed both between the { and the .msg as well as at the end of the line before the } Alternatively, you could just put the .msg line on a separate line.
As to network and server, sometimes they are the same, sometimes they are not. Bigger networks will have multiple servers that people can connect to.
One network I'm on is Xeromem, thus //echo -a $network returns Xeromem However, //echo -a $server could return any of these: DeathStar.XeroMem.Com Structure.XeroMem.Com Mysfyt.Waysted-Youth.Net Astaroth.ESyLumIRC.com Hell.ESyLumIRC.com Insanity.Vapors.Net
These are all servers that are connected to the Xeromem network.
|
|
|
|
Joined: Jan 2011
Posts: 22
Ameglian cow
|
OP
Ameglian cow
Joined: Jan 2011
Posts: 22 |
egads!
DroidLife is a 'server' I added to server list.
I put this in Remote:
;on *:notice:*nick* is registered*:*:{ if ($istok(network1 network2 network3,$network,32) && ($nick == nickserv) { .msg $v2 identify <password> }
on *:notice:*nick* is registered*:*:{ if ($istok(DroidLife) && ($nick == nickserv) { .msg $v2 identify xxxx }
when I entered server next time, it did NOT ask me to IDENTIFY, so maybe it worked?
|
|
|
|
Joined: Aug 2004
Posts: 7,252
Hoopy frood
|
Hoopy frood
Joined: Aug 2004
Posts: 7,252 |
If it didn't ask you to identify then it probably did work. However, please note that if it did it was a bit of a fluke as this line if ($istok(DroidLife) && ($nick == nickserv) { .msg $v2 identify xxxx } is misconfigured. It should look like if ($istok(DroidLife,$network,32) && ($nick == nickserv)) { .msg $v2 identify xxxx } If you only deal with one network, then you could replace $istok(DroidLife,$network,32) with ($network == DroidLife)
|
|
|
|
Joined: Jan 2011
Posts: 22
Ameglian cow
|
OP
Ameglian cow
Joined: Jan 2011
Posts: 22 |
Ok, I see the difference, will comment my 'active line of code and see if I get asked to ident.
|
|
|
|
Joined: Jan 2011
Posts: 22
Ameglian cow
|
OP
Ameglian cow
Joined: Jan 2011
Posts: 22 |
this: on *:notice:*nick* is registered*:*:{ if ($network == DroidLife) && ($nick == nickserv) { .msg $v2 identify password}
yielded: -NickServ- You are now identified for drumtrucker
THANKS AGAIN!
|
|
|
|
Joined: Apr 2021
Posts: 1
Mostly harmless
|
Mostly harmless
Joined: Apr 2021
Posts: 1 |
how do I do this if my password contains the $ symbol please?
|
|
|
|
Joined: Jan 2012
Posts: 329
Pan-dimensional mouse
|
Pan-dimensional mouse
Joined: Jan 2012
Posts: 329 |
I do not see any obstacles for this. The password may be sent and received using any symbols, available in the encoding used by your network, services and the client. For example:
on *:NOTICE:*nick* is registered*:*:{
if (YourNetwork isin $network && $nick == NickServ) {
.msg NickServ IDENTIFY pass$word
}
}
But nevertheless, if in some way there are obstacles for this, then you can try using a temporary variable " %my_pass" to save there the password, where this the symbol will be: $ = $chr(36)In the script code it will look like this:
on *:NOTICE:*nick* is registered*:*:{
if (YourNetwork isin $network && $nick == NickServ) {
var %my_pass = $+(pass,$chr(36),word)
.msg NickServ IDENTIFY %my_pass
}
}
Don't forget to change " YourNetwork" to the name of your network. Try this method, perhaps this will help you solve your problem. P.S. I tested this even using as a password Japanese characters in unicode.
|
|
|
|
Joined: Jan 2004
Posts: 2,127
Hoopy frood
|
Hoopy frood
Joined: Jan 2004
Posts: 2,127 |
Also, Epic's method works fine even if the password begins with the $ or % character:
//echo -a $+($,version) and $+(%,variable)
You could also use $eval to prevent a password being evaluated: //echo -a $eval( $passwordstring ,0)
And, while it is true that you have your password be given to nickserv while connecting to the server, by including it in the serverlist entry, I have encountered networks in the past where services frequently died and restarted, where they immediately demanded everyone's password again, forcing everyone into a guestnick if they didn't send their password again.
|
|
|
|
|