From 9b9ce389384a7de3f077af444107800b001599bb Mon Sep 17 00:00:00 2001 From: Mycroft Date: Sat, 26 Mar 2022 18:58:59 +0000 Subject: [PATCH] Refactor: ESX Whitelist --- [esx_addons]/esx_whitelist/README.md | 26 -------- [esx_addons]/esx_whitelist/esx_whitelist.sql | 8 --- [esx_addons]/esx_whitelist/fxmanifest.lua | 6 +- [esx_addons]/esx_whitelist/locales/en.lua | 8 +-- [esx_addons]/esx_whitelist/players.json | 1 + .../esx_whitelist/server/commands.lua | 26 -------- [esx_addons]/esx_whitelist/server/main.lua | 61 +++++++++++++------ 7 files changed, 52 insertions(+), 84 deletions(-) delete mode 100644 [esx_addons]/esx_whitelist/esx_whitelist.sql create mode 100644 [esx_addons]/esx_whitelist/players.json delete mode 100644 [esx_addons]/esx_whitelist/server/commands.lua diff --git a/[esx_addons]/esx_whitelist/README.md b/[esx_addons]/esx_whitelist/README.md index a6a9cf72..9ea7a128 100644 --- a/[esx_addons]/esx_whitelist/README.md +++ b/[esx_addons]/esx_whitelist/README.md @@ -1,32 +1,6 @@ # esx_whitelist -## Download & Installation - -### Using [fvm](https://github.com/qlaffont/fvm-installer) -``` -fvm install --save --folder=esx esx-org/esx_whitelist -``` - -### Using Git -``` -cd resources -git clone https://github.com/ESX-Org/esx_whitelist [esx]/esx_whitelist -``` - -### Manually -- Download https://github.com/ESX-Org/esx_whitelist/archive/master.zip -- Put it in the `[esx]` directory - -## Installation -- Import `esx_whitelist.sql` to your database -- Add this in your `server.cfg`: - -``` -start esx_whitelist -``` - # Legal -### License esx_whitelist - Whitelist script Copyright (C) 2015-2022 Jérémie N'gadi diff --git a/[esx_addons]/esx_whitelist/esx_whitelist.sql b/[esx_addons]/esx_whitelist/esx_whitelist.sql deleted file mode 100644 index 68bcf92a..00000000 --- a/[esx_addons]/esx_whitelist/esx_whitelist.sql +++ /dev/null @@ -1,8 +0,0 @@ -USE `es_extended`; - -CREATE TABLE `whitelist` ( - `identifier` varchar(60) NOT NULL, - - PRIMARY KEY (`identifier`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; - diff --git a/[esx_addons]/esx_whitelist/fxmanifest.lua b/[esx_addons]/esx_whitelist/fxmanifest.lua index 6319d5d9..1ea8d736 100644 --- a/[esx_addons]/esx_whitelist/fxmanifest.lua +++ b/[esx_addons]/esx_whitelist/fxmanifest.lua @@ -6,12 +6,12 @@ description 'ESX Whitelist' version '1.6.5' +server_only 'yes' + server_scripts { '@es_extended/imports.lua', - '@oxmysql/lib/MySQL.lua', '@es_extended/locale.lua', 'config.lua', 'locales/*.lua', - 'server/main.lua', - 'server/commands.lua' + 'server/main.lua' } diff --git a/[esx_addons]/esx_whitelist/locales/en.lua b/[esx_addons]/esx_whitelist/locales/en.lua index 8b7443c6..398c3964 100644 --- a/[esx_addons]/esx_whitelist/locales/en.lua +++ b/[esx_addons]/esx_whitelist/locales/en.lua @@ -1,8 +1,8 @@ Locales['en'] = { - ['whitelist_check'] = 'making sure you\'re whitelisted on this server . . .', - ['not_whitelisted'] = 'you are not whitelisted on this server', - ['whitelist_empty'] = 'the whitelist hasn\'t been loaded yet, or alternatively no one has been whitelisted!', - ['license_missing'] = 'your license could not be found', + ['whitelist_check'] = 'Checking you are Allowlisted.', + ['not_whitelisted'] = 'You Must be Allowlisted to join this server!', + ['whitelist_empty'] = 'There Are no whitelists saved for this server.', + ['license_missing'] = 'Error: Your Identifier is missing!', ['help_whitelist_add'] = 'add someone to the whitelist', ['help_whitelist_load'] = 'reload the whitelist', } diff --git a/[esx_addons]/esx_whitelist/players.json b/[esx_addons]/esx_whitelist/players.json new file mode 100644 index 00000000..0637a088 --- /dev/null +++ b/[esx_addons]/esx_whitelist/players.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/[esx_addons]/esx_whitelist/server/commands.lua b/[esx_addons]/esx_whitelist/server/commands.lua deleted file mode 100644 index e9d8193e..00000000 --- a/[esx_addons]/esx_whitelist/server/commands.lua +++ /dev/null @@ -1,26 +0,0 @@ -ESX.RegisterCommand('wlrefresh', 'admin', function(xPlayer, args, showError) - loadWhiteList(function() - showError('Whitelist reloaded') - end) -end, true, {help = _U('help_whitelist_load')}) - -ESX.RegisterCommand('wladd', 'admin', function(xPlayer, args, showError) - args.license = args.license:lower() - - if string.len(args.license) == 40 then - if WhiteList[args.license] then - showError('The player is already whitelisted on this server!') - else - MySQL.update('INSERT INTO whitelist (identifier) VALUES (@identifier)', { - ['@identifier'] = args.license - }, function(rowsChanged) - WhiteList[args.license] = true - showError('The player has been whitelisted!') - end) - end - else - showError('Invalid license ID length!') - end -end, true, {help = _U('help_whitelist_add'), validate = true, arguments = { - {name = 'license', help = 'the player license', type = 'string'} -}}) diff --git a/[esx_addons]/esx_whitelist/server/main.lua b/[esx_addons]/esx_whitelist/server/main.lua index 399ed818..2983e090 100644 --- a/[esx_addons]/esx_whitelist/server/main.lua +++ b/[esx_addons]/esx_whitelist/server/main.lua @@ -1,28 +1,20 @@ WhiteList = {} -function loadWhiteList(cb) - Whitelist = {} +function loadWhiteList() + Whitelist = nil - MySQL.query('SELECT identifier FROM whitelist', function(result) - for k,v in ipairs(result) do - WhiteList[v.identifier] = true - end - - if cb then - cb() - end - end) + local List = LoadResourceFile(GetCurrentResourceName(),'players.json') + if List then + Whitelist = json.decode(List) + end end -MySQL.ready(function() - loadWhiteList() -end) +loadWhiteList() AddEventHandler('playerConnecting', function(name, setCallback, deferrals) - if #GetPlayers() < Config.MinPlayer then + if #(GetPlayers()) < Config.MinPlayer then deferrals.done() - end - + else -- Mark this connection as deferred, this is to prevent problems while checking player identifiers. deferrals.defer() @@ -49,4 +41,39 @@ AddEventHandler('playerConnecting', function(name, setCallback, deferrals) else deferrals.done() end + end end) + +ESX.RegisterCommand('wlrefresh', 'admin', function(xPlayer, args, showError) + loadWhiteList(function() + showError('Whitelist reloaded') + end) +end, true, {help = _U('help_whitelist_load')}) + +ESX.RegisterCommand('wladd', 'admin', function(xPlayer, args, showError) + args.license = args.license:lower() + + if WhiteList[args.license] then + showError('The player is already allowlisted on this server!') + else + WhiteList[args.license] = true + SaveResourceFile(GetCurrentResourceName(), 'players.json', json.encode(WhiteList)) + loadWhiteList() + end +end, true, {help = _U('help_whitelist_add'), validate = true, arguments = { + {name = 'license', help = 'the player license', type = 'string'} +}}) + +ESX.RegisterCommand('wlremove', 'admin', function(xPlayer, args, showError) + args.license = args.license:lower() + + if WhiteList[args.license] then + WhiteList[args.license] = nil + SaveResourceFile(GetCurrentResourceName(), 'players.json', json.encode(WhiteList)) + loadWhiteList() + else + showError('Identifier is not Allowlisted on this server!') + end +end, true, {help = _U('help_whitelist_add'), validate = true, arguments = { + {name = 'license', help = 'the player license', type = 'string'} +}})