Files
wnsrc/gamemodes/darkrp/plugins/shop_viewowners/sv_plugin.lua
lifestorm 73479cff9e Upload
2024-08-04 22:55:00 +03:00

78 lines
2.0 KiB
Lua

--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
local PLUGIN = PLUGIN
util.AddNetworkString("ix.shopOverview.createPanel")
function PLUGIN:OpenShopInfo(client)
if (!client:IsCombine() and !client:GetCharacter():HasFlags("U")) then
return
end
local housing = ix.plugin.Get("housing")
local housingApartments = housing.apartments
local requiredInfo = {}
for k, v in pairs(housingApartments) do
if v.type == "shop" then
requiredInfo[#requiredInfo + 1] = {
shopName = v.name,
tenants = table.GetKeys(v.tenants)
}
end
end
for k, v in pairs(requiredInfo) do
for tKey, tenant in pairs(v.tenants) do
housing:LookUpCardItemIDByCID(tostring(tenant), function(result)
local idCardID = result[1].idcard or false
local charID
if !result then return end
if !ix.item.instances[idCardID] then
ix.item.LoadItemByID(idCardID, false, function(card)
if !card then return end
charID = card:GetData("owner")
end)
else
charID = ix.item.instances[idCardID]:GetData("owner")
end
local character = ix.char.loaded[charID]
if character then
requiredInfo[k]["tenants"][tKey] = character:GetName()
else
local query = mysql:Select("ix_characters_data")
query:Where("key", "genericdata")
query:Where("id", tostring(charID))
query:Select("data")
query:Callback(function(genResult)
if (!istable(genResult) or #genResult == 0) then
return
end
local genericData = util.JSONToTable(genResult[1]["data"])
requiredInfo[k]["tenants"][tKey] = genericData.name
end)
query:Execute()
end
end)
end
end
timer.Simple(0.25, function()
if !IsValid(client) then
return
end
net.Start("ix.shopOverview.createPanel")
net.WriteString(util.TableToJSON(requiredInfo))
net.Send(client)
end)
end