This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

[Solved] Unable to DCC Chat my bot

General support and discussion of Eggdrop bots.
Post Reply
F
Fill
Halfop
Posts: 80
Joined: Sun Jan 18, 2009 6:08 pm

[Solved] Unable to DCC Chat my bot

Post by Fill »

Hi guys,

I need some help. I'm a newbie with eggdrops and have recently set one up (named RoBotX).

The problem is, I can't dcc chat with him. And yes, I checkd http://forum.egghelp.org/viewtopic.php?t=10399 and tried everything, although my bot is hosted on my machine. Me and my bot are connected to an external IRC network (irc.mindforge.org), but are on the same machine, so I think it should be easier and faster to dcc chat with it.

When I /dcc chat RoBotX, I just get a message telling me "Waiting for acknowledgement".

If I /ctcp RoBotX CHAT, I get the dialog box asking me if I want to accept the DCC chat with RoBotX, I click "Accept", and all I get is this:

Code: Select all

DCC Chat session
Client: RoBotX (85.xxx.xxx.xx)
Time: Sun Jan 18 22:02:46 2009
Acknowledging chat request...
Unable to connect
DCC session closed
I set the DCC connections port to 1026 and even though the bot is on the same machine as myself, I forwarded port 1026 on my router to my local ip. I don't think there's any problem between the bot and me, because he's able to send me the dcc chat request.


Oh, and I would also like your help to make a good auto-identify script. I tried this one:

Code: Select all

bind notc - "*If you do not change within*" identify:notc
proc identify:notc { nick uhost handle text dest } {
 global botnick nickserv identcmd identpass
 if { $nick == NickServ } {
  puthelp "PRIVMSG NickServ :identify <password>"
  putlog "Identifying: NickServ"
 }
}
But it doesn't work because sometimes NickServ goes to RoBotX's ignore list (he assumes NickServ as a flooder, is there a way I can add the services as an exception?)

And I have just tried this one:

Code: Select all

proc evnt:init_server {type} {
  global botnick
  putquick "MODE $botnick +ix"
  putserv "PRIVMSG NickServ :identify <password>" 

}
But this one doesn't work because when there's some lag, the bot connects and sends the identify command before receiving the NickServ notices...

So my other question is, can you help me and make a script that would make the bot wait 10 seconds before identifying to nickserv? And if you can explain me, I would thank you :)


Thanks in advance,
Fill
Last edited by Fill on Wed Jan 28, 2009 1:43 pm, edited 1 time in total.
n
nml375
Revered One
Posts: 2860
Joined: Fri Aug 04, 2006 2:09 pm

Post by nml375 »

What kind of router are you using?
Some routers do not allow you to use forwarded ports from within the protected zone, which will break dcc-chat within the protected zone.

Edit:
As for your second query, you could use the utimer command to delay the second script. Posting a short example below:

Code: Select all

proc evnt:init_server {type} {
 putquick "MODE $::botnick +ix"
 utimer 10 [list putserv "PRIVMSG NickServ :identify <password>"]
}
NML_375
F
Fill
Halfop
Posts: 80
Joined: Sun Jan 18, 2009 6:08 pm

Post by Fill »

hi,

Thanks for the identify script, it worked!!! :lol: :lol: :lol:

Now I just have to fix DCC chat issue >.<

I have a Netgear CVG834G

Thanks for the help.

And I heard that I also could telnet the bot and use the same commands as I would use in DCC chat session - if that's right, what is telnet and how can I do it locally?
n
nml375
Revered One
Posts: 2860
Joined: Fri Aug 04, 2006 2:09 pm

Post by nml375 »

Unfortunately, I was unable to find any documentation for that specific model on netgear's site. Checking the documentation for other models that appear similar (all running firmwares built on eCos), reveals the following:
Local computers must access the local server using the computer’s local LAN address
(192.168.0.11 in the example in Figure 4-6 above). Attempts by local computers to access the
server using the external WAN IP address will fail.
If this text appears in your manual in the end of the section covering port forwarding, you're pretty much screwed (sorry).
There is, however, a few workarounds. If you've opened a telnet-port, you may telnet to your bot using your favourite telnet client. You could also create a script such as below to make your bot send a dcc-chat request to you using the local network IP rather than the external one. Just remember to replace "port" with whatever port your eggdrop is listening at.

Code: Select all

bind msg - dccme MsgDccMe
proc MsgDccMe {nick host handle text} {
 puthelp "PRIVMSG $nick :\001DCC CHAT chat [myip] port\001"
}
As for "what is telnet", well, it's a simple plaintext terminal application. In a sense, you could considder SSH being an encrypted extension to telnet. Most systems do provide some trivial telnet client these days, although some are better than others ;) If you are hosting your eggdrop on some linux or *BSD-system, you'll for certain have some kind of telnet client on that system. Many SSH clients also provide unencrypted (telnet) operation.

Edit: Fixed minor "oops".
Last edited by nml375 on Wed Jan 21, 2009 8:23 pm, edited 1 time in total.
NML_375
F
Fill
Halfop
Posts: 80
Joined: Sun Jan 18, 2009 6:08 pm

Post by Fill »

hi,

thanks for the help, I tried your script but I got this:

Code: Select all

[14:23] wrong # args: should be "proc name args body"
    while executing
"proc msg - dccme MsgDccMe"
    (file "eggdrop.conf" line 1396)
[14:23] * CONFIG FILE NOT LOADED (NOT FOUND, OR ERROR)
User avatar
Sir_Fz
Revered One
Posts: 3794
Joined: Sun Apr 27, 2003 3:10 pm
Location: Lebanon
Contact:

Post by Sir_Fz »

That looks more like a bind than a proc, so change "proc" to "bind."
n
nml375
Revered One
Posts: 2860
Joined: Fri Aug 04, 2006 2:09 pm

Post by nml375 »

Indeed it is, and I screwed up :oops:
Editing the previous post to correct the error.
NML_375
F
Fill
Halfop
Posts: 80
Joined: Sun Jan 18, 2009 6:08 pm

Post by Fill »

woow, thanks, it worked!!! I am now able to control my bot via DCC chat and the /identify script is working properly.

Thanks!
Post Reply