Bleeter gehoert in den IC-Computer: dort sitzt man an einem Geraet, statt mitten auf der Strasse ein Fenster aufzuklappen. Ein Chatbefehl umgeht das und macht die Oberflaeche ueberall verfuegbar. Der Export OpenBleeter bleibt, damit andere Resources sie oeffnen koennen - etwa ein Telefon. Config.Command faellt weg, ohne Befehl hat es keine Bedeutung.
194 lines
5.6 KiB
Lua
194 lines
5.6 KiB
Lua
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)
|
||
|
||
-- Kein /bleeter-Befehl mehr.
|
||
--
|
||
-- Bleeter gehoert in den IC-Computer: dort sitzt man an einem Geraet, statt
|
||
-- mitten auf der Strasse ein Fenster aufzuklappen. Der Export bleibt, damit
|
||
-- andere Resources es oeffnen koennen - etwa ein Telefon.
|
||
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)
|