Advertisement
RaZgRiZ

QuickConnect 2.3

Oct 30th, 2011
389
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Some generic lists that may be used elsewhere
  2.  
  3. tld = [com net org de us cz fr gb jp ro ru se uk ws]
  4. char_high = [ABCDEFGHIJKLMNOPQRSTUVWXYZ]
  5. char_low  = [abcdefghijklmnopqrstuvwxyz]
  6.  
  7. // Some generic commands that may be used elsewhere
  8.  
  9. createine = [ if (=s (getalias $arg1) "") [ $arg1 = $arg2 ] ]
  10. append = [$arg1 = (concat (getalias $arg1) $arg2)]
  11.  
  12. charcase = [
  13.     str = $arg1
  14.     bool = [? $arg1 $char_high $char_low]
  15.     loop c (strlen $arg1) [
  16.         char = (substr $str $c 1)
  17.         if (> (strstr (bool (! $arg2)) $char) -1) [
  18.             str = (strreplace $str $char (substr (bool $arg2) (strstr (bool (! $arg2)) $char) 1))
  19.         ]
  20.     ]
  21.     result $str
  22. ]
  23.  
  24. isnum = [
  25.     bool = 1
  26.     loop n (strlen $arg1) [
  27.         if (< (strstr "0123456789." (substr $arg1 $n 1)) 0) [bool = 0]
  28.     ]
  29.     result $bool
  30. ]
  31.  
  32. isip = [
  33.     result (
  34.         && (
  35.             = (listlen (strreplace $arg1 . " ")) 4
  36.         ) (
  37.             < (listfind i (strreplace $arg1 . " ") [|| (> $i 255) (< $i 0)]) 0
  38.         ) (isnum $arg1)
  39.     )
  40. ]
  41.  
  42. // Alias variables for the first use
  43.  
  44. createine qc_servlist ""
  45. createine _qc_servname ""
  46.  
  47. // Define some commands as helpers
  48.  
  49. _qc_findserv = [listfind i $qc_servlist [=s $arg1 (at $i 0)]]
  50. _qc_complete = [
  51.     _qc_servname = ""
  52.     looplist i $qc_servlist [append _qc_servname (at $i 0)]
  53.     _qc_servname = (substr $_qc_servname 1)
  54.     listcomplete qc $_qc_servname
  55.     listcomplete delqcserv $_qc_servname
  56.     listcomplete viewqcserv $_qc_servname
  57. ]
  58. _qc_info = [
  59.     qc_sel = (at $qc_servlist (_qc_findserv $arg1))
  60.     echo (format "^f7Name: ^f2%1 ^f7%2: ^f2%3 ^f7Port: ^f2%4" (at $qc_sel 0) (? (isip (at $qc_sel 1)) IP Domain) (at $qc_sel 1) (at $qc_sel 2))
  61. ]
  62.  
  63. // Below here lies the magic, user commands.
  64.  
  65. qcaddserv = [
  66.     cond (|| (> (_qc_findserv $arg1) -1) (isip $arg1)) [
  67.         error "^f3QC entry already exists or is invalid!"
  68.     ] (
  69.         ? (>= $numargs 2) (
  70.             ? (< (indexof $tld (charcase (at (strreplace $arg2 . " ") (- (listlen (strreplace $arg2 . " ")) 1)))) 0) (! (isip $arg2))
  71.         ) (! (isconnected))
  72.     ) [
  73.         error "^f3IP or Domain is invalid!"
  74.     ] [
  75.         append qc_servlist (
  76.             format ["%1 %2 %3"] @arg1 (
  77.                 ? (> @numargs 1) $arg2 (connectedip)
  78.             ) (
  79.                 ? (> @numargs 2) $arg3 (? (isconnected) (connectedport) 28785)
  80.             )
  81.         )
  82.         echo "^f2QC ^f7entry^f2" $arg1 "^f7has been included successfully!"
  83.         _qc_complete
  84.     ]
  85. ]
  86.  
  87. qcdelserv = [
  88.     if (< (_qc_findserv $arg1) 0) [
  89.         error "^f3QC entry does not exist!"
  90.     ] [
  91.         qc_servlist = (strreplace $qc_servlist (format ["%1"] (at $qc_servlist (_qc_findserv $arg1))) "")
  92.         echo "^f2QC ^f7entry^f2" $arg1 "^f7has been deleted successfully!"
  93.         _qc_complete
  94.     ]
  95. ]
  96.  
  97. qclistserv = [
  98.     if (!=s $qc_servlist "") [
  99.         if $numargs [looplist i $_qc_servname [_qc_info $i]] [
  100.             echo (format "^f2%1^f7 Available servers: ^f2%2" (listlen $_qc_servname) (strreplace (prettylist $_qc_servname) "," "^f7,^f2"))
  101.         ]
  102.     ] [error "^f3No registered entries!"]
  103. ]
  104.  
  105. qcviewserv = [
  106.     if (< (_qc_findserv $arg1) 0) [
  107.         error "^f3QC entry does not exist!"
  108.     ] [_qc_info $arg1]
  109. ]
  110.  
  111. qc = [
  112.     if (!=s $qc_servlist "") [
  113.         connect (at (at $qc_servlist (_qc_findserv $arg1)) 1) (at (at $qc_servlist (_qc_findserv $arg1)) 2)
  114.     ] [error "^f3No registered entries!"]
  115. ]
  116.  
  117. // Compile tab completion upon execution, just in case
  118.  
  119. _qc_complete
  120.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement