-- ───────────────────────────────────────────────────────────────────────────── -- 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)