Advertisement
RaZgRiZ

QuickConnect 2

Oct 28th, 2011
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Some generic commands that may be used elsewhere
  2.  
  3. createine = [ if (=s (getalias $arg1) "") [ $arg1 = $arg2 ] ]
  4. append = [$arg1 = (concat (getalias $arg1) $arg2)]
  5. strtochar = [
  6.     temp = ""
  7.     loop c (strlen $arg1) [
  8.         append temp (format ["%1"] (substr $arg1 $c 1))
  9.     ]
  10.     result $temp
  11. ]
  12.  
  13. // Ugly and could use many improvements, but for
  14. // the most part, it does its job pretty nicely
  15.  
  16. isip = [
  17.     result (
  18.         && (
  19.             = (listlen (strreplace $arg1 . " ")) 4
  20.         ) (
  21.             < (listfind i (strreplace $arg1 . " ") [|| (> $i 255) (< $i 0)]) 0
  22.         ) (
  23.             < (listfind p (strtochar $arg1) [< (indexof "0 1 2 3 4 5 6 7 8 9 ." $p) 0]) 0
  24.         )
  25.     )
  26. ]
  27.  
  28. // Alias variables for the first use
  29.  
  30. createine qc_servlist ""
  31. createine qc_servname ""
  32. createine qc_sel      ""
  33.  
  34. // Define some commands as helpers
  35.  
  36. qc_findserv = [listfind i $qc_servlist [=s @arg1 (at $i 0)]]
  37. qc_complete = [
  38.     qc_servname = ""
  39.     looplist i $qc_servlist [append qc_servname (at $i 0)]
  40.     qc_servname = (substr $qc_servname 1)
  41.     listcomplete qc $qc_servname
  42.     listcomplete delqcserv $qc_servname
  43.     listcomplete viewqcserv $qc_servname
  44. ]
  45.  
  46. // Below here lies the magic, user commands.
  47.  
  48. addqcserv = [
  49.     cond (|| (> (qc_findserv $arg1) -1) (isip $arg1)) [
  50.         error "^f3QC entry already exists or is invalid!"
  51.     ] (
  52.         ? (>= $numargs 2) (
  53.             ? (< (indexof "com org net de us" (at (strreplace $arg2 . " ") (- (listlen (strreplace $arg2 . " ")) 1))) 0) (! (isip $arg2))
  54.         ) (! (isconnected))
  55.     ) [
  56.         error "^f3Incorrect IP was rejected!"
  57.     ] [
  58.         append qc_servlist (
  59.             format ["%1 %2 %3"] @arg1 (
  60.                 ? (isconnected) (connectedip) @arg2
  61.             ) (
  62.                 ? (isconnected) (connectedport) (? (> @numargs 2) @arg3 28785)
  63.             )
  64.         )
  65.         echo "^f2QC ^f7entry has been included successfully!"
  66.         qc_complete
  67.     ]
  68. ]
  69.  
  70. delqcserv = [
  71.     if (< (qc_findserv $arg1) 0) [
  72.         error "^f3QC entry does not exist!"
  73.     ] [
  74.         qc_servlist = (listdel $qc_servlist (format ["%1"] (at $qc_servlist (qc_findserv $arg1))))
  75.         qc_complete
  76.     ]
  77. ]
  78.  
  79. listqcserv = [
  80.     echo (format "^f2%1^f7 Available servers: ^f2%2" (listlen $qc_servname) (strreplace $qc_servname " " "^f7, ^f2"))
  81. ]
  82.  
  83. viewqcserv = [
  84.     qc_sel = (at $qc_servlist (qc_findserv $arg1))
  85.     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))
  86. ]
  87.  
  88. qc = [
  89.     if (!=s $qc_servlist "") [
  90.         connect (at (at $qc_servlist (qc_findserv $arg1)) 1) (at (at $qc_servlist (qc_findserv $arg1)) 2)
  91.     ]
  92. ]
  93.  
  94. // Compile tab completion upon execution, just in case
  95.  
  96. qc_complete
  97.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement