local isOpen = false local _openMode = 'phone' -- 'phone' | 'desktop' local function nui(action, payload) payload = payload or {} payload.action = action SendNUIMessage(payload) end local function setOpen(nextOpen, mode) isOpen = nextOpen == true if isOpen and mode then _openMode = mode end SetNuiFocus(isOpen, isOpen) if isOpen then nui('open', { mode = _openMode }) TriggerServerEvent('bleeter:server:requestBootstrap') else nui('close') end end -- Kein PC-Modus mehr. -- -- Bleeter im PC lief zunaechst als iframe, dessen Nachrichten hierher und -- wieder zurueck gereicht wurden. Das ging schief, weil SetNuiFocus global -- gilt: zwei Resourcen, die den Fokus beanspruchen, sperren die Maus aus. -- -- pc-live bringt jetzt eine eigene Oberflaeche mit und spricht direkt mit -- bleeter:server:*. Diese Resource kuemmert sich nur noch um ihr eigenes -- Fenster – so wie jede andere auch. CreateThread(function() while true do if isOpen then DisableAllControlActions(0) Wait(0) else Wait(250) end end end) RegisterNetEvent('bleeter:client:open', function(mode) setOpen(true, mode or 'phone') end) RegisterNetEvent('bleeter:client:close', function() setOpen(false) end) RegisterNetEvent('bleeter:client:data', function(payload) nui('data', payload or {}) end) RegisterNetEvent('bleeter:client:notify', function(payload) nui('notify', payload or {}) end) RegisterNetEvent('bleeter:client:mediaUploaded', function(payload) nui('mediaUploaded', payload or {}) end) RegisterNUICallback('close', function(_, cb) setOpen(false) cb({ ok = true }) end) RegisterNUICallback('checkHandle', function(payload, cb) TriggerServerEvent('bleeter:server:checkHandle', payload or {}) cb({ ok = true }) end) RegisterNUICallback('registerAccount', function(payload, cb) TriggerServerEvent('bleeter:server:registerAccount', payload or {}) cb({ ok = true }) end) RegisterNUICallback('requestBootstrap', function(_, cb) TriggerServerEvent('bleeter:server:requestBootstrap') cb({ ok = true }) end) RegisterNUICallback('setActiveProfile', function(payload, cb) TriggerServerEvent('bleeter:server:setActiveProfile', payload or {}) cb({ ok = true }) end) RegisterNUICallback('followProfile', function(payload, cb) TriggerServerEvent('bleeter:server:followProfile', payload or {}) cb({ ok = true }) end) RegisterNUICallback('unfollowProfile', function(payload, cb) TriggerServerEvent('bleeter:server:unfollowProfile', payload or {}) cb({ ok = true }) end) RegisterNUICallback('blockProfile', function(payload, cb) TriggerServerEvent('bleeter:server:blockProfile', payload or {}) cb({ ok = true }) end) RegisterNUICallback('unblockProfile', function(payload, cb) TriggerServerEvent('bleeter:server:unblockProfile', payload or {}) cb({ ok = true }) end) RegisterNUICallback('moderateProfile', function(payload, cb) TriggerServerEvent('bleeter:server:moderateProfile', payload or {}) cb({ ok = true }) end) RegisterNUICallback('updateProfile', function(payload, cb) TriggerServerEvent('bleeter:server:updateProfile', payload or {}) cb({ ok = true }) end) RegisterNUICallback('openMailTo', function(payload, cb) setOpen(false) TriggerServerEvent('bleeter:server:openMailTo', payload or {}) cb({ ok = true }) end) RegisterNUICallback('createPost', function(payload, cb) TriggerServerEvent('bleeter:server:createPost', payload or {}) cb({ ok = true }) end) RegisterNUICallback('uploadMedia', function(payload, cb) TriggerServerEvent('bleeter:server:uploadMedia', payload or {}) cb({ ok = true }) end) RegisterNUICallback('togglePostLike', function(payload, cb) TriggerServerEvent('bleeter:server:togglePostLike', payload or {}) cb({ ok = true }) end) RegisterNUICallback('deleteOwnPost', function(payload, cb) TriggerServerEvent('bleeter:server:deleteOwnPost', payload or {}) cb({ ok = true }) end) RegisterNUICallback('createComment', function(payload, cb) TriggerServerEvent('bleeter:server:createComment', payload or {}) cb({ ok = true }) end) RegisterNUICallback('toggleCommentLike', function(payload, cb) TriggerServerEvent('bleeter:server:toggleCommentLike', payload or {}) cb({ ok = true }) end) RegisterNUICallback('deleteOwnComment', function(payload, cb) TriggerServerEvent('bleeter:server:deleteOwnComment', payload or {}) cb({ ok = true }) end) RegisterNUICallback('createMarketplaceEntry', function(payload, cb) TriggerServerEvent('bleeter:server:createMarketplaceEntry', payload or {}) cb({ ok = true }) end) RegisterNUICallback('deleteMarketplaceEntry', function(payload, cb) TriggerServerEvent('bleeter:server:deleteMarketplaceEntry', payload or {}) cb({ ok = true }) end) RegisterNUICallback('createEvent', function(payload, cb) TriggerServerEvent('bleeter:server:createEvent', payload or {}) cb({ ok = true }) end) RegisterNUICallback('deleteEvent', function(payload, cb) TriggerServerEvent('bleeter:server:deleteEvent', payload or {}) cb({ ok = true }) end) RegisterCommand(Config.Command, function() setOpen(true) end, false) exports('OpenBleeter', function(mode) setOpen(true, mode or 'phone') end) -- Beim Start sicherstellen dass die NUI geschlossen ist AddEventHandler('onClientResourceStart', function(name) if name == GetCurrentResourceName() then SetNuiFocus(false, false) nui('close') end end)