local Module = require(121652996197382)
local API = Module.API
local AddonId = 5378 -- This is required for interacting with the API
local Menu = nil
local OrderModule = require(game.ServerScriptService:WaitForChild("OrderLogModule"))
local orders = {}
local Menu = API:Invoke("GetMenu", { ID=AddonId })
local function GetItem(ID)
for _, Category in pairs(Menu) do
if Category and Category.Items then
for _, Item in pairs(Category.Items) do
if Item and Item.ID == ID then
return Item
end
end
end
end
return nil
end
return {
Name = "Order Logging",
Initialise = function(ID)
AddonId = ID
Menu = API:Invoke("GetMenu", { ID=AddonId })
end,
OrderCreated = function(Order)
local items = {}
local itemsToProcess = Order.Items
for _, itemData in pairs(itemsToProcess) do
local itemId = itemData.ID
local fullItemDetails = GetItem(itemId)
if fullItemDetails then
table.insert(items, fullItemDetails.Name)
else
warn("Item with ID:", itemId, "not found in the menu.")
end
end
local order = OrderModule.createOrder(Order.Player, Order.Player, {
items = items,
status = "waiting_for_preparation",
})
local player = Order.Player
orders[player] = order.id
items = {}
end,
OrderRemoved = function(Order)
OrderModule.setCancelled(orders[Order.Player])
orders[Order.Player] = nil
end,
OrderClaimed = function(Order, Player)
OrderModule.setPreparing(orders[Order.Player], Player)
end,
OrderUnclaimed = function(Order, Player)
OrderModule.setReprepare(orders[Order.Player])
end,
OrderCompleted = function(Order, Player)
OrderModule.setComplete(orders[Order.Player])
orders[Order.Player] = nil
end,
OrdersUpdated = function(Orders)
end,
}