MagmaLP

Enderchest-ME_Einrichtung

Dec 1st, 2023 (edited)
855
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 8.11 KB | None | 0 0
  1. --Dieses Programm 'Einrichtung' nennen!
  2.  
  3. BundledCableSide = "back"
  4. Sensorside = "bottom"
  5. PIPE_SIDE = "right"
  6.  
  7. function gespeichert()
  8.     term.setTextColor(colors.lime)
  9.     print("gespeichert")
  10.     term.setTextColor(colors.lightBlue)    
  11. end
  12.  
  13. function EinrichtungsStatus()
  14.     term.setCursorPos(1,1)
  15.     term.clear()
  16.     print("Systemeinrichtung")
  17.     print("~~~~~~~~~~~~~~~~~ \n")
  18.     print(" -> Dauerhaft normaler Start \n")
  19.     print(" -> 1x Probe Start \n")
  20.     print(" -> Seiten Inhalte erstellen \n")
  21.     print(" -> Seiten Inhalte ändern")
  22.     print(" -> Alle Seiten Inhalte löschen \n")
  23.     print(" -> Menü-Items erstellen / ändern")
  24.     print(" -> Alle Menü-Items löschen")
  25.     local event, button, X, Y = os.pullEvent("mouse_click")
  26.     if X >= 01 and Y == 04 then         --Dauerhaft normaler Start
  27.         local file = fs.open("Starteinstellungen", "w")
  28.         file.write("0")
  29.         file.close()
  30.     elseif X >= 01 and Y == 06 then     --1x Probe Start
  31.         local file = fs.open("Starteinstellungen", "w")
  32.         file.write("1")
  33.         file.close()
  34.     elseif X >= 01 and Y == 08 then     --Seiten Inhalte erstellen
  35.         local file = fs.open("Starteinstellungen", "w")
  36.         file.write("2")
  37.         file.close()
  38.     elseif X >= 01 and Y == 10 then     --Seiten Inhalte korrigieren
  39.         local file = fs.open("Starteinstellungen", "w")
  40.         file.write("3")
  41.         file.close()
  42.     elseif X >= 01 and Y == 11 then     --Alle Seiten Inhalte löschen
  43.         local file = fs.open("Starteinstellungen", "w")
  44.         file.write("3.1")
  45.         file.close()
  46.     elseif X >= 01 and Y == 13 then     --Seiten Menü-Items erstellen
  47.         local file = fs.open("Starteinstellungen", "w")
  48.         file.write("4")
  49.         file.close()
  50.     elseif X >= 01 and Y == 14 then     --Alle Seiten Menü-Items löschen
  51.         local file = fs.open("Starteinstellungen", "w")
  52.         file.write("4.1")
  53.         file.close()
  54.     else
  55.         EinrichtungsStatus()
  56.     end
  57. end
  58.  
  59. ------------Program Start--------------------------------------------------------------------------------------------------
  60. os.loadAPI("ocs/apis/sensor")
  61. sen = sensor.wrap(Sensorside)
  62.  
  63. EinrichtungsStatus()
  64. file = fs.open("Starteinstellungen" , "r")
  65. Starteinstellungen = file.readLine()
  66. file.close()
  67.  
  68. if Starteinstellungen == "0" then           --Dauerhaft normaler Start
  69.     print("Es müssen alle 9 Menü-Items erstellt sein, damit")
  70.     print("das Programm richtig funktioniert !!!")
  71.     print(" ")
  72.     print("Bestätige das die System-Konfiguration")
  73.     print("abgeschlossen ist mit: 'ja' oder 'nein'")
  74.     term.setTextColor(colors.red)
  75.     Eingabe = io.read()
  76.     term.setTextColor(colors.lightBlue)
  77.     if Eingabe == "Ja" or Eingabe == "ja" then
  78.         gespeichert()
  79.         print("hier muss der pastebin link hin!")
  80.         sleep(2)
  81.        
  82.     elseif Eingabe == "NEIN" or Eingabe == "nein" or Eingabe == "Nein" then
  83.         sleep(1)
  84.         shell.run("Einrichtung")
  85.     else
  86.         sleep(1)
  87.         shell.run("Einrichtung")
  88.     end
  89.  
  90. elseif Starteinstellungen == "1" then       --1x Probe Start
  91.     print("noch nichts erstellt")
  92.     sleep(1)
  93.     shell.run("Einrichtung")
  94. elseif Starteinstellungen == "2" then       --Seiten Inhalte erstellen
  95.     print("Welche Seite wird erstellt: ")
  96.     print("1-9 sind möglich")
  97.     Page = tonumber(read())
  98.     gespeichert()
  99.     print("Bitte alle Items für Seite " .. Page .. " in die Chest legen")
  100.     print("Bitte danach mit 'Enter' bestätigen")
  101.     read()
  102.  
  103.     if fs.exists("ItemsInPage" .. Page) == false then
  104.         local file = fs.open("ItemsInPage" .. Page, "w")
  105.         file.close()
  106.     else
  107.         print("Es wurden bereits Items für Seite " .. Page .. " festgelegt!")
  108.         print("Mit 'ja' bestätigen um Daten zu überschreiben")
  109.         term.setTextColor(colors.red)
  110.         Eingabe = io.read()
  111.         term.setTextColor(colors.lightBlue)
  112.         if Eingabe == "Ja" or Eingabe == "ja" then
  113.             local file = fs.open("ItemsInPage" .. Page, "w")
  114.             file.close()
  115.             gespeichert()
  116.         else
  117.             shell.run("Einrichtung")
  118.         end
  119.     end
  120.    
  121.     s = sen.getTargets()
  122.     function getS()
  123.         for v, k in pairs(s) do
  124.             if k.Name == "ME Wireless Access Point" then  
  125.                 target = v
  126.             end
  127.         end
  128.         return target
  129.     end
  130.  
  131.     f = getS()
  132.     s1 = sen.getTargetDetails(target)
  133.  
  134.     MaxItems = 0
  135.     local items = {}    --Alle Möglichen 45 Items auf 0 setzen
  136.     for i = 1, 45 do
  137.         items["Item" .. i] = 0
  138.     end
  139.  
  140.     for i, item in ipairs(s1.Items) do  --IDs für erkannte Items manuell vergeben
  141.         io.write("ID für '" .. item.Name .. "' eingeben: " .. "\n")
  142.         term.setTextColor(colors.red)
  143.         local ID = tostring(io.read())
  144.         term.setTextColor(colors.lightBlue)
  145.  
  146.         -- Überprüfen, ob ein Doppelpunkt in der eingegebenen ID vorhanden ist
  147.         if not string.find(ID, "%:") then
  148.             ID = ID .. ":0"
  149.         end
  150.  
  151.         --Speicherformat festlegen
  152.         items["Item" .. i] = item.Name .."-".. item.Size .."-".. ID
  153.         MaxItems = MaxItems + 1     -- Anzahl der erkannten Items ermitteln
  154.     end
  155.  
  156.     for i = 1, MaxItems do  --Alle erkannten Items in Liste schreiben
  157.         local file = fs.open("ItemsInPage" .. Page, "a")
  158.         file.write(items["Item" .. i].."\n")
  159.         file.close()
  160.     end
  161.     gespeichert()
  162.     print("Seite " .. Page .. " wurde erstellt")
  163.     print(" ")
  164.     print("Falls du dich vertippt hast kannst du die IDs noch ändern")
  165.     print("Bitte mit 'Enter' bestätigen")
  166.     read()
  167.     shell.run("Einrichtung")
  168. elseif Starteinstellungen == "3" then       --Seiten Inhalt korrigieren
  169.     print("Welche Seite möchtest du Korrigieren? ")
  170.     error("Antworte mit:                               'edit ItemsInPage1' bis 'edit ItemsInPage9'")
  171.     term.setTextColor(colors.red)
  172. elseif Starteinstellungen == "4" then       --Seiten Menüs erstellen
  173.     term.setCursorPos(1,1)
  174.     term.clear()
  175.     print(" ")
  176.     print("Bitte Seitenmenü-Items in die Oberste Chest-Zeile legen.")
  177.     print(" ")
  178.     print("Keines dieser Items darf in den Seiten vorhanden sein, die später aufgerufen werden.")
  179.     print(" ")
  180.     print("Zum Start der Item-Abfragen mit 'Enter' bestätigen")
  181.     read()
  182.    
  183.     s = sen.getTargets()
  184.     function getS()
  185.         for v, k in pairs(s) do
  186.             if k.Name == "ME Wireless Access Point" then  
  187.                 target = v
  188.             end
  189.         end
  190.         return target
  191.     end
  192.  
  193.     f = getS()
  194.     s1 = sen.getTargetDetails(target)
  195.  
  196.     local maxItems = 9 -- Maximale Anzahl erlaubter Elementen
  197.     if #s1.Items <= maxItems then
  198.         for i, item in ipairs(s1.Items) do
  199.             if i <= maxItems then
  200.                 io.write("Menu-Item Page " .. i) io.write(" -> " .. item.Name .. "\n")
  201.  
  202.                 local fileName = "Menu-Item-" .. i  -- Dynamischer Dateiname
  203.                 local file = fs.open(fileName, "w")
  204.                 file.write(item.Name)
  205.                 file.close()
  206.             else
  207.                 break  -- Stoppt den Loop, wenn die maximale Anzahl erreicht ist
  208.             end
  209.         end
  210.     else
  211.         print("Die Anzahl der Menü-Items ist größer als " .. maxItems .. ".")
  212.         print("Es können maximal " .. maxItems .. " Menü-Items erstellt werden")
  213.         print(" ")
  214.         print("Mit 'Enter' bestätigen")
  215.         read()
  216.         shell.run("Einrichtung")
  217.     end
  218.     print(" ")
  219.     print("Fertig  -  Mit 'Enter' bestätigen")
  220.     read()
  221.     shell.run("Einrichtung")
  222. elseif Starteinstellungen == "4.1" then     --Alle Seiten Menü-Items löschen        
  223.     print("Sicher das du alle Seiten Menü-Items löschen willst?")
  224.     print("Mit 'ja' bestätigen oder 'nein' beenden.")
  225.     Inhalt = read()
  226.     if Inhalt == "ja" or Inhalt == "Ja" then
  227.         for i = 1,9 do
  228.             local fileName = "Menu-Item-" .. i  -- Dynamischer Dateiname
  229.             fs.delete(fileName)
  230.         end
  231.     elseif Inhalt == "nein" or Inhalt == "Nein" then
  232.         shell.run("Einrichtung")
  233.     else
  234.         print("Eingabe ungültig")
  235.         sleep(2)
  236.         shell.run("Einrichtung")
  237.     end
  238.     shell.run("Einrichtung")
  239. end
  240.  
  241.  
  242.  
Advertisement
Add Comment
Please, Sign In to add comment