Hi,
i am currently trying to implement a system to run commands when a user connects to a certain irc network. Very similar to the perform list feature in mIRC itself.
So i place my code in an ON CONNECT event naturally. In my test setup i only send a NICK and a JOIN command.
Now, in the case that before i connect, i set my nickname to a different nickname than the one in the script, this will result in an "No such nick/channel" error after connecting.
Let me show you a log of the connect process:
-> localhost NICK n
-> localhost USER user "server.com" "localhost" :Full Name
<- :irc.foonet.com NOTICE AUTH :*** Looking up your hostname...
<- :irc.foonet.com NOTICE AUTH :*** Found your hostname (cached)
<- PING :313D5714
-> localhost PONG :313D5714
<- :irc.foonet.com 001 n :Welcome to the ROXnet IRC Network n!user@localhost
-> irc.foonet.com USERHOST n
<- :irc.foonet.com 002 n :Your host is irc.foonet.com, running version Unreal3.2.7
<- :irc.foonet.com 003 n :This server was created Fri Jul 13 19:22:25 2007
<- :irc.foonet.com 004 n irc.foonet.com Unreal3.2.7 iowghraAsORTVSxNCWqBzvdHtGp lvhopsmntikrRcaqOALQbSeIKVfMCuzNTGj
<- :irc.foonet.com 005 n NAMESX SAFELIST HCN MAXCHANNELS=10 CHANLIMIT=#:10 MAXLIST=b:60,e:60,I:60 NICKLEN=30 CHANNELLEN=32 TOPICLEN=307 KICKLEN=307 AWAYLEN=307 MAXTARGETS=20 WALLCHOPS :are supported by this server
<- :irc.foonet.com 005 n WATCH=128 SILENCE=15 MODES=12 CHANTYPES=# PREFIX=(qaohv)~&@%+ CHANMODES=beI,kfL,lj,psmntirRcOAQKVCuzNSMTG NETWORK=ROXnet CASEMAPPING=ascii EXTBAN=~,cqnr ELIST=MNUCT STATUSMSG=~&@%+ EXCEPTS INVEX :are supported by this server
<- :irc.foonet.com 005 n CMDS=KNOCK,MAP,DCCALLOW,USERIP :are supported by this server
<- :irc.foonet.com 251 n :There are 1 users and 7 invisible on 1 servers
<- :irc.foonet.com 254 n 1 :channels formed
<- :irc.foonet.com 255 n :I have 8 clients and 0 servers
<- :irc.foonet.com 265 n :Current Local Users: 8 Max: 9
<- :irc.foonet.com 266 n :Current Global Users: 8 Max: 9
<- :irc.foonet.com 422 n :MOTD File is missing
<- :n MODE n :+iwx
<- :irc.foonet.com 302 n :n=+user@localhost
-> irc.foonet.com NICK :nickname
-> irc.foonet.com JOIN #mirc
-> irc.foonet.com MODE n +i
-> irc.foonet.com PROTOCTL NAMESX
-> irc.foonet.com JOIN #mirc
<- :n!user@rox-485150F5 NICK :nickname
<- :nickname!user@rox-485150F5 JOIN :#mirc
-> irc.foonet.com MODE #mirc
<- :irc.foonet.com 353 nickname = #mirc :nickname @nick7 @nick6 @nick5 @nick4 @nick3 @nick2 @nick1
<- :irc.foonet.com 366 nickname #mirc :End of /NAMES list.
<- :irc.foonet.com 401 nickname n :No such nick/channel
In this connect process the original nick was "n" and the nickname set in the script was "nickname".
Looking at that log, the problem becomes obvious. mIRC sends the MODE +i (set was requested in the options dialog) after the ON CONNECT event is triggered.
Any suggestions on how to fix this, that don't include /timer workarounds, are much appreciated.
Thanks in advance