55 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| local debug_getinfo = debug.getinfo
 | |
| 
 | |
| function noop() end
 | |
| 
 | |
| lib = setmetatable({
 | |
|     name = 'ox_lib',
 | |
|     context = IsDuplicityVersion() and 'server' or 'client',
 | |
| }, {
 | |
|     __newindex = function(self, key, fn)
 | |
|         rawset(self, key, fn)
 | |
| 
 | |
|         if debug_getinfo(2, 'S').short_src:find('@ox_lib/resource') then
 | |
|             exports(key, fn)
 | |
|         end
 | |
|     end,
 | |
| 
 | |
|     __index = function(self, key)
 | |
|         local dir = ('imports/%s'):format(key)
 | |
|         local chunk = LoadResourceFile(self.name, ('%s/%s.lua'):format(dir, self.context))
 | |
|         local shared = LoadResourceFile(self.name, ('%s/shared.lua'):format(dir))
 | |
| 
 | |
|         if shared then
 | |
|             chunk = (chunk and ('%s\n%s'):format(shared, chunk)) or shared
 | |
|         end
 | |
| 
 | |
|         if chunk then
 | |
|             local fn, err = load(chunk, ('@@ox_lib/%s/%s.lua'):format(key, self.context))
 | |
| 
 | |
|             if not fn or err then
 | |
|                 return error(('\n^1Error importing module (%s): %s^0'):format(dir, err), 3)
 | |
|             end
 | |
| 
 | |
|             rawset(self, key, fn() or noop)
 | |
| 
 | |
|             return self[key]
 | |
|         end
 | |
|     end
 | |
| })
 | |
| 
 | |
| cache = {
 | |
|     resource = lib.name,
 | |
|     game = GetGameName(),
 | |
| }
 | |
| 
 | |
| if not LoadResourceFile(lib.name, 'web/build/index.html') then
 | |
|     local err =
 | |
|     '^1Unable to load UI. Build ox_lib or download the latest release.\n	^3https://github.com/communityox/ox_lib/releases/latest/download/ox_lib.zip^0'
 | |
|     function lib.hasLoaded() return err end
 | |
| 
 | |
|     error(err)
 | |
| end
 | |
| 
 | |
| function lib.hasLoaded() return true end
 | |
| 
 | |
| require = lib.require
 | 
