Advertisement
RaZgRiZ

QuickConnect 2.5

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