From 21ee72ce9fcc1900852ea2aab50747352dcf7ded Mon Sep 17 00:00:00 2001 From: ElPumpo Date: Thu, 19 Apr 2018 18:02:14 +0200 Subject: [PATCH] Cleanup, improved chat suggestions --- client/main.lua | 6 +- server/main.lua | 466 +++++++++++++++++++++++------------------------- 2 files changed, 228 insertions(+), 244 deletions(-) diff --git a/client/main.lua b/client/main.lua index ff8d03d5..1c0b10c3 100644 --- a/client/main.lua +++ b/client/main.lua @@ -86,9 +86,9 @@ end) Citizen.CreateThread(function() while true do if guiEnabled then - DisableControlAction(0, 1, guiEnabled) -- LookLeftRight - DisableControlAction(0, 2, guiEnabled) -- LookUpDown - DisableControlAction(0, 106, guiEnabled) -- VehicleMouseControlOverride + DisableControlAction(0, 1, true) -- LookLeftRight + DisableControlAction(0, 2, true) -- LookUpDown + DisableControlAction(0, 106, true) -- VehicleMouseControlOverride DisableControlAction(0, 142, true) -- MeleeAttackAlternate DisableControlAction(0, 30, true) -- MoveLeftRight DisableControlAction(0, 31, true) -- MoveUpDown diff --git a/server/main.lua b/server/main.lua index 3ebb78ea..946c83ff 100644 --- a/server/main.lua +++ b/server/main.lua @@ -1,191 +1,186 @@ function getIdentity(source, callback) - local identifier = GetPlayerIdentifiers(source)[1] - MySQL.Async.fetchAll("SELECT * FROM `users` WHERE `identifier` = @identifier", - { - ['@identifier'] = identifier - }, - function(result) - if result[1]['firstname'] ~= nil then - local data = { - identifier = result[1]['identifier'], - firstname = result[1]['firstname'], - lastname = result[1]['lastname'], - dateofbirth = result[1]['dateofbirth'], - sex = result[1]['sex'], - height = result[1]['height'] - } - - callback(data) - else - local data = { - identifier = '', - firstname = '', - lastname = '', - dateofbirth = '', - sex = '', - height = '' - } - - callback(data) - end - end) + local identifier = GetPlayerIdentifiers(source)[1] + + MySQL.Async.fetchAll("SELECT * FROM `users` WHERE `identifier` = @identifier", + { + ['@identifier'] = identifier + }, function(result) + if result[1]['firstname'] ~= nil then + local data = { + identifier = result[1]['identifier'], + firstname = result[1]['firstname'], + lastname = result[1]['lastname'], + dateofbirth = result[1]['dateofbirth'], + sex = result[1]['sex'], + height = result[1]['height'] + } + callback(data) + else + local data = { + identifier = '', + firstname = '', + lastname = '', + dateofbirth = '', + sex = '', + height = '' + } + + callback(data) + end + end) end function getCharacters(source, callback) - local identifier = GetPlayerIdentifiers(source)[1] - MySQL.Async.fetchAll("SELECT * FROM `characters` WHERE `identifier` = @identifier", - { - ['@identifier'] = identifier - }, - function(result) - if result[1] and result[2] and result[3] then - local data = { - identifier = result[1]['identifier'], - firstname1 = result[1]['firstname'], - lastname1 = result[1]['lastname'], - dateofbirth1 = result[1]['dateofbirth'], - sex1 = result[1]['sex'], - height1 = result[1]['height'], - firstname2 = result[2]['firstname'], - lastname2 = result[2]['lastname'], - dateofbirth2 = result[2]['dateofbirth'], - sex2 = result[2]['sex'], - height2 = result[2]['height'], - firstname3 = result[3]['firstname'], - lastname3 = result[3]['lastname'], - dateofbirth3 = result[3]['dateofbirth'], - sex3 = result[3]['sex'], - height3 = result[3]['height'] - } + local identifier = GetPlayerIdentifiers(source)[1] + MySQL.Async.fetchAll("SELECT * FROM `characters` WHERE `identifier` = @identifier", + { + ['@identifier'] = identifier + }, function(result) + if result[1] and result[2] and result[3] then + local data = { + identifier = result[1]['identifier'], + firstname1 = result[1]['firstname'], + lastname1 = result[1]['lastname'], + dateofbirth1 = result[1]['dateofbirth'], + sex1 = result[1]['sex'], + height1 = result[1]['height'], + firstname2 = result[2]['firstname'], + lastname2 = result[2]['lastname'], + dateofbirth2 = result[2]['dateofbirth'], + sex2 = result[2]['sex'], + height2 = result[2]['height'], + firstname3 = result[3]['firstname'], + lastname3 = result[3]['lastname'], + dateofbirth3 = result[3]['dateofbirth'], + sex3 = result[3]['sex'], + height3 = result[3]['height'] + } + + callback(data) + elseif result[1] and result[2] and not result[3] then + local data = { + identifier = result[1]['identifier'], + firstname1 = result[1]['firstname'], + lastname1 = result[1]['lastname'], + dateofbirth1 = result[1]['dateofbirth'], + sex1 = result[1]['sex'], + height1 = result[1]['height'], + firstname2 = result[2]['firstname'], + lastname2 = result[2]['lastname'], + dateofbirth2 = result[2]['dateofbirth'], + sex2 = result[2]['sex'], + height2 = result[2]['height'], + firstname3 = '', + lastname3 = '', + dateofbirth3 = '', + sex3 = '', + height3 = '' + } - callback(data) - elseif result[1] and result[2] and not result[3] then - local data = { - identifier = result[1]['identifier'], - firstname1 = result[1]['firstname'], - lastname1 = result[1]['lastname'], - dateofbirth1 = result[1]['dateofbirth'], - sex1 = result[1]['sex'], - height1 = result[1]['height'], - firstname2 = result[2]['firstname'], - lastname2 = result[2]['lastname'], - dateofbirth2 = result[2]['dateofbirth'], - sex2 = result[2]['sex'], - height2 = result[2]['height'], - firstname3 = '', - lastname3 = '', - dateofbirth3 = '', - sex3 = '', - height3 = '' - } + callback(data) + elseif result[1] and not result[2] and not result[3] then + local data = { + identifier = result[1]['identifier'], + firstname1 = result[1]['firstname'], + lastname1 = result[1]['lastname'], + dateofbirth1 = result[1]['dateofbirth'], + sex1 = result[1]['sex'], + height1 = result[1]['height'], + firstname2 = '', + lastname2 = '', + dateofbirth2 = '', + sex2 = '', + height2 = '', + firstname3 = '', + lastname3 = '', + dateofbirth3 = '', + sex3 = '', + height3 = '' + } - callback(data) - elseif result[1] and not result[2] and not result[3] then - local data = { - identifier = result[1]['identifier'], - firstname1 = result[1]['firstname'], - lastname1 = result[1]['lastname'], - dateofbirth1 = result[1]['dateofbirth'], - sex1 = result[1]['sex'], - height1 = result[1]['height'], - firstname2 = '', - lastname2 = '', - dateofbirth2 = '', - sex2 = '', - height2 = '', - firstname3 = '', - lastname3 = '', - dateofbirth3 = '', - sex3 = '', - height3 = '' - } + callback(data) + else + local data = { + identifier = '', + firstname1 = '', + lastname1 = '', + dateofbirth1 = '', + sex1 = '', + height1 = '', + firstname2 = '', + lastname2 = '', + dateofbirth2 = '', + sex2 = '', + height2 = '', + firstname3 = '', + lastname3 = '', + dateofbirth3 = '', + sex3 = '', + height3 = '' + } - callback(data) - else - local data = { - identifier = '', - firstname1 = '', - lastname1 = '', - dateofbirth1 = '', - sex1 = '', - height1 = '', - firstname2 = '', - lastname2 = '', - dateofbirth2 = '', - sex2 = '', - height2 = '', - firstname3 = '', - lastname3 = '', - dateofbirth3 = '', - sex3 = '', - height3 = '' - } - - callback(data) - end - end) + callback(data) + end + end) end function setIdentity(identifier, data, callback) - MySQL.Async.execute("UPDATE `users` SET `firstname` = @firstname, `lastname` = @lastname, `dateofbirth` = @dateofbirth, `sex` = @sex, `height` = @height WHERE identifier = @identifier", - { - ['@identifier'] = identifier, - ['@firstname'] = data.firstname, - ['@lastname'] = data.lastname, - ['@dateofbirth'] = data.dateofbirth, - ['@sex'] = data.sex, - ['@height'] = data.height - }, - function(done) - if callback then - callback(true) - end - end) + MySQL.Async.execute("UPDATE `users` SET `firstname` = @firstname, `lastname` = @lastname, `dateofbirth` = @dateofbirth, `sex` = @sex, `height` = @height WHERE identifier = @identifier", + { + ['@identifier'] = identifier, + ['@firstname'] = data.firstname, + ['@lastname'] = data.lastname, + ['@dateofbirth'] = data.dateofbirth, + ['@sex'] = data.sex, + ['@height'] = data.height + }, function(done) + if callback then + callback(true) + end + end) - MySQL.Async.execute( - 'INSERT INTO characters (identifier, firstname, lastname, dateofbirth, sex, height) VALUES (@identifier, @firstname, @lastname, @dateofbirth, @sex, @height)', - { - ['@identifier'] = identifier, - ['@firstname'] = data.firstname, - ['@lastname'] = data.lastname, - ['@dateofbirth'] = data.dateofbirth, - ['@sex'] = data.sex, - ['@height'] = data.height - }) + MySQL.Async.execute( + 'INSERT INTO characters (identifier, firstname, lastname, dateofbirth, sex, height) VALUES (@identifier, @firstname, @lastname, @dateofbirth, @sex, @height)', + { + ['@identifier'] = identifier, + ['@firstname'] = data.firstname, + ['@lastname'] = data.lastname, + ['@dateofbirth'] = data.dateofbirth, + ['@sex'] = data.sex, + ['@height'] = data.height + }) end function updateIdentity(identifier, data, callback) - MySQL.Async.execute("UPDATE `users` SET `firstname` = @firstname, `lastname` = @lastname, `dateofbirth` = @dateofbirth, `sex` = @sex, `height` = @height WHERE identifier = @identifier", - { - ['@identifier'] = identifier, - ['@firstname'] = data.firstname, - ['@lastname'] = data.lastname, - ['@dateofbirth'] = data.dateofbirth, - ['@sex'] = data.sex, - ['@height'] = data.height - }, - function(done) - if callback then - callback(true) - end - end) + MySQL.Async.execute("UPDATE `users` SET `firstname` = @firstname, `lastname` = @lastname, `dateofbirth` = @dateofbirth, `sex` = @sex, `height` = @height WHERE identifier = @identifier", + { + ['@identifier'] = identifier, + ['@firstname'] = data.firstname, + ['@lastname'] = data.lastname, + ['@dateofbirth'] = data.dateofbirth, + ['@sex'] = data.sex, + ['@height'] = data.height + }, function(done) + if callback then + callback(true) + end + end) end function deleteIdentity(identifier, data, callback) - MySQL.Async.execute("DELETE FROM `characters` WHERE identifier = @identifier AND firstname = @firstname AND lastname = @lastname AND dateofbirth = @dateofbirth AND sex = @sex AND height = @height", - { - ['@identifier'] = identifier, - ['@firstname'] = data.firstname, - ['@lastname'] = data.lastname, - ['@dateofbirth'] = data.dateofbirth, - ['@sex'] = data.sex, - ['@height'] = data.height - }, - function(done) - if callback then - callback(true) - end - end) + MySQL.Async.execute("DELETE FROM `characters` WHERE identifier = @identifier AND firstname = @firstname AND lastname = @lastname AND dateofbirth = @dateofbirth AND sex = @sex AND height = @height", + { + ['@identifier'] = identifier, + ['@firstname'] = data.firstname, + ['@lastname'] = data.lastname, + ['@dateofbirth'] = data.dateofbirth, + ['@sex'] = data.sex, + ['@height'] = data.height + }, function(done) + if callback then + callback(true) + end + end) end RegisterServerEvent('esx_identity:setIdentity') @@ -194,7 +189,7 @@ AddEventHandler('esx_identity:setIdentity', function(data, myIdentifiers) if callback then TriggerClientEvent('esx_identity:identityCheck', myIdentifiers.playerid, true) else - TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Failed To Set Identity!") + TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Failed to set identity, try again!!") end end) end) @@ -217,20 +212,10 @@ AddEventHandler('es:playerLoaded', function(source) end) end) -TriggerEvent('es:addGroupCommand', 'idhelp', "user", function(source, args, user) - TriggerClientEvent('chatMessage', source, '[IDENTITY]', {255, 0, 0}, "Commands List") - TriggerClientEvent('chatMessage', source, '[IDENTITY]', {255, 0, 0}, "/register - Register A New Character") - TriggerClientEvent('chatMessage', source, '[IDENTITY]', {255, 0, 0}, "/charlist - List Your Characters") - TriggerClientEvent('chatMessage', source, '[IDENTITY]', {255, 0, 0}, "/charselect 1,2,3 - Change Your Active Character") - TriggerClientEvent('chatMessage', source, '[IDENTITY]', {255, 0, 0}, "/delchar 1,2,3 - Delete A Character") -end, function(source, args, user) - TriggerClientEvent('chatMessage', source, "SYSTEM", {255, 0, 0}, "Insufficienct permissions!") -end, {help = "List all the identity-related commands"}) - TriggerEvent('es:addCommand', 'register', function(source, args, user) getCharacters(source, function(data) if data.firstname3 ~= '' then - TriggerClientEvent('chatMessage', source, '[IDENTITY]', {255, 0, 0}, "You Can Only Have 3 Characters.") + TriggerClientEvent('chatMessage', source, '[IDENTITY]', {255, 0, 0}, "You can only have 3 registered characters. Use the ^3/delchar^0 command in order to delete existing characters.") else TriggerClientEvent('esx_identity:showRegisterIdentity', source, {}) end @@ -240,14 +225,14 @@ end, {help = "Register a new character"}) TriggerEvent('es:addGroupCommand', 'char', "user", function(source, args, user) getIdentity(source, function(data) if data.firstname == '' then - TriggerClientEvent('chatMessage', source, '[IDENTITY]', {255, 0, 0}, "You Have No Active Character.") + TriggerClientEvent('chatMessage', source, '[IDENTITY]', {255, 0, 0}, "You do not have an active character!") else TriggerClientEvent('chatMessage', source, '[IDENTITY] Active Character:', {255, 0, 0}, data.firstname .. " " .. data.lastname) end end) end, function(source, args, user) - TriggerClientEvent('chatMessage', source, "SYSTEM", {255, 0, 0}, "Insufficienct permissions!") -end, {help = "List Your Current Active Character"}) + TriggerClientEvent('chatMessage', source, "SYSTEM", {255, 0, 0}, "Insufficient permissions!") +end, {help = "List your current character"}) TriggerEvent('es:addGroupCommand', 'charlist', "user", function(source, args, user) getCharacters(source, function(data) @@ -262,12 +247,12 @@ TriggerEvent('es:addGroupCommand', 'charlist', "user", function(source, args, us end end else - TriggerClientEvent('chatMessage', source, '[IDENTITY]', {255, 0, 0}, "You Have No Characters. Please use the /register command.") + TriggerClientEvent('chatMessage', source, '[IDENTITY]', {255, 0, 0}, "You have no registered characters. Use the ^3/register^0 command to register an character.") end end) end, function(source, args, user) - TriggerClientEvent('chatMessage', source, "SYSTEM", {255, 0, 0}, "Insufficienct permissions!") -end, {help = "List Your Characters"}) + TriggerClientEvent('chatMessage', source, "SYSTEM", {255, 0, 0}, "Insufficient permissions!") +end, {help = "List all your registered characters"}) TriggerEvent('es:addGroupCommand', 'charselect', "user", function(source, args, user) local charNumber = tonumber(args[1]) @@ -275,12 +260,12 @@ TriggerEvent('es:addGroupCommand', 'charselect', "user", function(source, args, getCharacters(source, function(data) if charNumber == 1 then local data = { - identifier = data.identifier, - firstname = data.firstname1, - lastname = data.lastname1, - dateofbirth = data.dateofbirth1, - sex = data.sex1, - height = data.height1 + identifier = data.identifier, + firstname = data.firstname1, + lastname = data.lastname1, + dateofbirth = data.dateofbirth1, + sex = data.sex1, + height = data.height1 } if data.firstname ~= '' then @@ -288,7 +273,7 @@ TriggerEvent('es:addGroupCommand', 'charselect', "user", function(source, args, if callback then TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Updated your active character to " .. data.firstname .. " " .. data.lastname .. "!") else - TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Failed To Update Identity!") + TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Failed to update your identity, try again!") end end) else @@ -297,12 +282,12 @@ TriggerEvent('es:addGroupCommand', 'charselect', "user", function(source, args, elseif charNumber == 2 then local data = { - identifier = data.identifier, - firstname = data.firstname2, - lastname = data.lastname2, - dateofbirth = data.dateofbirth2, - sex = data.sex2, - height = data.height2 + identifier = data.identifier, + firstname = data.firstname2, + lastname = data.lastname2, + dateofbirth = data.dateofbirth2, + sex = data.sex2, + height = data.height2 } if data.firstname ~= '' then @@ -311,7 +296,7 @@ TriggerEvent('es:addGroupCommand', 'charselect', "user", function(source, args, if callback then TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Updated your active character to " .. data.firstname .. " " .. data.lastname .. "!") else - TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Failed To Update Identity!") + TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Failed to update your identity, try again!") end end) else @@ -320,12 +305,12 @@ TriggerEvent('es:addGroupCommand', 'charselect', "user", function(source, args, elseif charNumber == 3 then local data = { - identifier = data.identifier, - firstname = data.firstname3, - lastname = data.lastname3, - dateofbirth = data.dateofbirth3, - sex = data.sex3, - height = data.height3 + identifier = data.identifier, + firstname = data.firstname3, + lastname = data.lastname3, + dateofbirth = data.dateofbirth3, + sex = data.sex3, + height = data.height3 } if data.firstname ~= '' then @@ -333,20 +318,20 @@ TriggerEvent('es:addGroupCommand', 'charselect', "user", function(source, args, if callback then TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Updated your active character to " .. data.firstname .. " " .. data.lastname .. "!") else - TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Failed To Update Identity!") + TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Failed to update your identity, try again!") end end) else TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "You don\'t have a character in slot 3!") end else - TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Failed To Update Identity!") + TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Failed to update your identity, try again!") end end) end, function(source, args, user) - TriggerClientEvent('chatMessage', source, "SYSTEM", {255, 0, 0}, "Insufficienct permissions!") -end, {help = "/charselect 1,2,3"}) + TriggerClientEvent('chatMessage', source, "SYSTEM", {255, 0, 0}, "Insufficient permissions!") +end, {help = "Switch character", params = {{name = "char", help = "character id, ranges from 1-3"}}}) TriggerEvent('es:addGroupCommand', 'delchar', "user", function(source, args, user) @@ -357,20 +342,20 @@ TriggerEvent('es:addGroupCommand', 'delchar', "user", function(source, args, use if charNumber == 1 then local data = { - identifier = data.identifier, - firstname = data.firstname1, - lastname = data.lastname1, - dateofbirth = data.dateofbirth1, - sex = data.sex1, - height = data.height1 + identifier = data.identifier, + firstname = data.firstname1, + lastname = data.lastname1, + dateofbirth = data.dateofbirth1, + sex = data.sex1, + height = data.height1 } if data.firstname ~= '' then deleteIdentity(GetPlayerIdentifiers(source)[1], data, function(callback) if callback then - TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "You Have Deleted " .. data.firstname .. " " .. data.lastname .. "!") + TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "You have deleted ^3" .. data.firstname .. " " .. data.lastname .. "!") else - TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Failed To Delete Identity!") + TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Failed to delete the identity, try again!") end end) else @@ -380,20 +365,20 @@ TriggerEvent('es:addGroupCommand', 'delchar', "user", function(source, args, use elseif charNumber == 2 then local data = { - identifier = data.identifier, - firstname = data.firstname2, - lastname = data.lastname2, - dateofbirth = data.dateofbirth2, - sex = data.sex2, - height = data.height2 + identifier = data.identifier, + firstname = data.firstname2, + lastname = data.lastname2, + dateofbirth = data.dateofbirth2, + sex = data.sex2, + height = data.height2 } if data.firstname ~= '' then deleteIdentity(GetPlayerIdentifiers(source)[1], data, function(callback) if callback then - TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "You Have Deleted " .. data.firstname .. " " .. data.lastname .. "!") + TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "You have deleted ^3" .. data.firstname .. " " .. data.lastname .. "!") else - TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Failed To Delete Identity!") + TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Failed to delete the identity, try again!") end end) else @@ -403,30 +388,29 @@ TriggerEvent('es:addGroupCommand', 'delchar', "user", function(source, args, use elseif charNumber == 3 then local data = { - identifier = data.identifier, - firstname = data.firstname3, - lastname = data.lastname3, - dateofbirth = data.dateofbirth3, - sex = data.sex3, - height = data.height3 + identifier = data.identifier, + firstname = data.firstname3, + lastname = data.lastname3, + dateofbirth = data.dateofbirth3, + sex = data.sex3, + height = data.height3 } - + if data.firstname ~= '' then - deleteIdentity(GetPlayerIdentifiers(source)[1], data, function(callback) if callback then - TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "You Have Deleted " .. data.firstname .. " " .. data.lastname .. "!") + TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "You have deleted ^3" .. data.firstname .. " " .. data.lastname .. "!") else - TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Failed To Delete Identity!") + TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Failed to delete the identity, try again!") end end) else TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "You don\'t have a character in slot 3!") end else - TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Failed To Delete Identity!") + TriggerClientEvent('chatMessage', source, "[IDENTITY]", {255, 0, 0}, "Failed to delete the identity, try again!") end end) end, function(source, args, user) TriggerClientEvent('chatMessage', source, "SYSTEM", {255, 0, 0}, "Insufficient permissions!") -end, {help = "/delchar 1,2,3"}) \ No newline at end of file +end, {help = "Delete an character", params = {{name = "char", help = "character id, ranges from 1-3"}}})