diff --git a/README.md b/README.md index 8826cb16..5803bbf8 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ end) ### License esx_addonaccount - addon account for ESX -Copyright (C) 2015-2018 Jérémie N'gadi +Copyright (C) 2015-2019 Jérémie N'gadi This program Is free software: you can redistribute it And/Or modify it under the terms Of the GNU General Public License As published by the Free Software Foundation, either version 3 Of the License, Or (at your option) any later version. diff --git a/esx_addonaccount.sql b/esx_addonaccount.sql index 5b42b181..e0e25a81 100644 --- a/esx_addonaccount.sql +++ b/esx_addonaccount.sql @@ -1,18 +1,20 @@ USE `essentialmode`; CREATE TABLE `addon_account` ( - `name` varchar(60) NOT NULL, - `label` varchar(255) NOT NULL, - `shared` int(11) NOT NULL, + `name` VARCHAR(60) NOT NULL, + `label` VARCHAR(100) NOT NULL, + `shared` INT(11) NOT NULL, PRIMARY KEY (`name`) ); CREATE TABLE `addon_account_data` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `account_name` varchar(255) DEFAULT NULL, - `money` double NOT NULL, - `owner` varchar(255) DEFAULT NULL, + `id` INT(11) NOT NULL AUTO_INCREMENT, + `account_name` VARCHAR(100) DEFAULT NULL, + `money` INT(11) NOT NULL, + `owner` VARCHAR(100) DEFAULT NULL, - PRIMARY KEY (`id`) + PRIMARY KEY (`id`), + UNIQUE INDEX `index_addon_account_data_account_name_owner` (`account_name`, `owner`), + INDEX `index_addon_account_data_account_name` (`account_name`) ); diff --git a/server/classes/addonaccount.lua b/server/classes/addonaccount.lua index cd9552ee..7f082cd4 100644 --- a/server/classes/addonaccount.lua +++ b/server/classes/addonaccount.lua @@ -7,7 +7,6 @@ function CreateAddonAccount(name, owner, money) self.addMoney = function(m) self.money = self.money + m - self.save() TriggerClientEvent('esx_addonaccount:setMoney', -1, self.name, self.money) @@ -15,7 +14,6 @@ function CreateAddonAccount(name, owner, money) self.removeMoney = function(m) self.money = self.money - m - self.save() TriggerClientEvent('esx_addonaccount:setMoney', -1, self.name, self.money) @@ -23,7 +21,6 @@ function CreateAddonAccount(name, owner, money) self.setMoney = function(m) self.money = m - self.save() TriggerClientEvent('esx_addonaccount:setMoney', -1, self.name, self.money) @@ -31,14 +28,12 @@ function CreateAddonAccount(name, owner, money) self.save = function() if self.owner == nil then - MySQL.Async.execute('UPDATE addon_account_data SET money = @money WHERE account_name = @account_name', - { + MySQL.Async.execute('UPDATE addon_account_data SET money = @money WHERE account_name = @account_name', { ['@account_name'] = self.name, ['@money'] = self.money }) else - MySQL.Async.execute('UPDATE addon_account_data SET money = @money WHERE account_name = @account_name AND owner = @owner', - { + MySQL.Async.execute('UPDATE addon_account_data SET money = @money WHERE account_name = @account_name AND owner = @owner', { ['@account_name'] = self.name, ['@money'] = self.money, ['@owner'] = self.owner diff --git a/server/main.lua b/server/main.lua index 5f47d6fc..b238a2f9 100644 --- a/server/main.lua +++ b/server/main.lua @@ -1,7 +1,5 @@ -ESX = nil -local AccountsIndex = {} -local Accounts = {} -local SharedAccounts = {} +local AccountsIndex, Accounts, SharedAccounts = {}, {}, {} +ESX = nil TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end) @@ -18,7 +16,6 @@ MySQL.ready(function() }) if shared == 0 then - table.insert(AccountsIndex, name) Accounts[name] = {} @@ -26,14 +23,11 @@ MySQL.ready(function() local addonAccount = CreateAddonAccount(name, result2[j].owner, result2[j].money) table.insert(Accounts[name], addonAccount) end - else - local money = nil if #result2 == 0 then - MySQL.Sync.execute('INSERT INTO addon_account_data (account_name, money, owner) VALUES (@account_name, @money, NULL)', - { + MySQL.Sync.execute('INSERT INTO addon_account_data (account_name, money, owner) VALUES (@account_name, @money, NULL)', { ['@account_name'] = name, ['@money'] = 0 }) @@ -45,7 +39,6 @@ MySQL.ready(function() local addonAccount = CreateAddonAccount(name, nil, money) SharedAccounts[name] = addonAccount - end end end) @@ -70,9 +63,7 @@ AddEventHandler('esx_addonaccount:getSharedAccount', function(name, cb) cb(GetSharedAccount(name)) end) -AddEventHandler('esx:playerLoaded', function(source) - local _source = source - local xPlayer = ESX.GetPlayerFromId(_source) +AddEventHandler('esx:playerLoaded', function(playerId, xPlayer) local addonAccounts = {} for i=1, #AccountsIndex, 1 do @@ -80,8 +71,7 @@ AddEventHandler('esx:playerLoaded', function(source) local account = GetAccount(name, xPlayer.identifier) if account == nil then - MySQL.Async.execute('INSERT INTO addon_account_data (account_name, money, owner) VALUES (@account_name, @money, @owner)', - { + MySQL.Async.execute('INSERT INTO addon_account_data (account_name, money, owner) VALUES (@account_name, @money, @owner)', { ['@account_name'] = name, ['@money'] = 0, ['@owner'] = xPlayer.identifier