68 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| --[[ All helper functions and variables are defined here ]]
 | |
| 
 | |
| ---@alias FrameworkType 'esx'|'qb'|'qbx'
 | |
| 
 | |
| --[[ Start ox_lib.locale ]]
 | |
| lib.locale()
 | |
| 
 | |
| shared = {}
 | |
| shared.resource = GetCurrentResourceName()
 | |
| 
 | |
| --- Checks if the given resource is started.
 | |
| ---@param resourceName string
 | |
| ---@return boolean
 | |
| function shared.IsResourceStart(resourceName)
 | |
|     return GetResourceState(resourceName) == 'started'
 | |
| end
 | |
| 
 | |
| --- Returns the name of the active framework ('qb', 'esx', 'qbx').
 | |
| ---@return FrameworkType|nil
 | |
| function shared.GetFrameworkName()
 | |
|     if shared.IsResourceStart('es_extended') then
 | |
|         return 'esx'
 | |
|     elseif shared.IsResourceStart('qbx_core') then
 | |
|         return 'qbx'
 | |
|     elseif shared.IsResourceStart('qb-core') then
 | |
|         return 'qb'
 | |
|     end
 | |
|     return nil
 | |
| end
 | |
| 
 | |
| --- Retrieves the core object of the active framework.
 | |
| --- @return table|nil
 | |
| function shared.GetFrameworkObject()
 | |
|     local frameworkName = shared.GetFrameworkName()
 | |
|     if not frameworkName then return nil end
 | |
|     if frameworkName == 'esx' then
 | |
|         return exports['es_extended']:getSharedObject()
 | |
|     elseif frameworkName == 'qbx' then
 | |
|         return exports['qb-core']:GetCoreObject()
 | |
|     elseif frameworkName == 'qb' then
 | |
|         return exports['qb-core']:GetCoreObject()
 | |
|     end
 | |
| end
 | |
| 
 | |
| --- Formats and returns a string combining the script name and event.
 | |
| --- Created for the convenience of the developer.
 | |
| --- @param event string
 | |
| --- @return string
 | |
| function _e(event)
 | |
|     return shared.resource .. ':' .. event
 | |
| end
 | |
| 
 | |
| function shared.deepCopy(orig)
 | |
|     local orig_type = type(orig)
 | |
|     local copy
 | |
|     if orig_type == 'table' then
 | |
|         copy = {}
 | |
|         for orig_key, orig_value in next, orig, nil do
 | |
|             copy[shared.deepCopy(orig_key)] = shared.deepCopy(orig_value)
 | |
|         end
 | |
|         setmetatable(copy, shared.deepCopy(getmetatable(orig)))
 | |
|     else -- number, string, boolean, etc
 | |
|         copy = orig
 | |
|     end
 | |
|     return copy
 | |
| end
 | |
| 
 | |
| shared.framework = shared.GetFrameworkName()
 | 
