View difference between Paste ID: msx6xN1g and wmHHMDeY
SHOW: | | - or go back to the newest paste.
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!"
56+
		error "^f3Invalid IP was rejected!"
57
	] [
58
		append qc_servlist (
59
			format ["%1 %2 %3"] @arg1 (
60-
				? (isconnected) (connectedip) @arg2
60+
				? (>= @numargs 2) @arg2 (connectedip)
61
			) (
62-
				? (isconnected) (connectedport) (? (> @numargs 2) @arg3 28785)
62+
				? (> @numargs 2) @arg3 (? (isconnected) (connectedport) 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))))
74+
		qc_servlist = (strreplace $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