This script will allow you to connect to one or more eggdrops without the need for a telnet program or dcc chat.
Unlike most of my scripts, I'm actually interested in this one, so if you have any suggestions for improvements please post them here.
Getting Started:
- Paste to a blank remote and save with a unique filename.
- Right Click the channel or status and select EggDrop Connect.
- Fill in all the boxes and click Connect.
Explanation of the input boxes:
- IP Address = The ip address of the eggdrop
- Port = The port the bot is listening for connections on.
- Handle = The name the bot knows you by(not your current nick).
- Password = The password you set with the eggdrop.
- Code: Select all
;EggDrop Connect by Ford_Lawmower irc.geekshed.net #Script-Help
menu channel,status,menubar {
.EggDrop Connect:EggDropConnect
}
dialog EggDropConnect {
title "EggDrop Connect"
size -1 -1 105 101
option dbu
text "IP Address:", 1, 4 10 37 8, right
text "Port:", 2, 4 22 37 8, right
text "Handle:", 3, 5 34 37 8, right
text "Password:", 4, 5 47 37 8, right
edit "", 5, 45 9 55 10, autohs
edit "", 6, 45 21 55 10, autohs
edit "", 7, 45 33 55 10, autohs
edit "", 8, 45 46 55 10, pass autohs
text "", 9, 4 62 97 13
button "Connect", 10, 5 82 37 12
button "Close", 11, 64 82 37 12, cancel
}
alias -l EggDropConnect dialog $iif($dialog(EggDropConnect),-v,-m) EggDropConnect EggDropConnect
On *:dialog:EggDropConnect:Sclick:10: {
tokenize 32 $did($dname,5) $did($dname,6) $did($dname,7) $did($dname,8)
if ($numtok($1-,32) < 4) {
did -a $dname 9 Please fill in all the boxes and try again.
.timereggcomment 1 4 did -a $dname 9
}
elseif (!$regex($1,(?:[\d]{1,3})\x2E(?:[\d]{1,3})\x2E(?:[\d]{1,3})\x2E(?:[\d]{1,3}))) {
did -a $dname 9 IP Address must be in the form of xx.xx.xx.xx Check it and try again.
.timereggcomment 1 4 did -a $dname 9
}
elseif ($2 !isnum) {
did -a $dname 9 Port must be a number. Check it and try again.
.timereggcomment 1 4 did -a $dname 9
}
elseif ($numtok($1-,32) > 4) {
did -a $dname 9 Unknown error in one of the fields. Please review them and try again.
.timereggcomment 1 4 did -a $dname 9
}
else { eggconnect $1- }
}
alias eggconnect {
var %sockname $+(EggDropConnect,$1,:,$2,-,TO,-,$3)
if ($sock(%sockname)) sockclose %sockname
sockopen %sockname $1 $2
sockmark %sockname $3 $4
if (!$window($+(@,%sockname))) { window -e $+(@,%sockname) }
echo $+(@,%sockname) Connecting to your Eggdrop. Please Wait.......
}
on *:sockopen:EggDropConnect*: {
if ($sockerr) {
eggecho Socket Error Cannot Connect...
eggecho No one seems to be listening on $mid($gettok($sockname,1,45),15-)
eggecho Check your IP Address / Port Settings and Try Again.
sockclose $sockname
}
else { sockwrite -nt $sockname $gettok($sock($sockname).mark,1,32) }
}
on *:sockread:EggDropConnect*: {
var %eggconnect | sockread %eggconnect
if (%eggconnect) {
eggdispformat $+(@,$sockname) $iif($gettok($sock($sockname).mark,3,32),$+(<,$v1,>),eggconnect) %eggconnect
if (ÿû isin $gettok(%eggconnect,2,46)) sockwrite -nt $sockname $gettok($sock($sockname).mark,2,32)
elseif ($regex(%eggconnect,/Connected to (.*)\x2C running eggdrop/i)) sockmark $sockname $sock($sockname).mark $regml(1)
elseif (%eggconnect == You don't have access.) {
eggecho eggconnect It appears that the eggdrop doesn't know you by $+(",$gettok($sock($sockname).mark,1,32),")
eggecho eggconnect Please Try again with the Name that the bot knows you by.
sockclose $sockname
}
elseif (Negative on that isin %eggconnect) {
eggecho eggconnect It appears that the password you entered is incorrect.
eggecho eggconnect Please try again with the correct password.
sockclose $sockname
}
}
}
alias -l eggecho echo $+(@,$sockname) $1-
alias -l eggsend {
sockwrite -nt $iif($sockname,$v1 $1-,$1-)
echo $+(@,$iif($sockname,$v1 $me $1-,$1 $+(<,$me,>) $2-))
}
alias -l eggdispformat { echo $1-3 $replace($4-,[1m,[04,[0m,]) }
On *:input:@EggdropConnect*: { if ($left($1,1) != /) eggsend $gettok($active,1,64) $1- }
On *:close:@EggdropConnect*: { sockclose $mid($target,2-) }