74 lines
3.4 KiB
Lua
74 lines
3.4 KiB
Lua
|
|
-- ─────────────────────────────────────────────────────────────────────────────
|
|||
|
|
-- pc-live | Bruecke zu Bleeter
|
|||
|
|
--
|
|||
|
|
-- Bleeter lief hier zunaechst als iframe, dessen Nachrichten hin- und
|
|||
|
|
-- zurueckgereicht wurden. Das ging schief: SetNuiFocus gilt global fuer den
|
|||
|
|
-- Client, und zwei Resourcen, die den Fokus beanspruchen, sperren die Maus aus.
|
|||
|
|
--
|
|||
|
|
-- Jetzt spricht der PC direkt mit dem Server von Bleeter – wie jede andere
|
|||
|
|
-- App auch. Bleeter selbst bleibt unberuehrt und oeffnet weiterhin sein
|
|||
|
|
-- eigenes Fenster ueber /bleeter.
|
|||
|
|
--
|
|||
|
|
-- Wie bei ic-web steht die Liste erlaubter Aktionen fest, sonst koennte das
|
|||
|
|
-- NUI jedes beliebige Serverereignis ausloesen.
|
|||
|
|
-- ─────────────────────────────────────────────────────────────────────────────
|
|||
|
|
|
|||
|
|
local OPS = {
|
|||
|
|
-- Anzeigen und mitmachen
|
|||
|
|
requestBootstrap = 'bleeter:server:requestBootstrap',
|
|||
|
|
registerAccount = 'bleeter:server:registerAccount',
|
|||
|
|
checkHandle = 'bleeter:server:checkHandle',
|
|||
|
|
setActiveProfile = 'bleeter:server:setActiveProfile',
|
|||
|
|
createPost = 'bleeter:server:createPost',
|
|||
|
|
togglePostLike = 'bleeter:server:togglePostLike',
|
|||
|
|
deleteOwnPost = 'bleeter:server:deleteOwnPost',
|
|||
|
|
createComment = 'bleeter:server:createComment',
|
|||
|
|
deleteOwnComment = 'bleeter:server:deleteOwnComment',
|
|||
|
|
followProfile = 'bleeter:server:followProfile',
|
|||
|
|
unfollowProfile = 'bleeter:server:unfollowProfile',
|
|||
|
|
updateProfile = 'bleeter:server:updateProfile',
|
|||
|
|
uploadMedia = 'bleeter:server:uploadMedia',
|
|||
|
|
createMarketplaceEntry = 'bleeter:server:createMarketplaceEntry',
|
|||
|
|
deleteMarketplaceEntry = 'bleeter:server:deleteMarketplaceEntry',
|
|||
|
|
createEvent = 'bleeter:server:createEvent',
|
|||
|
|
deleteEvent = 'bleeter:server:deleteEvent',
|
|||
|
|
|
|||
|
|
-- Verwaltung
|
|||
|
|
listBusinessProfiles = 'bleeter:server:listBusinessProfiles',
|
|||
|
|
createBusinessProfile = 'bleeter:server:createBusinessProfile',
|
|||
|
|
listProfileMembers = 'bleeter:server:listProfileMembers',
|
|||
|
|
listCandidates = 'bleeter:server:listCandidates',
|
|||
|
|
setProfileMember = 'bleeter:server:setProfileMember',
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
RegisterNUICallback('bleeter', function(data, cb)
|
|||
|
|
cb({})
|
|||
|
|
|
|||
|
|
local event = OPS[tostring(data.op or '')]
|
|||
|
|
if not event then return end
|
|||
|
|
|
|||
|
|
if data.payload ~= nil then
|
|||
|
|
TriggerServerEvent(event, data.payload)
|
|||
|
|
else
|
|||
|
|
TriggerServerEvent(event)
|
|||
|
|
end
|
|||
|
|
end)
|
|||
|
|
|
|||
|
|
-- Der Server schickt alles ueber dieses eine Ereignis: den vollstaendigen
|
|||
|
|
-- Zustand und die Antworten der Verwaltung. Beides geht unveraendert ins NUI,
|
|||
|
|
-- dort wird unterschieden.
|
|||
|
|
RegisterNetEvent('bleeter:client:data', function(message)
|
|||
|
|
if type(message) ~= 'table' then return end
|
|||
|
|
SendNUIMessage({ action = 'bleeter_data', data = message })
|
|||
|
|
end)
|
|||
|
|
|
|||
|
|
RegisterNetEvent('bleeter:client:notify', function(payload)
|
|||
|
|
SendNUIMessage({ action = 'bleeter_notify', data = payload or {} })
|
|||
|
|
end)
|
|||
|
|
|
|||
|
|
-- Antwort auf einen Bilder-Upload. Bleeter laedt die Datei zu ImgBB hoch und
|
|||
|
|
-- meldet die fertige Adresse zurueck.
|
|||
|
|
RegisterNetEvent('bleeter:client:mediaUploaded', function(payload)
|
|||
|
|
SendNUIMessage({ action = 'bleeter_uploaded', data = payload or {} })
|
|||
|
|
end)
|