Skip to main content

OpenCitizenInteraction

function OpenCitizenInteraction()
    ESX.UI.Menu.CloseAll()
    ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'citizen_interaction',
        {
            title = 'Personmeny',
            align = 'top-left',
            elements = {
                {label = 'ID-meny', value = 'id_card_menu'},
                {label = 'Individåtgärder', value = 'individ'},
                {label = 'Accessoarer', value = 'accessories'}
            }
        },
        function(data, menu)
            local ped = GetPlayerPed(-1)

            if data.current.value == 'accessories' then
                TriggerEvent('esx_accessories:openMenu')
            elseif data.current.value == 'individ' then
            ESX.UI.Menu.Open(
            'default', GetCurrentResourceName(), 'individ',
            {
                title    = 'Individ',
                elements = {
                    {label = 'Sök igenom', value = 'search'},
                    {label = 'Knyt på buntband', value = 'handcuff'},
                    {label = 'Skär av buntband', value = 'uncuff'},
                    {label = 'Sätt på ögonbindel', value = 'blindfold'},
                    {label = 'Lyft upp', value = 'drag'},
                }
            },
            function(data2, menu2)
              if data2.current.value == 'search' then
                local target = GetNearestPlayer()

                if target ~= nil then
                    OpenBodySearchMenu(target)
                else
                    TriggerEvent('esx:showNotification', 'Ingen person i närheten...')
                end   
            elseif data2.current.value == 'handcuff' then
                local target = GetNearestPlayer()

                if target ~= nil then
                    TriggerServerEvent('revenge-interactionmenu:handcuff', GetPlayerServerId(PlayerId()), GetPlayerServerId(target), true)
                else
                    TriggerEvent('esx:showNotification', 'Ingen person i närheten...')
                end
            elseif data2.current.value == 'blindfold' then
                local player, distance = ESX.Game.GetClosestPlayer()

                if distance ~= -1 and distance <= 3.0 then
                    ESX.TriggerServerCallback('jsfour-blindfold:itemCheck', function( hasItem )
                        TriggerServerEvent('jsfour-blindfold', GetPlayerServerId(player), hasItem)
                    end)
                else
                    ESX.ShowNotification('Ingen person i närheten...')
                end
            elseif data2.current.value == 'uncuff' then
                local target = GetNearestPlayer()

                if target ~= nil then
                    TriggerServerEvent('revenge-interactionmenu:uncuff', GetPlayerServerId(PlayerId()), GetPlayerServerId(target), true)
                else
                    TriggerEvent('esx:showNotification', 'Ingen person i närheten...')
                end
            elseif data2.current.value == 'drag' then
                local target = GetNearestPlayer()

                if target ~= nil then
                    TriggerServerEvent('revenge-interactionmenu:drag', GetPlayerServerId(target), GetPlayerServerId(PlayerId()))
                else
                    TriggerEvent('esx:showNotification', 'Ingen person i närheten')
                end
            elseif data.current.value == 'id_card_menu' then
                ESX.UI.Menu.Open(
                    'default', GetCurrentResourceName(), 'id_card_menu',
                    {
                        title    = 'ID-meny',
                        elements = {
                            {label = 'Kolla ditt ID-kort', value = 'check'},
                            {label = 'Visa ditt ID-kort (närmaste spelare)', value = 'show'}
                        }
                    },
                    function(data3, menu3)
                        if data3.current.value == 'check' then
                            TriggerServerEvent('jsfour-legitimation:open', GetPlayerServerId(PlayerId()), GetPlayerServerId(PlayerId()))
                        elseif data3.current.value == 'show' then
                            local player, distance = ESX.Game.GetClosestPlayer()

                            if distance ~= -1 and distance <= 3.0 then
                                TriggerServerEvent('jsfour-legitimation:open', GetPlayerServerId(PlayerId()), GetPlayerServerId(player))
                            else
                                ESX.ShowNotification('Ingen person i närheten')
                            end
                        end
                    end,
                    function(data3, menu3)
                        menu3.close()
                    end,
                )
            end
            function(data2, menu2)
                menu2.close()
            end
        )
        end,
        function(data, menu)
            menu.close()
        end
    )
end