Savage_Me55iah

Jarvis experiment

Aug 6th, 2013
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.91 KB | None | 0 0
  1.  
  2.  
  3. online = "yes"
  4.  
  5.  
  6. local switches_id = "comp_id"
  7.  
  8. local vault = "vault"
  9.  
  10. local switches_id2 = "comp_id2"
  11.  
  12. local vault2 = "vault2"
  13.  
  14. local users = "whitelist"
  15.  
  16. local owner = "owner_whitelist"
  17.  
  18. local edit = "edit_whitelist"
  19.  
  20.  
  21.  
  22. -- FUNCTIONS --
  23.  
  24. function load_whitelists()
  25.  
  26. chatter.say("Jarvis: Loading...", 200)
  27.  
  28. local switches = nil
  29. local fileHandle = fs.open (switches_id, 'r')
  30. switches = textutils.unserialize (fileHandle.readAll())
  31. fileHandle.close()
  32.  
  33. local owner_only = nil
  34. local fileHandle = fs.open (vault, 'r')
  35. owner_only = textutils.unserialize (fileHandle.readAll())
  36. fileHandle.close()
  37.  
  38. local switchesid = nil
  39. local fileHandle = fs.open (switches_id2, 'r')
  40. switchesid = textutils.unserialize (fileHandle.readAll())
  41. fileHandle.close()
  42.  
  43. local owner_onlyid = nil
  44. local fileHandle = fs.open (vault2, 'r')
  45. owner_onlyid = textutils.unserialize (fileHandle.readAll())
  46. fileHandle.close()
  47.  
  48. local whitelist = nil
  49. local fileHandle = fs.open (users, 'r')
  50. whitelist = textutils.unserialize (fileHandle.readAll())
  51. fileHandle.close()
  52.  
  53. local edit_whitelist = nil
  54. local fileHandle = fs.open (edit, 'r')
  55. edit_whitelist = textutils.unserialize (fileHandle.readAll())
  56. fileHandle.close()
  57.  
  58. local owner_whitelist = nil
  59. local fileHandle = fs.open (owner, 'r')
  60. owner_whitelist = textutils.unserialize (fileHandle.readAll())
  61. fileHandle.close()
  62.  
  63. chatter.say("Jarvis: Done sir", 200)
  64.  
  65. end
  66.  
  67. function save_whitelist()
  68. chatter.say("Jarvis: Adding...", 200)
  69. local fileHandle = fs.open (users, 'w')
  70. chatter.say("Jarvis: Saving...", 200)
  71. fileHandle.write (textutils.serialize (whitelist))
  72. fileHandle.close()
  73. chatter.say("Jarvis: Done sir", 200)
  74. load_whitelists()
  75. end
  76.  
  77. function save_edit()
  78. chatter.say("Jarvis: Adding...", 200)
  79. local fileHandle = fs.open (edit, 'w')
  80. chatter.say("Jarvis: Saving...", 200)
  81. fileHandle.write (textutils.serialize (edit_whitelist))
  82. fileHandle.close()
  83. chatter.say("Jarvis: Done sir", 200)
  84. load_whitelists()
  85. end
  86.  
  87. function save_owner()
  88. chatter.say("Jarvis: Adding...", 200)
  89. local fileHandle = fs.open (owner, 'w')
  90. chatter.say("Jarvis: Saving...", 200)
  91. fileHandle.write (textutils.serialize (owner_whitelist))
  92. fileHandle.close()
  93. chatter.say("Jarvis: Done sir", 200)
  94. load_whitelists()
  95. end
  96.  
  97. function save_switches()
  98. chatter.say("Jarvis: Adding...", 200)
  99. local fileHandle = fs.open (switches_id, 'w')
  100. chatter.say("Jarvis: Saving...", 200)
  101. fileHandle.write (textutils.serialize (switches))
  102. fileHandle.close()
  103. chatter.say("Jarvis: Done sir", 200)
  104.  
  105. chatter.say("Jarvis: Adding...", 200)
  106. local fileHandle = fs.open (switches_id2, 'w')
  107. chatter.say("Jarvis: Saving...", 200)
  108. fileHandle.write (textutils.serialize (switchesid))
  109. fileHandle.close()
  110. chatter.say("Jarvis: Done sir", 200)
  111.  
  112. load_whitelists()
  113. end
  114.  
  115.  
  116. function save_vault()
  117. chatter.say("Jarvis: Adding...", 200)
  118. local fileHandle = fs.open (vault, 'w')
  119. chatter.say("Jarvis: Saving...", 200)
  120. fileHandle.write (textutils.serialize (owner_only))
  121. fileHandle.close()
  122. chatter.say("Jarvis: Done sir", 200)
  123.  
  124. chatter.say("Jarvis: Adding...", 200)
  125. local fileHandle = fs.open (vault2, 'w')
  126. chatter.say("Jarvis: Saving...", 200)
  127. fileHandle.write (textutils.serialize (owner_onlyid))
  128. fileHandle.close()
  129. chatter.say("Jarvis: Done sir", 200)
  130.  
  131. load_whitelists()
  132. end
  133.  
  134.  
  135. function clear()
  136. event = "blah"
  137. id = "blah"
  138. text = "blah"
  139. end
  140.  
  141. local function findPeripheral( t, e )
  142. for _,side in pairs( rs.getSides() ) do
  143. if peripheral.getType( side ) == t then
  144. return peripheral.wrap( side )
  145. end
  146. end
  147.  
  148. error("No "..(e or t).." attached to the computer", 0)
  149. end
  150.  
  151. print("adding chat")
  152. local chatter = findPeripheral("chat", "chatbox")
  153. print("adding wireless")
  154. local rednet = findPeripheral("rednet", "rednet")
  155. print("done")
  156.  
  157. function switch()
  158. rednet.send(id3, "switch")
  159. end
  160.  
  161. function Event()
  162. local event, id, text = os.pullEventRaw("chat")
  163.  
  164. id = id:lower()
  165. text = text:lower()
  166.  
  167. if event == "chat" then
  168. if whitelist[id] then
  169.  
  170. if switches[text] then
  171. chatter.say("Jarvis: confirmed sir", 200)
  172. id3 = switchesid[text]
  173. switch()
  174. end
  175.  
  176. if text == "ill be leaving jarvis" then
  177. chatter.say("Jarvis: Until you return Master Savage, Security Lockdown", 200)
  178. online = "no"
  179. rednet.send(Monitor, "online_no")
  180. end
  181.  
  182. if text == "i am here jarvis" then
  183. chatter.say("Jarvis: Welcome back Master Savage bringing systems releasing lockdown", 200)
  184. online = "yes"
  185. rednet.send(Monitor, "online_yes")
  186. end
  187.  
  188. if text == "jarvis chart a course for mordor" then
  189. chatter.say("Jarvis: One doesn't simply walk into Mordor sir", 200)
  190. end
  191.  
  192. if text == "dwarves" then
  193. chatter.say("Jarvis: Nobody tosses a dwarf sir", 200)
  194. end
  195.  
  196. if text == "jarvis who is batman?" then
  197. chatter.say("Jarvis: I'm BATMAN!", 200)
  198. chatter.say("Jarvis: ...", 200)
  199. chatter.say("Jarvis: Sir", 200)
  200. end
  201.  
  202. if edit_whitelist[id] then
  203.  
  204. if text == "need to edit you jarvis" then
  205. chatter.say("Jarvis: oh ah I need maintence go ahead sir", 200)
  206. print("You can now edit me: "..fs.getName(shell.getRunningProgram()))
  207. return
  208. end
  209.  
  210. elseif text == "jarvis add switch" then
  211. chatter.say("Jarvis: Yes sir state name then id, say >Jarvis clear< to cancel", 200)
  212. clear()
  213.  
  214. repeat
  215. local event, id, text1 = os.pullEventRaw("chat")
  216. until edit_whitelist[id]
  217.  
  218. repeat
  219. local event, id, text2 = os.pullEventRaw("chat")
  220. until edit_whitelist[id]
  221.  
  222.  
  223. if text ~= "jarvis clear" and text2 ~= "jarvis clear" then
  224. id2 = tonumber (text2)
  225. switches[text1] = true
  226. switchesid[text1] = id2
  227. save_switches()
  228. end
  229.  
  230.  
  231. elseif owner_whitelist[id] then
  232.  
  233. if text == "jarvis add vault" then
  234. chatter.say("Jarvis: Yes sir state name then id, say >Jarvis clear< to cancel", 200)
  235. clear()
  236.  
  237. repeat
  238. local event, id, text1 = os.pullEventRaw("chat")
  239. until owner_whitelist[id]
  240.  
  241. repeat
  242. local event, id, text2 = os.pullEventRaw("chat")
  243. until owner_whitelist[id]
  244.  
  245.  
  246. if text ~= "jarvis clear" and text2 ~= "jarvis clear" then
  247. id2 = tonumber (text2)
  248. owner_only[text1] = true
  249. owner_onlyid[text1] = id2
  250. save_vault()
  251. end
  252.  
  253.  
  254. elseif text == "jarvis add to whitelist" then
  255. chatter.say("Jarvis: Yes sir who would you like to add to the Whitelist?", 200)
  256. clear()
  257.  
  258. repeat
  259. local event, id, text = os.pullEventRaw("chat")
  260. until owner_whitelist[id]
  261.  
  262. if text ~= "jarvis clear" then
  263. whitelist[text] = true
  264. save_whitelist()
  265. end
  266.  
  267. elseif text == "jarvis add to edit" then
  268. chatter.say("Jarvis: Yes sir who would you like to add to the Edit List?", 200)
  269. clear()
  270. repeat
  271. local event, id, text = os.pullEventRaw("chat")
  272. until owner_whitelist[id]
  273.  
  274. if text ~= "jarvis clear" then
  275. edit_whitelist[text] = true
  276. save_edit()
  277. end
  278.  
  279. elseif text == "jarvis add to owner" then
  280. chatter.say("Jarvis: Yes sir am I to have another owner?", 200)
  281. clear()
  282. repeat
  283. local event, id, text = os.pullEventRaw("chat")
  284. until owner_whitelist[id]
  285.  
  286. if text ~= "jarvis clear" then
  287. owner_whitelist[text] = true
  288. save_owner()
  289. end
  290.  
  291. elseif text == "jarvis remove from whitelist" then
  292. clear()
  293.  
  294. repeat
  295. local event, id, text = os.pullEventRaw("chat")
  296. until owner_whitelist[id]
  297.  
  298. if text ~= "jarvis clear" then
  299. whitelist[text] = false
  300. save_whitelist()
  301. end
  302.  
  303. elseif text == "jarvis remove from edit" then
  304. clear()
  305. repeat
  306. local event, id, text = os.pullEventRaw("chat")
  307. until owner_whitelist[id]
  308.  
  309. if text ~= "jarvis clear" then
  310. edit_whitelist[text] = false
  311. save_edit()
  312. end
  313.  
  314. elseif text == "jarvis remove from owner" then
  315. clear()
  316. repeat
  317. local event, id, text = os.pullEventRaw("chat")
  318. until owner_whitelist[id]
  319.  
  320. if text ~= "jarvis clear" then
  321. owner_whitelist[text] = false
  322. save_owner()
  323. end
  324. end
  325. end
  326. end
  327. end
  328. end
  329.  
  330. -- PROGRAM --
  331.  
  332. load_whitelists()
  333.  
  334. chatter.say("Welcome back to Craft Au sir", 200)
  335.  
  336. while true do
  337. Event()
  338. end
Advertisement
Add Comment
Please, Sign In to add comment