SHOW:
|
|
- or go back to the newest paste.
1 | -- CraftNanny | |
2 | -- Redstone module | |
3 | local version = 2 | |
4 | ||
5 | -- pastebin for installer | |
6 | - | local installer = "Q8ah3K9S" |
6 | + | local installer = "PTGLduYm" |
7 | local time = 0 | |
8 | local token = '0' | |
9 | -- this scanners name | |
10 | local module_name = '' | |
11 | -- owenrs username on website | |
12 | local username = '' | |
13 | local type = '' | |
14 | ||
15 | local top = '' | |
16 | local bottom = '' | |
17 | local front = '' | |
18 | local back = '' | |
19 | local left = '' | |
20 | local right = '' | |
21 | ||
22 | local top_input = 0 | |
23 | local bottom_input = 0 | |
24 | local front_input = 0 | |
25 | local back_input = 0 | |
26 | local left_input = 0 | |
27 | local right_input = 0 | |
28 | ||
29 | -- write text to the terminal screen | |
30 | function draw_text_term(x, y, text, text_color, bg_color) | |
31 | term.setTextColor(text_color) | |
32 | term.setBackgroundColor(bg_color) | |
33 | term.setCursorPos(x,y) | |
34 | write(text) | |
35 | end | |
36 | ||
37 | -- draw a line on the terminal screen | |
38 | function draw_line_term(x, y, length, color) | |
39 | term.setBackgroundColor(color) | |
40 | term.setCursorPos(x,y) | |
41 | term.write(string.rep(" ", length)) | |
42 | end | |
43 | ||
44 | function bars() | |
45 | draw_line_term(1, 1, 51, colors.lime) | |
46 | draw_line_term(1, 19, 51, colors.lime) | |
47 | draw_text_term(15, 1, 'CraftNanny Redstone Module', colors.gray, colors.lime) | |
48 | - | draw_text_term(10, 19, 'www.craftnanny.org', colors.gray, colors.lime) |
48 | + | draw_text_term(10, 19, 'www.mrjohndowe.com/craftnanny', colors.gray, colors.lime) |
49 | end | |
50 | ||
51 | function terminal_screen() | |
52 | term.clear() | |
53 | ||
54 | bars() | |
55 | draw_text_term(1, 2, 'Module: ', colors.lime, colors.black) | |
56 | draw_text_term(10, 2, module_name, colors.white, colors.black) | |
57 | draw_text_term(1, 3, 'Owner: ', colors.lime, colors.black) | |
58 | draw_text_term(8, 3, username, colors.white, colors.black) | |
59 | draw_text_term(1, 4 , string.rep("-", 51), colors.lime, colors.black) | |
60 | ||
61 | draw_text_term(2, 6, 'Top: '..top, colors.white, colors.black) | |
62 | draw_text_term(2, 7, 'Bottom: '..bottom, colors.white, colors.black) | |
63 | draw_text_term(2, 8, 'Front: '..front, colors.white, colors.black) | |
64 | draw_text_term(2, 9, 'Back: '..back, colors.white, colors.black) | |
65 | draw_text_term(2, 10, 'Right: '..right, colors.white, colors.black) | |
66 | draw_text_term(2, 11, 'Left: '..left, colors.white, colors.black) | |
67 | end | |
68 | ||
69 | -- retrieves token from local text file | |
70 | function load_config() | |
71 | sr = fs.open("config.txt", "r") | |
72 | token = sr.readLine() | |
73 | module_name = sr.readLine() | |
74 | username = sr.readLine() | |
75 | type = sr.readLine() | |
76 | sr.close() | |
77 | end | |
78 | ||
79 | -- called for new installations and when the scanner needs to be updated | |
80 | function run_installer() | |
81 | if fs.exists("install") then | |
82 | fs.delete("install") | |
83 | end | |
84 | shell.run("pastebin get "..installer.." install") | |
85 | sleep(1) | |
86 | shell.run("install") | |
87 | end | |
88 | ||
89 | ||
90 | ------ Start module specific code --------- | |
91 | ||
92 | ||
93 | function string:split(delimiter) | |
94 | local result = { } | |
95 | local from = 1 | |
96 | local delim_from, delim_to = string.find( self, delimiter, from ) | |
97 | while delim_from do | |
98 | table.insert( result, string.sub( self, from , delim_from-1 ) ) | |
99 | from = delim_to + 1 | |
100 | delim_from, delim_to = string.find( self, delimiter, from ) | |
101 | end | |
102 | table.insert( result, string.sub( self, from ) ) | |
103 | return result | |
104 | end | |
105 | ||
106 | function phone_home() | |
107 | getInputs() | |
108 | ||
109 | - | response = http.post("http://craftnanny.org/code/redstone.php", |
109 | + | response = http.post("http://mrjohndowe.com/craftnanny/code/redstone.php", |
110 | "token="..token.."&id="..os.getComputerID().."&top_input="..top_input.."&bottom_input="..bottom_input.."&front_input="..front_input.."&back_input="..back_input.."&left_input="..left_input.."&right_input="..right_input) | |
111 | return_string = response.readAll() | |
112 | ||
113 | result_array = string.split(return_string,",") | |
114 | current_version = result_array[1] | |
115 | ||
116 | if tonumber(result_array[2]) == 1 then | |
117 | rs.setOutput('top', true) | |
118 | top = 'true' | |
119 | else | |
120 | rs.setOutput('top', false) | |
121 | top = 'false' | |
122 | end | |
123 | if tonumber(result_array[3]) == 1 then | |
124 | rs.setOutput('bottom', true) | |
125 | bottom = 'true' | |
126 | else | |
127 | rs.setOutput('bottom', false) | |
128 | bottom = 'false' | |
129 | end | |
130 | if tonumber(result_array[4]) == 1 then | |
131 | rs.setOutput('back', true) | |
132 | back = 'true' | |
133 | else | |
134 | rs.setOutput('back', false) | |
135 | back = 'false' | |
136 | end | |
137 | if tonumber(result_array[5]) == 1 then | |
138 | rs.setOutput('front', true) | |
139 | front = 'true' | |
140 | else | |
141 | rs.setOutput('front', false) | |
142 | front = 'false' | |
143 | end | |
144 | if tonumber(result_array[6]) == 1 then | |
145 | rs.setOutput('left', true) | |
146 | left = 'true' | |
147 | else | |
148 | rs.setOutput('left', false) | |
149 | left = 'false' | |
150 | end | |
151 | if tonumber(result_array[7]) == 1 then | |
152 | rs.setOutput('right', true) | |
153 | right = 'true' | |
154 | else | |
155 | rs.setOutput('right', false) | |
156 | right = 'false' | |
157 | end | |
158 | ||
159 | if tonumber(current_version) > version then | |
160 | run_installer() | |
161 | end | |
162 | end | |
163 | ||
164 | function getInputs() | |
165 | if rs.getInput('top') then | |
166 | top_input = 1 | |
167 | else | |
168 | top_input = 0 | |
169 | end | |
170 | if rs.getInput('bottom') then | |
171 | bottom_input = 1 | |
172 | else | |
173 | bottom_input = 0 | |
174 | end | |
175 | if rs.getInput('front') then | |
176 | front_input = 1 | |
177 | else | |
178 | front_input = 0 | |
179 | end | |
180 | if rs.getInput('back') then | |
181 | back_input = 1 | |
182 | else | |
183 | back_input = 0 | |
184 | end | |
185 | if rs.getInput('left') then | |
186 | left_input = 1 | |
187 | else | |
188 | left_input = 0 | |
189 | end | |
190 | if rs.getInput('right') then | |
191 | right_input = 1 | |
192 | else | |
193 | right_input = 0 | |
194 | end | |
195 | ||
196 | end | |
197 | ||
198 | ------ End module specific code --------- | |
199 | ||
200 | ||
201 | function start_loop() | |
202 | phone_home() | |
203 | while true do | |
204 | terminal_screen() | |
205 | ||
206 | -- main active status with server | |
207 | time = time + 1 | |
208 | if time > 30 then | |
209 | time=0 | |
210 | phone_home() | |
211 | end | |
212 | sleep(1) | |
213 | end | |
214 | end | |
215 | ||
216 | function start() | |
217 | term.clear() | |
218 | term.setCursorPos(1,1) | |
219 | ||
220 | if fs.exists("config.txt") then | |
221 | load_config() | |
222 | start_loop() | |
223 | else | |
224 | run_installer() | |
225 | end | |
226 | end | |
227 | ||
228 | start() |