CCCPaste

334d0289d7a31

local colony = peripheral.wrap("top")
 
print("Building Sites: ".. colony.amountOfConstructionSites())
print("Citizens: ".. colony.amountOfCitizens())
local underAttack = "No"
if colony.isUnderAttack() then
    underAttack = "Yes"
end
print("Is under attack? ".. underAttack)
print("Overall happiness: ".. math.floor(colony.getHappiness()))
print("Amount of graves: ".. colony.amountOfGraves())

print("Colony Requests")
print("----------------")

-- Get all requests
local requests = colony.getRequests()
if not requests or #requests == 0 then
    print("No active requests.")
    return
end

-- Keep track of which IDs we've shown (to avoid duplicates)
local shown = {}

for _, req in pairs(requests) do
    if not shown[req.id] then
        shown[req.id] = true  -- mark as displayed

        local count = req.count or 0
        local itemName = "Unknown"

        -- Try to pick a good item name from the list
        if req.items and #req.items > 0 then
            for _, item in pairs(req.items) do
                if item.name then
                    -- Optional: namespace filter
                    local prefix = string.match(item.name, "^(.-):")
                    if prefix == "minecraft" or prefix == "minecolonies" then
                        itemName = item.name
                        break
                    end
                end
            end

            -- fallback if no filtered item matched
            if itemName == "Unknown" then
                itemName = req.items[1].name or req.name or "Unknown"
            end
        elseif req.name then
            itemName = req.name
        end

        print(string.format("%s | %d", itemName, count))
    end
end