Common Servers — File Browser
CommonServersv1.2 / CommonServersv1.2 / comserv / comserv.mrc
comserv.mrc — 6.73 KB — Download this file
;____________________________________________________________________________________________________________
; comserv.mrc - Common servers control for mIRC v6.15+ by Andy
; Contact: palmer.andy@gmail.com
:
; See readme.txt for documentation and version history
;____________________________________________________________________________________________________________
on *:LOAD: {
;Version check
if ($version < 6.15) {
echo -agc info * Common servers requires at least mIRC v6.15 to operate, the script will now be unloaded
.timer 1 2 unload -rs comserv.mrc }
else {
echo -agc info2 * Welcome to common servers. You can begin adding servers to your list by typing /csm or accessing the dialog via the menubar
%cserv.startp = 1
}
}
on *:UNLOAD: { unset %cserv.* }
on *:START: {
;Prompt to connect to all servers in the list
if (%cserv.startp) && ($isfile($ctxt)) && ($input(Connect to your common servers?,yq,Connect Prompt)) { comserv }
}
on *:CONNECT: {
;Auto-join channels if it is enabled for that server
if ($getttok(4)) && ($getttok(3)) { join $getttok(3) }
}
;Shortcut aliases
alias -l cstab { return $eval($+ $chr(9) $+,1) }
alias -l cmdx { dll $+(",$scriptdir,\mdx.dll,") $1- }
alias -l cmdxv { return $scriptdir $+ \views.mdx }
alias -l ctxt { return $+(",$scriptdir,\servers.txt,") }
alias -l getttok { return $gettok($read($ctxt,w,$+(*,$server,*)),$1,9) }
alias -l getctok {
if ($1 == 0) { return $gettok($gettok($did(csmanage,1).seltext,1,9),-1,32) $cstab $gettok($gettok($did(csmanage,1).seltext,2,9),-1,32) $cstab $gettok($gettok($did(csmanage,1).seltext,3,9),-1,32) }
else { return $gettok($gettok($did(csmanage,1).seltext,$1,9),-1,32) }
}
alias -l aj { return $gettok($read($ctxt,$calc($did(csmanage,1).sel - 1)),4,9) }
;Menubar items
menu menubar,status {
Common Servers
.Manage: csm
.Connect: csc
}
;Connection aliases
alias comserv { filter -fk $ctxt comconnect * }
alias comconnect {
tokenize 9 $1-
if ($scon(0) == 1) && ($scon(1).status == disconnected) { server $2 }
else { server -m $2 }
}
alias csc {
if (%cserv.prompt) && ($input(Connect to your common servers?,yq,Connect Prompt)) { comserv }
if (!%cserv.prompt) { comserv }
}
;context menu
alias cmenu {
if ($window(@cs)) { window -c @cs }
window -pBhdo +dL @cs $mouse.dx $mouse.dy 125 75
fillcmenu x
window -a @cs
}
alias -l fillcmenu {
if (!$1) { clear @cs }
drawfill -r @cs $rgb(212,208,200) $rgb(212,208,200) 0 0
drawtext @cs 1 Tahoma 11 15 10 Edit Server
drawtext @cs 1 Tahoma 11 15 30 Remove Server
drawtext @cs 1 Tahoma 11 15 50 Help
}
on *:ACTIVE:*: {
if ($lactive == @cs) { window -c @cs }
}
menu @cs {
; Highlighting
mouse: {
; edit
if ($mouse.y < 30) && ($getdot(@cs,1,1) != $rgb(10,36,106)) {
fillcmenu
drawrect -rf @cs $rgb(10,36,106) 1 1 1 125 23
drawtext @cs 15 Tahoma 11 15 10 Edit Server
}
; remove
if ($mouse.y > 30) && ($mouse.y < 50) && ($getdot(@cs,1,28) != $rgb(10,36,106)) {
fillcmenu
drawrect -rf @cs $rgb(10,36,106) 1 1 28 125 23
drawtext @cs 15 Tahoma 11 15 30 Remove Server
}
; keys
if ($mouse.y > 50) && ($getdot(@cs,1,51) != $rgb(10,36,106)) {
fillcmenu
drawrect -rf @cs $rgb(10,36,106) 1 1 48 125 23
drawtext @cs 15 Tahoma 11 15 50 Help
}
}
; Clicks
sclick: {
if ($mouse.y < 30) && ($did(csmanage,1).seltext) {
write -l $+ $calc($did(csmanage,1).sel - 1) $ctxt $$input(New server description for $getctok(1),eq,Edit server / Description,$getctok(1)) $cstab $$input(New server address for $getctok(2),eq,Edit server / Address,$getctok(2)) $cstab $$input(Edit your auto join channels for $getctok(1) $crlf $+ Seperate with commas $+($chr(40),#chan1,$chr(44),#chan2,$chr(44),#chan3,$chr(41)),eq,Edit server / Channels,$getctok(3)) $cstab $iif($$input(AutoJoin Channels for this server?,y,Edit server / Auto Join),1,0)
loadbuf -ro csmanage 1 $ctxt
window -c @cs
}
if ($mouse.y > 30) && ($mouse.y < 50) && ($did(csmanage,1).seltext) {
if ($input(Remove $getctok(1) $+ ?,yq,Confirm Removal)) {
write -dl $+ $calc($did(csmanage,1).sel - 1) $ctxt
echo -sgc info2 * Removed $+(',$getctok(2),') from Common Servers
loadbuf -ro csmanage 1 $ctxt
}
window -c @cs
}
if ($mouse.y > 50) {
run $scriptdir $+ readme.txt
window -c @cs
}
}
}
;Management dialog
alias csm dialog $iif($dialog(csmanage),-v,-m) csmanage csmanage
dialog csmanage {
title "Common Servers"
size -1 -1 195 90
option dbu
list 1, 0 1 195 68, size
button "&Add", 2, 5 75 35 10
button "&Done", 5, 45 75 35 10, ok cancel default
check "Start Prompt", 6, 85 75 43 10
check "AutoJoin", 7, 163 75 50 10
check "Prompt?", 8, 128 75 35 10
}
;close popup on dialog exit
on *:DIALOG:csmanage:exit:*: {
if ($window(@cs)) { window -c @cs }
}
;Add the final pieces to the dialog
on *:DIALOG:csmanage:init:*: {
if (!$isfile($ctxt)) { write $ctxt }
cmdx MarkDialog csmanage
cmdx SetControlMDX csmanage 1 listview report rowselect labeltip > $cmdxv
did -i csmanage 1 1 headerdims 100,1 150,2 190,3
did -i csmanage 1 1 headertext Description $chr(9) $+ Server $chr(9) $+ Auto Join
loadbuf -o csmanage 1 $ctxt
did -b csmanage 7
if (%cserv.startp) { did -c csmanage 6 }
if (%cserv.prompt) { did -c csmanage 8 }
}
on *:DIALOG:csmanage:sclick:*: {
if ($did == 1) {
if (*rclick* iswm $did($did,1)) { cmenu }
if (!$did(1).seltext) { window -c @cs }
did $iif($did(1).seltext,-e,-b) csmanage 7
if ($aj) { did -c csmanage 7 }
else { did -u csmanage 7 }
}
;start prompt toggle
if ($did == 6) { %cserv.startp = $iif(%cserv.startp,0,1) }
;auto join toggle
if ($did == 7) && ($did(1).seltext) {
if (!$aj) {
echo -sgc info2 * Auto join on $+(',$getctok(2),') is now enabled
write -l $+ $calc($did(1).sel - 1) $ctxt $getctok(0) $cstab 1
}
else {
echo -sgc info2 * Auto join on $+(',$getctok(2),') is now disabled
write -l $+ $calc($did(1).sel - 1) $ctxt $getctok(0) $cstab 0
}
}
;prompt toggle
if ($did == 8) { %cserv.prompt = $iif(%cserv.prompt,0,1) }
;adding
if ($did == 2) {
write $ctxt $$input(Server Description,eq,Add a server / Description) $cstab $$input(Server address (irc.server.com:port),eq,Add a server / Address) $cstab $input(Channels to auto-join $crlf $+ Seperate with commas $+($chr(40),#chan1,$chr(44),#chan2,,$chr(32),$chr(91),mychankey,$chr(93),$chr(41)),eq,Add a server / Channels) $cstab $iif($input(Enable auto join for this server?,y,Add a server / Auto join toggle),1,0)
loadbuf -ro csmanage 1 $ctxt
}
}