Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local DEBUG = true -- Active/Désactive le mode debug
- local redstoneSide = "right" -- Change ça si ta lampe est branchée ailleurs
- local modem = peripheral.find("modem") or error("Pas de modem détecté", 0)
- rednet.open(peripheral.getName(modem))
- local container = peripheral.find("inventory") or error("Pas de conteneur détecté", 0)
- -- Fonction pour formater le nom de l'item
- local function formatItemName(itemName)
- if not itemName then return nil end
- itemName = itemName:gsub("minecraft:", "")
- itemName = itemName:gsub("_", " ")
- itemName = itemName:gsub("(%a)(%w*)", function(first, rest)
- return first:upper() .. rest:lower()
- end)
- return itemName
- end
- -- Fonction pour récupérer le nom du premier item trouvé
- local function getFirstItemName()
- local items = container.list()
- for slot, item in pairs(items) do
- return formatItemName(item.name)
- end
- return nil -- Retourne nil si aucun item n'est présent
- end
- while true do
- -- Détecte le premier item présent
- local itemName = getFirstItemName()
- local containerName = itemName or os.getComputerLabel() or "Inconnu"
- -- Détecte le nombre total de slots disponibles dans le conteneur
- local totalSlots = 0
- while true do
- local success, size = pcall(function() return container.size() end)
- if success then
- totalSlots = size
- break
- else
- print("Erreur : Impossible de détecter la taille du conteneur. Retrying...")
- sleep(1)
- end
- end
- local totalItems = 0
- local maxCapacity = totalSlots * 64 -- Chaque slot peut contenir 64 items par défaut
- -- Scan du contenu du coffre
- for slot, item in pairs(container.list()) do
- totalItems = totalItems + item.count
- end
- -- Calcul du pourcentage de remplissage
- local percentFull = (totalItems / maxCapacity) * 100
- -- Création du message à envoyer
- local message = {
- name = containerName, -- Maintenant, c'est le nom formaté de l'item
- current = totalItems,
- max = maxCapacity,
- percent = percentFull
- }
- -- Envoi des données au serveur
- rednet.broadcast(message, "storage_monitor")
- -- Mode debug : afficher les données envoyées et allumer la lampe
- if DEBUG then
- print("Envoyé : " .. containerName)
- print("Total Slots : " .. totalSlots)
- print("Stock actuel : " .. totalItems .. "/" .. maxCapacity)
- print("Remplissage : " .. string.format("%.2f", percentFull) .. "%")
- print("----")
- -- Allumer la lampe Redstone
- redstone.setOutput(redstoneSide, true)
- sleep(1) -- Rester allumé 1s
- redstone.setOutput(redstoneSide, false)
- end
- sleep(5) -- Mise à jour toutes les 5 secondes
- end
Add Comment
Please, Sign In to add comment