Advertisement
Forecaster

SU Program

May 14th, 2017
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local event = require("event")
  2. local c = require("component")
  3. local net = require("internet")
  4. local ser = require("serialization")
  5. local computer = require("computer")
  6. local debug = c.debug
  7.  
  8. local run = true
  9.  
  10. local scoreboards = {}
  11. scoreboards["deaths"]           = "deaths"
  12. scoreboards["timealive"]        = "timealive"
  13. scoreboards["timeplayed"]       = "timeplayed"
  14. scoreboards["trains"]           = "trains"
  15. scoreboards["damagedealt"]      = "damagedealt"
  16. scoreboards["damagetaken"]      = "damagetaken"
  17. scoreboards["babyheatkills"]    = "babyheatkills"
  18. scoreboards["blazekills"]       = "blazekills"
  19. scoreboards["cavespiderkills"]  = "CaveSpiderkills"
  20. scoreboards["chickenkills"]     = "Chickenkills"
  21. scoreboards["cowkills"]         = "Cowkills"
  22. scoreboards["creeperkills"]     = "Creeperkills"
  23. scoreboards["cyberzombiekills"] = "cyberzombiekills"
  24. scoreboards["cyberskelekills"]  = "cyberskelekills"
  25. scoreboards["endermankills"]    = "Endermankills"
  26. scoreboards["endermitekills"]   = "Endermitekills"
  27. scoreboards["entityhorsekills"] = "EntityHorsekills"
  28. scoreboards["ghastkills"]       = "Ghastkills"
  29. scoreboards["guardiankills"]    = "Guardiankills"
  30. scoreboards["greygookills"]     = "greygookills"
  31. scoreboards["heatscarkills"]    = "heatscarkills"
  32. scoreboards["impkills"]         = "impkills"
  33. scoreboards["lavaSlimekills"]   = "LavaSlimekills"
  34. scoreboards["magmakills"]       = "magmakills"
  35. scoreboards["mushroomcowkills"] = "MushroomCowkills"
  36. scoreboards["ncreeperkills"]    = "ncreeperkills"
  37. scoreboards["ozelotkills"]      = "Ozelotkills"
  38. scoreboards["pigkills"]         = "Pigkills"
  39. scoreboards["pigzombiekills"]   = "PigZombiekills"
  40. scoreboards["piratekills"]   = "piratekills"
  41. scoreboards["polarbearkills"]   = "PolarBearkills"
  42. scoreboards["rabbitkills"]      = "Rabbitkills"
  43. scoreboards["sheepkills"]       = "Sheepkills"
  44. scoreboards["shulkerkills"]     = "Shulkerkills"
  45. scoreboards["silverfishkills"]  = "Silverfishkills"
  46. scoreboards["skeletonkills"]    = "Skeletonkills"
  47. scoreboards["slimekills"]       = "Slimekills"
  48. scoreboards["spiderkills"]      = "Spiderkills"
  49. scoreboards["squidkills"]       = "Squidkills"
  50. scoreboards["villagerkills"]    = "Villagerkills"
  51. scoreboards["witchkills"]       = "Witchkills"
  52. scoreboards["wolfkills"]        = "Wolfkills"
  53. scoreboards["zombiekills"]      = "zombiekills"
  54. local show_message = true
  55. local url = "http://towerofawesome.org/railcraftpack/api/server_message"
  56.  
  57. local days = 0
  58. local hours = 1
  59. local minutes = 0
  60. local seconds = 0
  61.  
  62. local time = seconds + (minutes * 60) + (hours * 60 * 60) + (days * 60 * 60 * 24)
  63.  
  64. local function get_message()
  65.   return net.request(url)
  66. end
  67.  
  68. local function handle_event(event, _, user, message)
  69.   if scoreboards[message] ~= nil then
  70.     print("Display scoreboard for \"" .. scoreboards[message] .. "\" for 30 seconds")
  71.     debug.runCommand('scoreboard objectives setdisplay sidebar '..scoreboards[message])
  72.     os.sleep(30)
  73.     print("Hiding scoreboard " .. scoreboards[message])
  74.     debug.runCommand('scoreboard objectives setdisplay sidebar')
  75.   else
  76.     if message == "clear" then
  77.       print("Clearing scoreboard")
  78.       debug.runCommand('scoreboard objectives setdisplay sidebar')
  79.     end
  80.     if message == "reset" then
  81.       print("User triggered reboot!")
  82.       debug.runCommand('tellraw @a [{"color":"red","text":"Scoreboard system rebooting..."}]')
  83.       os.sleep(1)
  84.       computer.shutdown(true)
  85.     end
  86.   end
  87. end
  88.  
  89. event.listen("chat_message", handle_event)
  90.  
  91. print("Setup done, main loop running once per " .. days .. " day(s), " .. hours .. " hour(s), " .. minutes .. " minute(s), " .. seconds .. " seconds.")
  92. debug.runCommand('tellraw @a [{"color":"red","text":"Scoreboard system online!"}]')
  93. while run do
  94.   local ev = event.pull(time, "interrupted")
  95.  
  96.   if ev == "interrupted" then
  97.     run = false
  98.   elseif ev == nil then
  99.     if show_message then
  100.       --print("Show message \"" .. messages[message_index][2] .. "\"")
  101.  
  102.       local status, data = pcall(get_message)
  103.  
  104.       local message = ""
  105.       if status then
  106.         for chunk in data do
  107.           message = message .. chunk
  108.         end
  109.         if message == "" then
  110.           print("No message")
  111.         else
  112.           print(message)
  113.         end
  114.       else
  115.         print(data)
  116.       end
  117.  
  118.       if message ~= "" then
  119.         print(debug.runCommand('tellraw @a ' .. message))
  120.       end
  121. --    else
  122. --      print("Display scoreboard for \"" .. scoreboards[scoreboard_index] .. "\" for 20 seconds")
  123. --      debug.runCommand('scoreboard objectives setdisplay sidebar '..scoreboards[scoreboard_index])
  124. --      os.sleep(20)
  125. --      print("Hiding scoreboard " .. scoreboards[scoreboard_index])
  126. --      debug.runCommand('scoreboard objectives setdisplay sidebar')
  127. --      scoreboard_index = scoreboard_index + 1
  128. --      if scoreboards[scoreboard_index] == nil then
  129. --        scoreboard_index = 1
  130. --      end
  131. --      show_message = true
  132.     end
  133.   else
  134.     print("Unknown state")
  135.   end
  136. end
  137.  
  138. event.ignore("chat_message", handle_event)
  139.  
  140. print("End of line.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement