Advertisement
RaZgRiZ

QuickConnect 2.4

Nov 13th, 2011
209
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.     && (
  34.         = (listlen (strreplace $arg1 . " ")) 4
  35.     ) (
  36.         < (listfind i (strreplace $arg1 . " ") [|| (> $i 255) (< $i 0)]) 0
  37.     ) (isnum $arg1)
  38. ]
  39.  
  40. // Alias variables for the first use
  41.  
  42. createine _qc_servlist ""
  43. createine _qc_servname ""
  44.  
  45. // Define some commands as helpers
  46.  
  47. _qc_findserv = [listfind i $_qc_servlist [=s $arg1 (at $i 0)]]
  48. _qc_complete = [
  49.     _qc_servname = ""
  50.     looplist i $_qc_servlist [append _qc_servname (at $i 0)]
  51.     _qc_servname = (substr $_qc_servname 1)
  52.     listcomplete qc $_qc_servname
  53.     listcomplete qcdelserv $_qc_servname
  54.     listcomplete qcviewserv $_qc_servname
  55. ]
  56. _qc_info = [
  57.     _qc_sel = (at $_qc_servlist (_qc_findserv $arg1))
  58.     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))
  59. ]
  60.  
  61. // Below here lies the magic, user commands.
  62.  
  63. qcaddserv = [
  64.     cond (|| (> (_qc_findserv $arg1) -1) (isip $arg1)) [
  65.         error "^f3QC entry already exists or is invalid!"
  66.     ] (
  67.         ? (>= $numargs 2) (
  68.             ? (< (indexof $tld (charcase (at (strreplace $arg2 . " ") (- (listlen (strreplace $arg2 . " ")) 1)))) 0) (! (isip $arg2))
  69.         ) (! (isconnected))
  70.     ) [
  71.         error "^f3IP or Domain is invalid!"
  72.     ] [
  73.         append _qc_servlist (
  74.             format ["%1 %2 %3"] @arg1 (
  75.                 ? (> @numargs 1) $arg2 (connectedip)
  76.             ) (
  77.                 ? (> @numargs 2) $arg3 (? (isconnected) (connectedport) 28785)
  78.             )
  79.         )
  80.         echo "^f2QC ^f7entry^f2" $arg1 "^f7has been included successfully!"
  81.         _qc_complete
  82.     ]
  83. ]
  84.  
  85. qcdelserv = [
  86.     if (< (_qc_findserv $arg1) 0) [
  87.         error "^f3QC entry does not exist!"
  88.     ] [
  89.         _qc_servlist = (listdel $_qc_servlist (format ["%1"] (at $_qc_servlist (_qc_findserv $arg1))))
  90.         echo "^f2QC ^f7entry^f2" $arg1 "^f7has been deleted successfully!"
  91.         _qc_complete
  92.     ]
  93. ]
  94.  
  95. qclistserv = [
  96.     if (=s $_qc_servlist "") [error "^f3No registered entries!"] [
  97.         if $numargs [looplist i $_qc_servname [_qc_info $i]] [
  98.             echo (format "^f2%1^f7 Available servers: ^f2%2" (listlen $_qc_servname) (strreplace (prettylist $_qc_servname) "," "^f7,^f2"))
  99.         ]
  100.     ]
  101. ]
  102.  
  103. qcviewserv = [
  104.     if (< (_qc_findserv $arg1) 0) [
  105.         error "^f3QC entry does not exist!"
  106.     ] [_qc_info $arg1]
  107. ]
  108.  
  109. qc = [
  110.     if (=s $_qc_servlist "") [error "^f3No registered entries!"] [
  111.         connect (at (at $_qc_servlist (_qc_findserv $arg1)) 1) (at (at $_qc_servlist (_qc_findserv $arg1)) 2)
  112.     ]
  113. ]
  114.  
  115. // Compile tab completion upon execution, just in case
  116.  
  117. _qc_complete
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement