107 lines
		
	
	
		
			No EOL
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			No EOL
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
Framework = 'standalone'
 | 
						|
PlayerLoaded, PlayerData = nil, {}
 | 
						|
 | 
						|
local function InitializeFramework()
 | 
						|
    if GetResourceState('es_extended') == 'started' then
 | 
						|
        ESX = exports['es_extended']:getSharedObject()
 | 
						|
        Framework = 'esx'
 | 
						|
 | 
						|
        RegisterNetEvent('esx:playerLoaded', function(xPlayer)
 | 
						|
            PlayerData = xPlayer
 | 
						|
            PlayerLoaded = true
 | 
						|
        end)
 | 
						|
 | 
						|
        RegisterNetEvent('esx:onPlayerLogout', function()
 | 
						|
            PlayerData = {}
 | 
						|
            PlayerLoaded = false
 | 
						|
        end)
 | 
						|
 | 
						|
        AddEventHandler('esx:setPlayerData', function(key, value)
 | 
						|
            PlayerData[key] = value
 | 
						|
        end)
 | 
						|
 | 
						|
        AddEventHandler('onResourceStart', function(resourceName)
 | 
						|
            if GetCurrentResourceName() ~= resourceName then return end
 | 
						|
            PlayerData = ESX.GetPlayerData()
 | 
						|
            PlayerLoaded = true
 | 
						|
        end)
 | 
						|
    elseif GetResourceState('qb-core') == 'started' then
 | 
						|
        QBCore = exports['qb-core']:GetCoreObject()
 | 
						|
        Framework = 'qb'
 | 
						|
 | 
						|
        AddEventHandler('QBCore:Client:OnPlayerLoaded', function()
 | 
						|
            PlayerData = QBCore.Functions.GetPlayerData()
 | 
						|
        end)
 | 
						|
 | 
						|
        RegisterNetEvent('QBCore:Client:OnPlayerUnload', function()
 | 
						|
            PlayerData = {}
 | 
						|
        end)
 | 
						|
 | 
						|
        AddEventHandler('onResourceStart', function(resourceName)
 | 
						|
            if GetCurrentResourceName() ~= resourceName then return end
 | 
						|
            PlayerData = QBCore.Functions.GetPlayerData()
 | 
						|
        end)
 | 
						|
    end
 | 
						|
 | 
						|
    print('[RPEmotes-Reborn] Framework initialized: ' .. Framework)
 | 
						|
end
 | 
						|
 | 
						|
function CanDoAction()
 | 
						|
    if Framework == 'esx' then
 | 
						|
        return PlayerLoaded and not PlayerData.dead
 | 
						|
    elseif Framework == 'qb' then
 | 
						|
        return LocalPlayer.state.isLoggedIn and not (PlayerData.metadata.inlaststand or PlayerData.metadata.isdead)
 | 
						|
    end
 | 
						|
    -- here you can implement your own standalone framework check
 | 
						|
    return true
 | 
						|
end
 | 
						|
 | 
						|
InitializeFramework()
 | 
						|
 | 
						|
 | 
						|
-- EVENTS
 | 
						|
 | 
						|
RegisterNetEvent('animations:client:PlayEmote', function(args)
 | 
						|
    if CanDoAction() then
 | 
						|
        EmoteCommandStart(args)
 | 
						|
    end
 | 
						|
end)
 | 
						|
 | 
						|
if Config.Keybinding then
 | 
						|
    RegisterNetEvent('animations:client:BindEmote', function(args)
 | 
						|
        if CanDoAction() then
 | 
						|
            EmoteBindStart(nil, args)
 | 
						|
        end
 | 
						|
    end)
 | 
						|
 | 
						|
    RegisterNetEvent('animations:client:EmoteBinds', function()
 | 
						|
        if CanDoAction() then
 | 
						|
            ListKeybinds()
 | 
						|
        end
 | 
						|
    end)
 | 
						|
 | 
						|
    RegisterNetEvent('animations:client:EmoteDelete', function(args)
 | 
						|
        if CanDoAction() then
 | 
						|
            DeleteEmote(args)
 | 
						|
        end
 | 
						|
    end)
 | 
						|
end
 | 
						|
 | 
						|
 | 
						|
RegisterNetEvent('animations:client:EmoteMenu', function()
 | 
						|
    if CanDoAction() then
 | 
						|
        OpenEmoteMenu()
 | 
						|
    end
 | 
						|
end)
 | 
						|
 | 
						|
RegisterNetEvent('animations:client:Walk', function(args)
 | 
						|
    if CanDoAction() then
 | 
						|
        WalkCommandStart(args)
 | 
						|
    end
 | 
						|
end)
 | 
						|
 | 
						|
RegisterNetEvent('animations:client:ListWalks', function()
 | 
						|
    if CanDoAction() then
 | 
						|
        WalksOnCommand()
 | 
						|
    end
 | 
						|
end) |