1
0
Fork 0
forked from Simnation/Main
Main/resources/[tools]/kq_link/links/frameworks/vrp/server.lua
2025-06-07 08:51:21 +02:00

124 lines
2.9 KiB
Lua

if Link.framework ~= 'vrp' then
return
end
local Tunnel = module("vrp", "lib/Tunnel")
local Proxy = module("vrp", "lib/Proxy")
vRP = Proxy.getInterface("vRP")
function GetPlayersWithJob(jobs)
local matchingPlayers = {}
local users = vRP.getUsers()
local isTable = type(jobs) == 'table'
for userId, _ in pairs(users) do
local src = vRP.getUserSource(userId)
if src then
if isTable then
for _, name in ipairs(jobs) do
if vRP.hasGroup(userId, name) then
table.insert(matchingPlayers, src)
break
end
end
elseif vRP.hasGroup(userId, jobs) then
table.insert(matchingPlayers, src)
end
end
end
return matchingPlayers
end
function CanPlayerAfford(player, amount)
local user_id = vRP.getUserId({player})
if user_id then
local player_money = vRP.getMoney({user_id})
return player_money >= amount
end
return false
end
function AddPlayerMoney(player, amount, account)
local user_id = vRP.getUserId({player})
if user_id then
if account == "bank" then
vRP.giveBankMoney({user_id, amount})
else
vRP.giveMoney({user_id, amount})
end
return true
end
return false
end
function RemovePlayerMoney(player, amount)
local user_id = vRP.getUserId({player})
if user_id then
if CanPlayerAfford(player, amount) then
vRP.tryPayment({user_id, amount})
return true
end
end
return false
end
function GetPlayerItemData(player, item)
local user_id = vRP.getUserId(player)
local itemCount = vRP.getInventoryItemAmount(user_id, item)
return {
count = itemCount
}
end
function GetPlayerItemData(player, item)
local user_id = vRP.getUserId({player})
if not user_id then
return { count = 0 }
end
local itemCount = vRP.getInventoryItemAmount({user_id, item})
return {
count = itemCount or 0
}
end
function GetPlayerItemCount(player, item)
local data = GetPlayerItemData(player, item)
return data.count
end
function AddPlayerItem(player, item, amount, meta)
local user_id = vRP.getUserId({player})
if not user_id then
return false
end
vRP.giveInventoryItem({user_id, item, amount})
return true
end
function RemovePlayerItem(player, item, amount)
local user_id = vRP.getUserId({player})
if not user_id then
return false
end
return vRP.tryGetInventoryItem({user_id, item, amount})
end
function RegisterUsableItem(item, cb)
return true -- needs to be defined on the item itself in VRP
end
function OpenCustomStash()
-- Not available in vrp
return true
end
function GetStashItems()
-- Not available in vrp
return {}
end