From 4e9b529b4c748085542797bb23ee72a280150a16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20N=27gadi?= Date: Tue, 8 Aug 2017 19:13:58 +0200 Subject: [PATCH] Fix shared DataStore bug --- esx_datastore.sql | 2 +- server/main.lua | 24 ++++++++++++++++++------ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/esx_datastore.sql b/esx_datastore.sql index d9bc4fd5..9a0632a9 100644 --- a/esx_datastore.sql +++ b/esx_datastore.sql @@ -9,7 +9,7 @@ CREATE TABLE `datastore` ( CREATE TABLE `datastore_data` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, - `owner` varchar(255) NOT NULL, + `owner` varchar(255), `data` longtext, PRIMARY KEY (`id`) ); \ No newline at end of file diff --git a/server/main.lua b/server/main.lua index f5f1e7d3..a89d8b21 100644 --- a/server/main.lua +++ b/server/main.lua @@ -2,7 +2,7 @@ ESX = nil Items = {} local DataStoresIndex = {} local DataStores = {} -local SharedDatastores = {} +local SharedDataStores = {} TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end) @@ -44,13 +44,25 @@ AddEventHandler('onMySQLReady', function() else - local items = {} + local data = nil - local storeName = result2[1].name - local storeData = (result2[1].data == nil and {} or json.decode(result2[1].data)) + if #result2 == 0 then - local dataStore = CreateDataStore(storeName, nil, storeData) - SharedDatastores[name] = dataStore + MySQL.Sync.execute( + 'INSERT INTO datastore_data (name, owner, data) VALUES (@name, NULL, \'{}\')', + { + ['@name'] = name, + } + ) + + data = {} + + else + data = json.decode(result2[1].data) + end + + local dataStore = CreateDataStore(name, nil, data) + SharedDataStores[name] = dataStore end