refactor(esx_identity): Refactor for better error handling and cleanup.

- Refactored the if validation statements to display better error notifications
- Added config for different DOB Formats
- Bumped version
This commit is contained in:
A.R.K
2022-08-17 06:21:33 -05:00
parent d3426900d9
commit 2c4ee67446
8 changed files with 610 additions and 529 deletions
+14 -23
View File
@@ -1,12 +1,10 @@
local loadingScreenFinished = false
local ready = false
local guiEnabled = false
local timecycleModifier = "hud_def_blur"
RegisterNetEvent('esx_identity:alreadyRegistered')
AddEventHandler('esx_identity:alreadyRegistered', function()
while not loadingScreenFinished do
Wait(100)
end
RegisterNetEvent('esx_identity:alreadyRegistered', function()
while not loadingScreenFinished do Wait(100) end
TriggerEvent('esx_skin:playerRegistered')
end)
@@ -20,32 +18,23 @@ RegisterNUICallback('ready', function(data, cb)
end)
if not Config.UseDeferrals then
local guiEnabled = false
function EnableGui(state)
SetNuiFocus(state, state)
guiEnabled = state
while not ready do
Wait(500)
end
if state then
SetTimecycleModifier("hud_def_blur")
SetTimecycleModifier(timecycleModifier)
else
ClearTimecycleModifier()
end
SendNUIMessage({
type = "enableui",
enable = state
})
SendNUIMessage({type = "enableui",enable = state})
end
RegisterNetEvent('esx_identity:showRegisterIdentity')
AddEventHandler('esx_identity:showRegisterIdentity', function()
RegisterNetEvent('esx_identity:showRegisterIdentity', function()
TriggerEvent('esx_skin:resetFirstSpawn')
if not ESX.PlayerData.dead then
EnableGui(true)
end
if not ESX.PlayerData.dead then EnableGui(true) end
end)
RegisterNUICallback('register', function(data, cb)
@@ -53,11 +42,10 @@ if not Config.UseDeferrals then
if callback then
ESX.ShowNotification(_U('thank_you_for_registering'))
EnableGui(false)
if not ESX.GetConfig().Multichar then
TriggerEvent('esx_skin:playerRegistered')
end
else
ESX.ShowNotification(_U('registration_error'), "error", 5000)
end
end, data)
end)
@@ -87,7 +75,10 @@ if not Config.UseDeferrals then
DisableControlAction(0, 143, true) -- disable melee
DisableControlAction(0, 75, true) -- disable exit vehicle
DisableControlAction(27, 75, true) -- disable exit vehicle
else
sleep = 1500
end
Wait(sleep)
end
end)
+5 -1
View File
@@ -5,8 +5,12 @@ Config.Locale = 'en'
-- Enables Commands Such As /char and /chardel
Config.EnableCommands = ESX.GetConfig().EnableDebug
Config.UseDeferrals = false -- EXPERIMENTAL Character Registration Method.
-- EXPERIMENTAL Character Registration Method
Config.UseDeferrals = false
-- These values are for the date format in the registration menu
-- Choices: DD/MM/YYYY | MM/DD/YYYY | YYYY/MM/DD
Config.DateFormat = 'DD/MM/YYYY'
-- These values are for the second input validation in server/main.lua
Config.MaxNameLength = 20 -- Max Name Length.
+1 -1
View File
@@ -4,7 +4,7 @@ game 'gta5'
description 'ESX Identity'
version '1.7.5'
version '1.7.6'
shared_script '@es_extended/imports.lua'
+1 -1
View File
@@ -25,7 +25,7 @@ body {
color: #ffffff;
}
.aa {
.title {
font-family: 'Oswald', sans-serif;
font-size: 22px;
text-align: center;
+3 -8
View File
@@ -8,15 +8,15 @@
<body onkeydown="TriggeredKey(this)">
<div class="dialog">
<div class="aa"><b>IDENTITY</b></div>
<div class="title"><b>IDENTITY</b></div>
<!-- <img id="logo" height="110px" width="332px"> > -->
<form id="register" name="register" action="#">
<div style="color: rgb(46, 187, 205);font-size: 12px; font-family: 'Gill Sans', sans-serif";>First Name</div>
<input id="firstname" type="text" class="" name="firstname" placeholder="First Name" onKeyDown="if(this.value.length==16 && event.keyCode!=8)"><br>
<input id="firstname" type="text" class="" name="firstname" placeholder="First Name" onKeyDown="if(this.value.length==16 && event.keyCode!=8)"><br>
<div style="color: rgb(46, 187, 205);font-size: 12px; font-family: 'Gill Sans', sans-serif";>Last Name</div>
<input id="lastname" type="text" class="" name="lastname" placeholder="Last Name" onKeyDown="if(this.value.length==16 && event.keyCode!=8)"><br>
<div style="color: rgb(46, 187, 205);font-size: 12px; font-family: 'Gill Sans', sans-serif", sans-serif;>Date of Birth (MM/DD/YYYY)</div>
<input id="dateofbirth" type="date" name="dateofbirth" class="" placeholder="Date of Birth (dd/mm/yyy)" min="01/01/1900" max="01/01/2010" onfocus="(this.type='date')"><br>
<input id="dateofbirth" type="date" name="dateofbirth" class="" placeholder="Date of Birth (dd/mm/yyyy)" min="01/01/1900" max="01/01/2010" onfocus="(this.type='date')"><br>
<div style="color: rgb(46, 187, 205);font-size: 12px; font-family: 'Gill Sans', sans-serif", sans-serif;>Height</div>
<input id="height" type="number" class="" name="height" min="120" max="220" placeholder="Height (cm)" onKeyDown="if(this.value.length==3 && event.keyCode!=8)"><br>
<center>
@@ -28,16 +28,11 @@
<label for="radiof">Female</label>
</div>
</center>
<!-- <div class="range-wrap" style="width: 80%;">
<input type="range" id="height" class="range" min="48" max="96" value="48">
<output class="bubble"></output>
</div> -->
<button id="submit" type="submit"><font size="4px">CREATE</font></button>
</form>
<center><font size="1px" color="green">If the submit button doesn't work, please ensure that you've entered the fields correctly.</font></center>
</div>
<script>
const allRanges = document.querySelectorAll(".range-wrap");
allRanges.forEach(wrap => {
const range = wrap.querySelector(".range");
+18 -19
View File
@@ -1,36 +1,35 @@
$(function() {
$.post('http://esx_identity/ready', JSON.stringify({}));
$.post('http://esx_identity/ready', JSON.stringify({}))
window.addEventListener('message', function(event) {
if (event.data.type == "enableui") {
document.body.style.display = event.data.enable ? "block" : "none";
if (event.data.type === "enableui") {
document.body.style.display = event.data.enable ? "block" : "none"
}
});
$("#register").submit(function(event) {
event.preventDefault(); // Prevent form from submitting
// Verify date
var date = $("#dateofbirth").val();
var dateCheck = new Date($("#dateofbirth").val());
})
$("#register").submit(function(event) {
event.preventDefault() // Prevent form from submitting
// Verify date
var date = $("#dateofbirth").val()
var dateCheck = new Date($("#dateofbirth").val())
if (dateCheck == "Invalid Date") {
date == "invalid";
}
else {
date == "invalid"
} else {
const ye = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(dateCheck)
const mo = new Intl.DateTimeFormat('en', { month: '2-digit' }).format(dateCheck)
const da = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(dateCheck)
var formattedDate = `${da}/${mo}/${ye}`;
var formattedDate = `${da}/${mo}/${ye}`
$.post('http://esx_identity/register', JSON.stringify({
firstname: $("#firstname").val(),
lastname: $("#lastname").val(),
dateofbirth: formattedDate,
sex: $("input[type='radio'][name='sex']:checked").val(),
height: $("#height").val()
}));
}))
}
});
});
})
})
+32 -27
View File
@@ -1,33 +1,38 @@
Locales['en'] = {
['show_active_character'] = 'Show Active Character',
['active_character'] = 'Active Character: %s',
['error_active_character'] = "There was an error obtaining your data.",
['delete_character'] = 'Delete Current Character And Create a new one.',
['deleted_character'] = 'Character Deleted.',
['error_delete_character'] = "There was a problem deleting your character.",
['thank_you_for_registering'] = "Successfully Registered, Enjoy!",
['registration_error'] = "Your Data is incorrect.",
['debug_xPlayer_get_first_name'] = "Returns Your forename",
['debug_xPlayer_get_last_name'] = "Returns Your surname",
['debug_xPlayer_get_full_name'] = "Return Your Name",
['debug_xPlayer_get_sex'] = "Returns Your Sex",
['debug_xPlayer_get_dob'] = "Returns Your DOB",
['debug_xPlayer_get_height'] = "Returns Your Height",
['error_debug_xPlayer_get_first_name'] = "There was an issue while obtaining your forename.",
['error_debug_xPlayer_get_last_name'] = "There was an issue while obtaining your surname.",
['error_debug_xPlayer_get_full_name'] = "There was an issue while obtaining your name.",
['error_debug_xPlayer_get_sex'] = "There was an issue while obtaining your sex.",
['error_debug_xPlayer_get_dob'] = "There was an issue while obtaining your date of birth.",
['error_debug_xPlayer_get_height'] = "There was an issue while obtaining your height.",
['return_debug_xPlayer_get_first_name'] = "First Name: %s",
['return_debug_xPlayer_get_last_name'] = "Last Name: %s",
['return_debug_xPlayer_get_full_name'] = "Name: %s",
['return_debug_xPlayer_get_sex'] = "Sex: %s",
['return_debug_xPlayer_get_dob'] = "DOB: %s",
['return_debug_xPlayer_get_height'] = "Height: %s Inches",
['error_active_character'] = 'There was an error obtaining your data.',
['delete_character'] = 'Delete Your Current Character.',
['deleted_character'] = 'Character Deleted',
['error_delete_character'] = 'There was a problem deleting your character.',
['thank_you_for_registering'] = 'Registration Successful. Enjoy!',
['debug_xPlayer_get_first_name'] = 'Returns Your First Name',
['debug_xPlayer_get_last_name'] = 'Returns Your Last Name',
['debug_xPlayer_get_full_name'] = 'Returns Your Full Name',
['debug_xPlayer_get_sex'] = 'Returns Your Sex',
['debug_xPlayer_get_dob'] = 'Returns Your DOB',
['debug_xPlayer_get_height'] = 'Returns Your Height',
['error_debug_xPlayer_get_first_name'] = 'There was an issue while obtaining your first name.',
['error_debug_xPlayer_get_last_name'] = 'There was an issue while obtaining your last name.',
['error_debug_xPlayer_get_full_name'] = 'There was an issue while obtaining your full name.',
['error_debug_xPlayer_get_sex'] = 'There was an issue while obtaining your sex.',
['error_debug_xPlayer_get_dob'] = 'There was an issue while obtaining your date of birth.',
['error_debug_xPlayer_get_height'] = 'There was an issue while obtaining your height.',
['return_debug_xPlayer_get_first_name'] = 'First Name: %s',
['return_debug_xPlayer_get_last_name'] = 'Last Name: %s',
['return_debug_xPlayer_get_full_name'] = 'Name: %s',
['return_debug_xPlayer_get_sex'] = 'Sex: %s',
['return_debug_xPlayer_get_dob'] = 'DOB: %s',
['return_debug_xPlayer_get_height'] = 'Height: %s Inches',
['data_incorrect'] = 'Invalid Data, Please try again.',
['invalid_format'] = 'Invalid Data Format, Please try again.',
['no_identifier'] = '[ESX Identity]\nThere was an issue while loading your character!\nError code: identifier-missing\n\nThis is caused by your identifier being missing. Please come back later or report this problem to the Server Owner.',
['missing_identity'] = '[ESX Identity]\nThere was an issue loading your character!\nError code: identity-missing\n\nIt seems like your identity is missing, try connecting again.',
['deleted_identity'] = 'Character deleted, Please rejoin to create a new character.'
['no_identifier'] = '[ESX Identity]\nThere was an issue while loading your character!\nError Code: identifier-missing\n\nThis is caused by your identifier being missing. Please come back later or report this problem to the Server Owner.',
['missing_identity'] = '[ESX Identity]\nThere was an issue loading your character!\nError Code: identity-missing\n\nIt seems like your identity is missing, try connecting again.',
['deleted_identity'] = 'Character deleted. Please rejoin to create a new character.',
['already_registered'] = 'You have already registered.',
['invalid_firstname_format'] = 'Invalid Format (First Name): Please try again.',
['invalid_lastname_format'] = 'Invalid Format (Last Name): Please try again.',
['invalid_dob_format'] = 'Invalid Format (DOB): Please try again.',
['invalid_sex_format'] = 'Invalid Format (Sex): Please try again.',
['invalid_height_format'] = 'Invalid Format (Height): Please try again.'
}
File diff suppressed because it is too large Load Diff