Skip to content

Commit 698998e

Browse files
committed
Update v2.8.0
1 parent 15106ac commit 698998e

File tree

18 files changed

+713
-408
lines changed

18 files changed

+713
-408
lines changed

bridge/esx/client.lua

+126
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
if MSK.Bridge.Framework.Type ~= 'ESX' then return end
2+
3+
AddEventHandler('onResourceStart', function(resource)
4+
if GetCurrentResourceName() ~= resource then return end
5+
6+
if ESX.IsPlayerLoaded() then
7+
MSK.Bridge.isPlayerLoaded = true
8+
ESX.PlayerLoaded = true
9+
10+
local playerData = ESX.GetPlayerData()
11+
ESX.PlayerData = playerData
12+
MSK.Bridge.PlayerData = playerData
13+
14+
SetPlayerData()
15+
end
16+
end)
17+
18+
RegisterNetEvent(MSK.Bridge.Framework.Events.setPlayerData, function(key, value)
19+
local invoke = GetInvokingResource()
20+
if not invoke or invoke ~= 'msk_core' then return end
21+
22+
MSK.Bridge.PlayerData[key] = value
23+
24+
SetPlayerData()
25+
end)
26+
27+
RegisterNetEvent(MSK.Bridge.Framework.Events.playerLoaded, function(xPlayer, isNew, skin)
28+
ESX.PlayerData = xPlayer
29+
ESX.PlayerLoaded = true
30+
31+
MSK.Bridge.isPlayerLoaded = true
32+
MSK.Bridge.PlayerData = xPlayer
33+
34+
SetPlayerData()
35+
end)
36+
37+
RegisterNetEvent(MSK.Bridge.Framework.Events.playerLogout, function()
38+
ESX.PlayerLoaded = false
39+
ESX.PlayerData = {}
40+
41+
MSK.Bridge.isPlayerLoaded = false
42+
MSK.Bridge.PlayerData = {}
43+
end)
44+
45+
RegisterNetEvent(MSK.Bridge.Framework.Events.setJob, function(newJob, lastJob)
46+
MSK.Bridge.PlayerData.job = newJob
47+
SetPlayerData()
48+
end)
49+
50+
MSK.Bridge.SetPlayerData = function(key, value)
51+
MSK.Bridge.PlayerData[key] = value
52+
ESX.SetPlayerData(key, value)
53+
SetPlayerData()
54+
end
55+
56+
SetPlayerData = function()
57+
local self = MSK.Bridge.PlayerData
58+
59+
self.dob = self.dateofbirth
60+
61+
local job = self.job
62+
63+
if job then
64+
self.job = {
65+
name = job.name,
66+
label = job.name,
67+
grade = job.grade,
68+
grade_name = job.grade_name,
69+
grade_label = job.grade_label,
70+
grade_salary = job.grade_salary,
71+
isBoss = job.grade_name == 'boss'
72+
}
73+
end
74+
75+
if MSK.Bridge.Inventory == 'ox_inventory' then
76+
self.inventory = exports.ox_inventory:GetPlayerItems()
77+
self.loadout = self.inventory
78+
elseif MSK.Bridge.Inventory == 'qs-inventory' then
79+
self.inventory = exports['qs-inventory']:getUserInventory()
80+
self.loadout = self.inventory
81+
end
82+
83+
self.Notification = function(title, message, typ, duration)
84+
MSK.Notification(title, message, typ, duration)
85+
end
86+
self.Notify = self.Notification
87+
88+
self.GetAccount = function(account)
89+
for i = 1, #self.accounts do
90+
if self.accounts[i].name == account then
91+
return self.accounts[i]
92+
end
93+
end
94+
return nil
95+
end
96+
97+
self.Set = function(key, val)
98+
MSK.Bridge.SetPlayerData(key, val)
99+
end
100+
101+
self.Get = function(val)
102+
return self[val]
103+
end
104+
105+
self.HasItem = function(itemName, metadata)
106+
return MSK.HasItem(itemName, metadata)
107+
end
108+
109+
self.IsDead = function()
110+
local isDead = IsPlayerDead(MSK.Player.clientId) or IsEntityDead(MSK.Player.ped)
111+
112+
if GetResourceState("visn_are") ~= "missing" then
113+
local healthBuffer = exports.visn_are:GetHealthBuffer()
114+
isDead = healthBuffer.unconscious
115+
end
116+
117+
if GetResourceState("osp_ambulance") ~= "missing" then
118+
local data = exports.osp_ambulance:GetAmbulanceData(MSK.Player.serverId)
119+
isDead = data.isDead or data.inLastStand
120+
end
121+
122+
return isDead
123+
end
124+
125+
MSK.Bridge.PlayerData = self
126+
end

bridge/esx/server.lua

+141
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
if MSK.Bridge.Framework.Type ~= 'ESX' then return end
2+
3+
RegisterNetEvent(MSK.Bridge.Framework.Events.playerLoaded, function(playerId, xPlayer, isNew)
4+
MSK.LoadedPlayers[playerId] = xPlayer
5+
end)
6+
7+
RegisterNetEvent(MSK.Bridge.Framework.Events.playerLogout, function(playerId)
8+
MSK.LoadedPlayers[playerId] = nil
9+
end)
10+
11+
RegisterNetEvent(MSK.Bridge.Framework.Events.setJob, function(playerId, newJob, lastJob)
12+
MSK.LoadedPlayers[playerId].job = newJob
13+
end)
14+
15+
GetPlayerData = function(playerData)
16+
local self = playerData
17+
18+
self.GetInventory = playerData.getInventory
19+
self.AddItem = playerData.addInventoryItem
20+
self.RemoveItem = playerData.removeInventoryItem
21+
self.HasItem = playerData.hasItem
22+
self.GetItem = playerData.getInventoryItem
23+
self.CanSwapItem = playerData.canSwapItem
24+
self.CanCarryItem = playerData.canCarryItem
25+
self.AddMoney = playerData.addAccountMoney
26+
self.RemoveMoney = playerData.removeAccountMoney
27+
self.AddWeapon = playerData.addWeapon
28+
self.RemoveWeapon = playerData.removeWeapon
29+
self.HasWeapon = playerData.hasWeapon
30+
self.Set = playerData.setMeta
31+
self.Get = playerData.getMeta
32+
self.SetJob = playerData.setJob
33+
34+
self.dob = playerData.dateofbirth
35+
36+
local job = self.job
37+
self.job = {
38+
name = job.name,
39+
label = job.name,
40+
grade = job.grade,
41+
grade_name = job.grade_name,
42+
grade_label = job.grade_label,
43+
grade_salary = job.grade_salary,
44+
isBoss = job.grade_name == 'boss'
45+
}
46+
47+
self.Notification = function(title, message, typ, duration)
48+
MSK.Notification(self.source, title, message, typ, duration)
49+
end
50+
self.Notify = self.Notification
51+
52+
self.GetAccount = function(account)
53+
for i = 1, #self.accounts do
54+
if self.accounts[i].name == account:lower() then
55+
return self.accounts[i]
56+
end
57+
end
58+
return nil
59+
end
60+
61+
if MSK.Bridge.Inventory ~= 'default' then
62+
self = FunctionOverride(self)
63+
end
64+
65+
return self
66+
end
67+
68+
MSK.GetPlayer = function(player, data)
69+
local Player
70+
71+
if player.player then
72+
Player = player.player
73+
elseif player.source then
74+
Player = ESX.GetPlayerFromId(player.source)
75+
elseif player.identifier then
76+
Player = ESX.GetPlayerFromIdentifier(player.identifier)
77+
elseif player.citizenid then
78+
Player = ESX.GetPlayerFromIdentifier(player.citizenid)
79+
elseif player.phone then
80+
Player = nil
81+
end
82+
83+
if data == nil then data = true end
84+
85+
return data and GetPlayerData(Player) or Player
86+
end
87+
exports('GetPlayer', MSK.GetPlayer)
88+
89+
MSK.GetPlayerServerId = function(Player)
90+
return Player.source
91+
end
92+
MSK.GetServerId = MSK.GetPlayerServerId
93+
exports('GetPlayerServerId', MSK.GetPlayerServerId)
94+
95+
MSK.GetPlayerIdentifier = function(Player)
96+
if tonumber(Player) then
97+
playerId = tostring(Player)
98+
local identifier = GetPlayerIdentifierByType(playerId, "license")
99+
return identifier and identifier:gsub("license:", "")
100+
end
101+
102+
return Player.identifier
103+
end
104+
MSK.GetIdentifier = MSK.GetPlayerIdentifier
105+
exports('GetPlayerIdentifier', MSK.GetPlayerIdentifier)
106+
107+
MSK.GetPlayerJob = function(player)
108+
local Player = MSK.GetPlayer(player, false)
109+
return Player.job.name
110+
end
111+
exports('GetPlayerJob', MSK.GetPlayerJob)
112+
113+
MSK.HasPlayerItem = function(playerId, itemName)
114+
if not playerId then
115+
MSK.Logging('error', 'Player on Function MSK.HasItem does not exist!')
116+
return false
117+
end
118+
119+
local xPlayer = ESX.GetPlayerFromId(playerId)
120+
121+
if type(itemName) ~= 'table' then
122+
local hasItem = xPlayer.getInventoryItem(itemName)
123+
124+
if hasItem and hasItem.count > 0 then
125+
return hasItem
126+
end
127+
128+
return false
129+
end
130+
131+
for i = 1, #itemName do
132+
local item = itemName[i]
133+
local hasItem = xPlayer.getInventoryItem(itemName)
134+
135+
if hasItem and hasItem.count > 0 then
136+
return hasItem
137+
end
138+
end
139+
140+
return false
141+
end

bridge/oxcore/client.lua

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
if MSK.Bridge.Framework.Type ~= 'OXCore' then return end
2+
3+
AddEventHandler('onResourceStart', function(resource)
4+
if GetCurrentResourceName() ~= resource then return end
5+
local playerData = Ox.GetPlayer()
6+
7+
if playerData then
8+
MSK.Bridge.isPlayerLoaded = true
9+
MSK.Bridge.PlayerData = playerData
10+
end
11+
end)
12+
13+
RegisterNetEvent(MSK.Bridge.Framework.Events.setPlayerData, function(PlayerData)
14+
local invoke = GetInvokingResource()
15+
if not invoke or invoke ~= 'msk_core' then return end
16+
17+
MSK.Bridge.PlayerData = Ox.GetPlayer()
18+
end)
19+
20+
RegisterNetEvent(MSK.Bridge.Framework.Events.playerLoaded, function(playerId, isNew)
21+
MSK.Bridge.isPlayerLoaded = true
22+
MSK.Bridge.PlayerData = Ox.GetPlayer()
23+
end)
24+
25+
RegisterNetEvent(MSK.Bridge.Framework.Events.playerLogout, function(playerId)
26+
MSK.Bridge.isPlayerLoaded = false
27+
MSK.Bridge.PlayerData = {}
28+
end)
29+
30+
RegisterNetEvent(MSK.Bridge.Framework.Events.setJob, function(groupName, grade)
31+
if not MSK.Bridge.PlayerData.job then
32+
MSK.Bridge.PlayerData.job = {}
33+
end
34+
35+
MSK.Bridge.PlayerData.job[groupName] = grade
36+
end)
37+
38+
MSK.Bridge.SetPlayerData = function(key, value)
39+
MSK.Bridge.PlayerData[key] = value
40+
end

bridge/oxcore/server.lua

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
if MSK.Bridge.Framework.Type ~= 'OXCore' then return end
2+
3+
RegisterNetEvent(MSK.Bridge.Framework.Events.playerLoaded, function(playerId, userId, charId)
4+
MSK.LoadedPlayers[playerId] = Ox.GetPlayer(playerId)
5+
end)
6+
7+
RegisterNetEvent(MSK.Bridge.Framework.Events.playerLogout, function(playerId, userId, charId)
8+
MSK.LoadedPlayers[playerId] = nil
9+
end)
10+
11+
RegisterNetEvent(MSK.Bridge.Framework.Events.setJob, function(playerId, groupName, grade)
12+
if not MSK.LoadedPlayers[playerId].job then
13+
MSK.LoadedPlayers[playerId].job = {}
14+
end
15+
16+
MSK.LoadedPlayers[playerId].job[groupName] = grade
17+
end)
18+
19+
GetPlayerData = function(playerData)
20+
end
21+
22+
MSK.GetPlayerServerId = function(Player)
23+
return Player.source
24+
end
25+
MSK.GetServerId = MSK.GetPlayerServerId
26+
exports('GetPlayerServerId', MSK.GetPlayerServerId)
27+
28+
MSK.GetPlayerIdentifier = function(Player)
29+
if tonumber(Player) then
30+
playerId = tostring(Player)
31+
local identifier = GetPlayerIdentifierByType(playerId, "license")
32+
return identifier and identifier:gsub("license:", "")
33+
end
34+
35+
return Player.identifier
36+
end
37+
MSK.GetIdentifier = MSK.GetPlayerIdentifier
38+
exports('GetPlayerIdentifier', MSK.GetPlayerIdentifier)
39+
40+
MSK.HasPlayerItem = function(playerId, itemName, metadata)
41+
if not playerId then
42+
MSK.Logging('error', 'Player on Function MSK.HasItem does not exist!')
43+
return false
44+
end
45+
46+
if type(itemName) ~= 'table' then
47+
local hasItem = exports.ox_inventory:GetItem(playerId, itemName, metadata)
48+
49+
if hasItem and hasItem.count > 0 then
50+
return hasItem
51+
end
52+
53+
return false
54+
end
55+
56+
for i = 1, #itemName do
57+
local item = itemName[i]
58+
local hasItem = exports.ox_inventory:GetItem(playerId, itemName, metadata)
59+
60+
if hasItem and hasItem.count > 0 then
61+
return hasItem
62+
end
63+
end
64+
65+
return false
66+
end

0 commit comments

Comments
 (0)