Scripts/resources/[standalone]/xsound/client/events.lua

151 lines
4.0 KiB
Lua
Raw Normal View History

2024-12-29 20:02:43 +00:00
RegisterNUICallback("init", function(data, cb)
SendNUIMessage({
status = "init",
time = config.RefreshTime,
})
if cb then cb('ok') end
end)
RegisterNUICallback("data_status", function(data, cb)
if soundInfo[data.id] ~= nil then
if data.type == "finished" then
if not soundInfo[data.id].loop then
soundInfo[data.id].playing = false
end
TriggerEvent("xSound:songStopPlaying", data.id)
end
if data.type == "maxDuration" then
if not soundInfo[data.id].SkipTimeStamp then
soundInfo[data.id].timeStamp = 0
end
soundInfo[data.id].maxDuration = data.time
soundInfo[data.id].SkipTimeStamp = nil
end
end
if cb then cb('ok') end
end)
RegisterNUICallback("events", function(data, cb)
local id = data.id
local type = data.type
if type == "resetTimeStamp" then
if soundInfo[id] then
soundInfo[id].timeStamp = 0
soundInfo[id].maxDuration = data.time
soundInfo[id].playing = true
end
end
if type == "onPlay" then
if globalOptionsCache[id] then
if globalOptionsCache[id].onPlayStartSilent then
globalOptionsCache[id].onPlayStartSilent(getInfo(id))
end
if globalOptionsCache[id].onPlayStart and not soundInfo[id].SkipEvents then
globalOptionsCache[id].onPlayStart(getInfo(id))
end
soundInfo[id].SkipEvents = nil
end
end
if type == "onEnd" then
if globalOptionsCache[id] then
if globalOptionsCache[id].onPlayEnd then
globalOptionsCache[id].onPlayEnd(getInfo(id))
end
end
if soundInfo[id] then
if soundInfo[id].loop then
soundInfo[id].timeStamp = 0
end
if soundInfo[id].destroyOnFinish and not soundInfo[id].loop then
Destroy(id)
end
end
end
if type == "onLoading" then
if globalOptionsCache[id] then
if globalOptionsCache[id].onLoading then
globalOptionsCache[id].onLoading(getInfo(id))
end
end
end
if cb then cb('ok') end
end)
RegisterNetEvent("xsound:stateSound", function(state, data)
local soundId = data.soundId
if state == "destroyOnFinish" then
if soundExists(soundId) then
destroyOnFinish(soundId, data.value)
end
end
if state == "timestamp" then
if soundExists(soundId) then
setTimeStamp(soundId, data.time)
end
end
if state == "texttospeech" then
TextToSpeech(soundId, data.lang, data.url, data.volume, data.loop or false)
end
if state == "texttospeechpos" then
TextToSpeechPos(soundId, data.lang, data.url, data.volume, data.position, data.loop or false)
end
if state == "play" then
PlayUrl(soundId, data.url, data.volume, data.loop or false)
end
if state == "playpos" then
PlayUrlPos(soundId, data.url, data.volume, data.position, data.loop or false)
end
if state == "position" then
if soundExists(soundId) then
Position(soundId, data.position)
end
end
if state == "distance" then
if soundExists(soundId) then
Distance(soundId, data.distance)
end
end
if state == "destroy" then
if soundExists(soundId) then
Destroy(soundId)
end
end
if state == "pause" then
if soundExists(soundId) then
Pause(soundId)
end
end
if state == "resume" then
if soundExists(soundId) then
Resume(soundId)
end
end
if state == "volume" then
if soundExists(soundId) then
if isDynamic(soundId) then
setVolumeMax(soundId, data.volume)
else
setVolume(soundId, data.volume)
end
end
end
end)