From d90aecf2b5d0a28b054b9fe2bd0b060d659a41fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20N=27gadi?= Date: Tue, 1 Aug 2017 11:07:23 +0200 Subject: [PATCH] Add files --- README.md | 14 ++ __resource.lua | 35 +++ client/main.lua | 265 +++++++++++++++++++++ esx_phone.sql | 11 + html/bankgothic.ttf | Bin 0 -> 36272 bytes html/css/app.css | 392 +++++++++++++++++++++++++++++++ html/img/cursor.png | Bin 0 -> 272 bytes html/img/icons/add.png | Bin 0 -> 995 bytes html/img/icons/back.png | Bin 0 -> 1105 bytes html/img/icons/edit.png | Bin 0 -> 236 bytes html/img/icons/location.png | Bin 0 -> 345 bytes html/img/icons/msg.png | Bin 0 -> 1205 bytes html/img/icons/new-msg.png | Bin 0 -> 1196 bytes html/img/icons/ok.png | Bin 0 -> 241 bytes html/img/icons/rep.png | Bin 0 -> 1504 bytes html/img/icons/reply.png | Bin 0 -> 260 bytes html/img/icons/signal.png | Bin 0 -> 1102 bytes html/img/icons/write.png | Bin 0 -> 250 bytes html/img/keys/enter.png | Bin 0 -> 941 bytes html/img/keys/return.png | Bin 0 -> 376 bytes html/img/phone.png | Bin 0 -> 18906 bytes html/img/pointer.png | Bin 0 -> 2639 bytes html/pdown.ttf | Bin 0 -> 151512 bytes html/scripts/app.js | 434 +++++++++++++++++++++++++++++++++++ html/scripts/mustache.min.js | 1 + html/ui.html | 82 +++++++ server/main.lua | 309 +++++++++++++++++++++++++ 27 files changed, 1543 insertions(+) create mode 100644 __resource.lua create mode 100644 client/main.lua create mode 100644 esx_phone.sql create mode 100644 html/bankgothic.ttf create mode 100644 html/css/app.css create mode 100644 html/img/cursor.png create mode 100644 html/img/icons/add.png create mode 100644 html/img/icons/back.png create mode 100644 html/img/icons/edit.png create mode 100644 html/img/icons/location.png create mode 100644 html/img/icons/msg.png create mode 100644 html/img/icons/new-msg.png create mode 100644 html/img/icons/ok.png create mode 100644 html/img/icons/rep.png create mode 100644 html/img/icons/reply.png create mode 100644 html/img/icons/signal.png create mode 100644 html/img/icons/write.png create mode 100644 html/img/keys/enter.png create mode 100644 html/img/keys/return.png create mode 100644 html/img/phone.png create mode 100644 html/img/pointer.png create mode 100644 html/pdown.ttf create mode 100644 html/scripts/app.js create mode 100644 html/scripts/mustache.min.js create mode 100644 html/ui.html create mode 100644 server/main.lua diff --git a/README.md b/README.md index 2a2878fd..185d67a3 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,16 @@ # fxserver-esx_phone FXServer esx_phone + +[INSTALLATION] + +1) CD in your resources folder + +2) +``` +git clone https://github.com/FXServer-ESX/fxserver-esx_phone +``` +3) Add this in your server.cfg : + +``` +start esx_phone +``` \ No newline at end of file diff --git a/__resource.lua b/__resource.lua new file mode 100644 index 00000000..c7e09045 --- /dev/null +++ b/__resource.lua @@ -0,0 +1,35 @@ +resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af937' + +description 'ESX Phone' + +server_scripts { + '@mysql-async/lib/MySQL.lua', + 'server/main.lua' +} + +client_script 'client/main.lua' + +ui_page 'html/ui.html' + +files { + 'html/ui.html', + 'html/bankgothic.ttf', + 'html/pdown.ttf', + 'html/css/app.css', + 'html/scripts/mustache.min.js', + 'html/scripts/app.js', + 'html/img/cursor.png', + 'html/img/keys/enter.png', + 'html/img/keys/return.png', + 'html/img/phone.png', + 'html/img/icons/signal.png', + 'html/img/icons/rep.png', + 'html/img/icons/msg.png', + 'html/img/icons/add.png', + 'html/img/icons/back.png', + 'html/img/icons/new-msg.png', + 'html/img/icons/reply.png', + 'html/img/icons/write.png', + 'html/img/icons/edit.png', + 'html/img/icons/location.png' +} \ No newline at end of file diff --git a/client/main.lua b/client/main.lua new file mode 100644 index 00000000..73dc6121 --- /dev/null +++ b/client/main.lua @@ -0,0 +1,265 @@ +local Keys = { + ["ESC"] = 322, ["F1"] = 288, ["F2"] = 289, ["F3"] = 170, ["F5"] = 166, ["F6"] = 167, ["F7"] = 168, ["F8"] = 169, ["F9"] = 56, ["F10"] = 57, + ["~"] = 243, ["1"] = 157, ["2"] = 158, ["3"] = 160, ["4"] = 164, ["5"] = 165, ["6"] = 159, ["7"] = 161, ["8"] = 162, ["9"] = 163, ["-"] = 84, ["="] = 83, ["BACKSPACE"] = 177, + ["TAB"] = 37, ["Q"] = 44, ["W"] = 32, ["E"] = 38, ["R"] = 45, ["T"] = 245, ["Y"] = 246, ["U"] = 303, ["P"] = 199, ["["] = 39, ["]"] = 40, ["ENTER"] = 18, + ["CAPS"] = 137, ["A"] = 34, ["S"] = 8, ["D"] = 9, ["F"] = 23, ["G"] = 47, ["H"] = 74, ["K"] = 311, ["L"] = 182, + ["LEFTSHIFT"] = 21, ["Z"] = 20, ["X"] = 73, ["C"] = 26, ["V"] = 0, ["B"] = 29, ["N"] = 249, ["M"] = 244, [","] = 82, ["."] = 81, + ["LEFTCTRL"] = 36, ["LEFTALT"] = 19, ["SPACE"] = 22, ["RIGHTCTRL"] = 70, + ["HOME"] = 213, ["PAGEUP"] = 10, ["PAGEDOWN"] = 11, ["DELETE"] = 178, + ["LEFT"] = 174, ["RIGHT"] = 175, ["TOP"] = 27, ["DOWN"] = 173, + ["NENTER"] = 201, ["N4"] = 108, ["N5"] = 60, ["N6"] = 107, ["N+"] = 96, ["N-"] = 97, ["N7"] = 117, ["N8"] = 61, ["N9"] = 118 +} + +ESX = nil +local GUI = {} +GUI.Time = 0 +GUI.PhoneIsShowed = false +GUI.MessagesIsShowed = false +GUI.AddContactIsShowed = false +local PhoneData = {phoneNumber = 0, contacts = {}} +local RegisteredMessageCallbacks = {} +local ContactJustAdded = false +local CurrentAction = nil +local CurrentActionMsg = '' +local CurrentActionData = {} +local CurrentDispatchRequestId = -1 + +Citizen.CreateThread(function() + + while ESX == nil do + TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end) + Citizen.Wait(0) + end + + ESX.UI.Menu.RegisterType('phone', OpenPhone, ClosePhone) + +end) + +function OpenPhone() + + TriggerServerEvent('esx_phone:reload', PhoneData.phoneNumber) + + SendNUIMessage({ + showPhone = true, + phoneData = PhoneData + }) + + GUI.PhoneIsShowed = true + + ESX.SetTimeout(200, function() + SetNuiFocus(true, true) + end) + +end + +function ClosePhone() + + SendNUIMessage({ + showPhone = false + }) + + SetNuiFocus(false) + + GUI.PhoneIsShowed = false + +end + +RegisterNetEvent('esx_phone:loaded') +AddEventHandler('esx_phone:loaded', function(phoneNumber, contacts) + + PhoneData.phoneNumber = phoneNumber + PhoneData.contacts = {} + + for i=1, #contacts, 1 do + table.insert(PhoneData.contacts, contacts[i]) + end + + SendNUIMessage({ + reloadPhone = true, + phoneData = PhoneData + }) + +end) + +RegisterNetEvent('esx_phone:addContact') +AddEventHandler('esx_phone:addContact', function(name, phoneNumber, isOnline) + + table.insert(PhoneData.contacts, { + name = name, + number = phoneNumber, + online = isOnline + }) + -- CALL HERE RELOADCONTACT + SendNUIMessage({ + contactAdded = true, + phoneData = PhoneData + }) +end) + +RegisterNetEvent('esx_phone:addSpecialContact') +AddEventHandler('esx_phone:addSpecialContact', function(name, phoneNumber, base64Icon) + + SendNUIMessage({ + addSpecialContact = true, + name = name, + number = phoneNumber, + base64Icon = base64Icon + }) + +end) + +RegisterNUICallback('add_contact', function(data, cb) + + local phoneNumber = tonumber(data.phoneNumber) + local contactName = tostring(data.contactName) + + if phoneNumber then + TriggerServerEvent('esx_phone:addPlayerContact', phoneNumber, contactName) + end + +end) + + +RegisterNetEvent('esx_phone:onMessage') +AddEventHandler('esx_phone:onMessage', function(phoneNumber, message, position, anon, job, dispatchRequestId) + + ESX.ShowNotification('~b~Nouveau message') + + SendNUIMessage({ + newMessage = true, + phoneNumber = phoneNumber, + message = message, + position = position, + anonyme = anon, + job = job + }) + + if dispatchRequestId then + + CurrentAction = 'dispatch' + CurrentActionMsg = job .. ' - Appuez sur ~INPUT_CONTEXT~ pour prendre l\'appel' + CurrentDispatchRequestId = dispatchRequestId + + CurrentActionData = { + phoneNumber = phoneNumber, + message = message, + position = position, + actions = actions, + anonyme = anon, + job = job + } + + ESX.SetTimeout(15000, function() + CurrentAction = nil + end) + + end + +end) + +RegisterNetEvent('esx_phone:stopDispatch') +AddEventHandler('esx_phone:stopDispatch', function(dispatchRequestId, playerName) + + if CurrentDispatchRequestId == dispatchRequestId and CurrentAction == 'dispatch' then + CurrentAction = nil + ESX.ShowNotification(playerName .. ' a pris l\'appel') + end + +end) + +RegisterNUICallback('setGPS', function(data) + SetNewWaypoint(data.x, data.y) + ESX.ShowNotification('Position entrée dans le GPS') +end) + +RegisterNUICallback('send', function(data) + + local phoneNumber = data.number + + if tonumber(phoneNumber) ~= nil then + phoneNumber = tonumber(phoneNumber) + end + + TriggerServerEvent('esx_phone:send', phoneNumber, data.message, data.anonyme) + + SendNUIMessage({ + showMessageEditor = false + }) + + ESX.ShowNotification('Message envoyé') + +end) + +RegisterNUICallback('escape', function() + ESX.UI.Menu.Close('phone', GetCurrentResourceName(), 'main') +end) + +Citizen.CreateThread(function() + while true do + + Wait(0) + + if GUI.PhoneIsShowed then -- codes here: https://pastebin.com/guYd0ht4 + DisableControlAction(0, 1, true) -- LookLeftRight + DisableControlAction(0, 2, true) -- LookUpDown + DisableControlAction(0, 25, true) -- Input Aim + DisableControlAction(0, 106, true) -- Vehicle Mouse Control Override + + DisableControlAction(0, 24, true) -- Input Attack + DisableControlAction(0, 140, true) -- Melee Attack Alternate + DisableControlAction(0, 141, true) -- Melee Attack Alternate + DisableControlAction(0, 142, true) -- Melee Attack Alternate + DisableControlAction(0, 257, true) -- Input Attack 2 + DisableControlAction(0, 263, true) -- Input Melee Attack + DisableControlAction(0, 264, true) -- Input Melee Attack 2 + + DisableControlAction(0, 12, true) -- Weapon Wheel Up Down + DisableControlAction(0, 14, true) -- Weapon Wheel Next + DisableControlAction(0, 15, true) -- Weapon Wheel Prev + DisableControlAction(0, 16, true) -- Select Next Weapon + DisableControlAction(0, 17, true) -- Select Prev Weapon + else + + if IsControlPressed(0, Keys['F1']) and (GetGameTimer() - GUI.Time) > 150 then + + if not ESX.UI.Menu.IsOpen('phone', GetCurrentResourceName(), 'main') then + ESX.UI.Menu.CloseAll() + ESX.UI.Menu.Open('phone', GetCurrentResourceName(), 'main') + end + + GUI.Time = GetGameTimer() + + end + + end + end +end) + +-- Key controls +Citizen.CreateThread(function() + while true do + + Citizen.Wait(0) + + if CurrentAction ~= nil then + + SetTextComponentFormat('STRING') + AddTextComponentString(CurrentActionMsg) + DisplayHelpTextFromStringLabel(0, 0, 1, -1) + + if IsControlPressed(0, Keys['E']) and (GetGameTimer() - GUI.Time) > 300 then + + if CurrentAction == 'dispatch' then + TriggerServerEvent('esx_phone:stopDispatch', CurrentDispatchRequestId) + SetNewWaypoint(CurrentActionData.position.x, CurrentActionData.position.y) + end + + CurrentAction = nil + GUI.Time = GetGameTimer() + + end + + end + + end +end) \ No newline at end of file diff --git a/esx_phone.sql b/esx_phone.sql new file mode 100644 index 00000000..19d3b255 --- /dev/null +++ b/esx_phone.sql @@ -0,0 +1,11 @@ +CREATE TABLE `user_contacts` ( + `id` int(11) NOT NULL, + `identifier` varchar(255) NOT NULL, + `name` varchar(255) NOT NULL, + `number` int(11) NOT NULL +); + +ALTER TABLE `user_contacts` ADD PRIMARY KEY (`id`); + +ALTER TABLE `users` +ADD COLUMN `phone_number` INT NULL AFTER `position`; diff --git a/html/bankgothic.ttf b/html/bankgothic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f3d8049b052a1f9cfd27557eb3675bc85ce4b9fc GIT binary patch literal 36272 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 D`#l06 literal 0 HcmV?d00001 diff --git a/html/css/app.css b/html/css/app.css new file mode 100644 index 00000000..d29c0273 --- /dev/null +++ b/html/css/app.css @@ -0,0 +1,392 @@ +html, body { + width: 100%; + height: 100%; + overflow: hidden; +} + +#cursor { + position: absolute; + z-index: 999999; + display: none; +} + +#console { + position: absolute; + left: 0; + bottom: 0; + width: 320px; + height: 250px; + background-color: rgba(0, 0, 0, 0.8); + color: white; + padding: 5px; + overflow-y: auto; + overflow-x: hidden; +} + +#phone { + background-image: url(../img/phone.png); + background-repeat: no-repeat; + font-family: 'Catamaran', sans-serif; + font-weight: 400; + font-size: 12px; + width: 298px; + height: 480px; + color: #212121; + position: absolute; + right: 300px; + bottom: 0; + overflow: hidden; + cursor: default; + display: none; +} + +#phone > .container { + position: absolute; + top: 59px; + left: 46px; + width: 207px; + height: 365px; + background-repeat: no-repeat; + overflow: hidden; +} + +#phone .head { + position: relative; + text-transform: uppercase; + text-align: center; + height: 20px; + line-height: 20px; + background-color: black; + z-index: 5; +} + +#phone-icon { + display: block; + position: absolute; + height: 12px; + line-height: 20px; + top: 4px; + right: 5px; +} + +#phone-number { + display: block; + position: absolute; + height: 20px; + line-height: 20px; + top: 0; + left: 5px; + color: white; +} + +#phone .menu { + max-height: 320px; + overflow-y: scroll; + z-index: 1; +} + +#phone .menu .home { + list-style: none outside none; + margin: 0; + padding: 13px; + color: white; +} + +#phone .menu .phone-icon { + position: relative; + display: block; + float: left; + text-align: center; + width: 60px; + padding-top: 50px; + padding-bottom: 5px; + background-size: 32px 32px; + background-color: transparent; + background-repeat: no-repeat; + background-position: center 10px; + cursor: pointer; +} + +#phone .menu .phone-icon::after { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(255, 255, 255, 0.01); +} + +#phone-icon-rep { + background-image: url("../img/icons/rep.png"); +} + +#phone-icon-msg { + background-image: url("../img/icons/msg.png"); +} + +#phone .menu::-webkit-scrollbar { + display: none; +} + +#phone .menu .phone-icon.selected, #phone .menu .phone-icon:hover { + background-color: rgba(255, 255, 255, 0.1); +} + +.screen { + position: absolute; + top: 0; + left: 207px; + width: 207px; + height: 365px; + background-color: #dde1e8; + z-index: 1; + transition: left 0.25s ease; + overflow: hidden; +} + +.screen.active { + left: 0; +} + +.screen > .container { + position: absolute; + top: 50px; + left: 0; + width: 224px; + height: 315px; + overflow-y: scroll; +} + +.head-screen { + position: absolute; + height: 30px; + line-height: 30px; + text-transform: uppercase; + background-color: white; + text-align: center; + color: #212121; + background-color: white; + font-weight: 600; + border-bottom: 1px solid rgba(0, 0, 0, 0.3); + font-size: 13px; + top: 20px; + left: 0; + right: 0; + z-index: 5; +} + +.btn-head { + display: block; + color: #212121; + width: 30px; + height: 30px; + font-size: 20px; + cursor: pointer; +} + +.btn-head:hover { + background-color: #f1f1f1; +} + +.btn-head-back { + float: left; + background: transparent url("../img/icons/back.png") no-repeat 50%; +} + +.btn-head-new { + float: right; + background: transparent url("../img/icons/add.png") no-repeat 50%; +} + +.message, .contact { + position: relative; + padding: 3px 35px 3px 25px; + background-color: white; + border-bottom: 1px solid rgba(0, 0, 0, 0.3); + color: #212121; + min-height: 30px; +} + +.message.no-item, .contact.no-item { + padding: 3px 5px; +} + +.contact { + opacity: 0.5; +} + +.contact.online, .contact.no-item { + opacity: 1; +} + +.contact::after { + position: absolute; + display: block; + content: ''; + width: 8px; + height: 8px; + background-color: #dcdcdc; + left: 10px; + top: 8px; + border-radius: 50%; +} + +.contact.online::after { + background-color: #6ecc49; +} + +.contact.no-item::after { + display: none; +} + +.no-item { + text-align: center; +} + +.message .sender-info, .message .body, .contact .sender-info, { + margin-right: 30px; +} + +.message .phone-number { + line-height: 10px; + color: #999; +} + +.message .body { + margin-top: 5px; + line-height: 16px; +} + +.sender { + font-weight: 600; +} + +.actions { + position: absolute; + top: 0; + right: 0; + bottom: 0; + width: 24px; +} + +.actions .new-msg { + display: block; + width: 24px; + height: 24px; + background: transparent url("../img/icons/write.png") no-repeat 50%; + cursor: pointer; +} + +.actions .reply-btn { + background: transparent url("../img/icons/reply.png") no-repeat 50%; +} + +.actions .gps { + display: none; + width: 24px; + height: 24px; + background: transparent url(../img/icons/location.png) no-repeat 50%; + cursor: pointer; +} + +.actions .ok-btn { + display: none; + width: 24px; + height: 24px; + background: transparent url(../img/icons/ok.png) no-repeat 50%; + cursor: pointer; +} + +.actions .new-msg.anonyme, .contact .actions .new-msg { + display: none; +} + +.contact.online .actions .new-msg, .actions .gps.active, .actions .ok-btn.showOK { + display: block; +} + +.actions .new-msg:hover, .actions .gps:hover, .actions .ok-btn:hover { + background-color: #f1f1f1; +} + +#writer textarea { + width: 207px; + min-width: 207px; + max-width: 207px; + height: 255px; + min-height: 255px; + max-height: 255px; + background-color: #f1f1f1; + border: none; + box-shadow: 0 2px 3px 1px rgba(0, 0, 0, 0.1) inset; + padding: 5px; + outline: none; +} + +#writer label { + display: block; + width: 100%; + height: 30px; + line-height: 34px; + background-color: #f1f1f1; + border: none; + box-shadow: 0 2px 3px 1px rgba(0, 0, 0, 0.1) inset; + font-size: 14px; + font-weight: 600; + color: #6b6b6b; +} + +#writer label input { + top: 2px; + position: relative; + left: 5px; + margin-right: 10px; +} + +#writer button, #contact button { + display: block; + float: left; + width: 103px; + height: 30px; + line-height: 30px; + background-color: #dcdcdc; + border-color: rgba(0, 0, 0, 0.5); + border: none; + color: white; + font-weight: 600; + cursor: pointer; + outline: none; +} + +#writer button.marged, #contact button.marged { + margin-left: 1px; +} + +#writer #writer_cancel, #contact #contact_cancel { + background-color: #d9534f; +} + +#writer #writer_send:hover, #contact #contact_send:hover { + background-color: #74c374; +} + +#writer #writer_cancel:hover, #contact #contact_cancel:hover { + background-color: #dc6b68; +} + +#writer #writer_send, #contact #contact_send { + background-color: #5cb85c; +} + +#contact input { + display: block; + width: 100%; + height: 30px; + line-height: 30px; + padding: 2px 5px; + background-color: #f1f1f1; + border: none; + border-bottom: 1px solid rgba(0, 0, 0, 0.3); + outline: none; + box-shadow: 0 2px 3px 1px rgba(0, 0, 0, 0.1) inset; +} \ No newline at end of file diff --git a/html/img/cursor.png b/html/img/cursor.png new file mode 100644 index 0000000000000000000000000000000000000000..39536f953d701b36a90dc56084bafd988371a2fb GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^q9Dw{1|(OCFP#RYSkfJR9T^xl_H+M9WCij$3p^r= z85sBufiR<}hF1enP_o1|q9iy!t)x7$D3zfgF*C13FE6!3!9>qM&(L5k7uNxxqFzrI z#}Etut!FreS`>I(0^ikVp5f1PInc0ibrsXWO3z8Ee_BE>W<&%Ean9H1Y|@_Ma)5tI zP3vrppG@U}o4EJ`H!a-_TKCSz%v`zHX&3lrYRgJzbSuAt9 z@6PvoS_%Jm+&BGp_A+yZ?Fo&SwU@JtJ?kA`YTb#E`^&mC!8qZZWp1Mjt5em&H79@$ OWAJqKb6Mw<&;$S!<6)ox literal 0 HcmV?d00001 diff --git a/html/img/icons/add.png b/html/img/icons/add.png new file mode 100644 index 0000000000000000000000000000000000000000..ad5a13101a1e5748e06d1f79eb5278e9d95c765f GIT binary patch literal 995 zcmaJ=O;6N77%ssOWx=R12JqmdgougTkKJuy8wx_Zg(eosvI%=KcH4oi&`zBWZkLP7 z%_Dd*@nE8!{R0{$5fe>3>5YSlzkmZbL$Xen-Nl1z({?`cJkR^i`#$q@X>oqAf25yb zm_c(vFVgWs@}2FY|7%ALn-0UIP$tW0mDFqunOPTAATWJ<4Hlv8)*pO@Qw-C~dZjWc zTelSl`JA0#xY!RVn_;GA;?Q>1ApsS*<^?Ky`0gVMJXd8`BulVD4OYE{Eew~p7E8|7 zx|4U=nQ1T;D^$RT#0Igy5kyL?vQ1ru&XaAP1x*N9SJ{)K%GMIl5QaeFvS~*UMIg(Z zn3H5#ya_UbnBfKb%4spDNV1Zd0Ii3m(XhL!6m_E&i>_3*N=T^ie63dFYFQ59HD1i; z^NB_#lctDtR1b(9r-Nv;t)Rom!Cpu_6o5q0uAoh#vNY3^BluxQHi%kfq6On)JLE-9 zNRHG7TGs!ezTZJdqzF&*{ikqLs)vv-!U%0*hc<3?Gzk?d8iqDOxP;I~yNXLyL{L;k zA<&j(FuvjiE~-U0nt01n%pf9m;6PJXS*pN!o~vk@AZv!9N!eUp6bloRhDBE4ux$Y@f@5)WA;Dy|l&B(W@kCL<|}unwS_58VSLRQ4Ef^MIQ&gz6U@7V##2^d%bTiC+xp$udx)x@70!cn;MPa|* zF=oT=vCgzQHmHgk)7k<;1&Ih45G$Zy44IBp2s6vN5}CW(90QgicreVYB$Y{afhe*e z2(V3Fl@|mM46=eh5DW_YfsYq_98cb$SMW=LpyX=?s}Dn>*;-CY$??@#WEE!mF}5U* z%jffKzKKP4A18>S=xX?UUV`vCqb61gUenoCQjnpe+PZ~xWCB-F$)XV)W=N(hM=-24 zS<_i96Db&1P%KVhdG|;qU^4lCs9~(39h`!H^8Kfs~=(H^dk#IyMthFk8Wxx?=&vslSwIII#@APn2^H^QDAjllVnntW-%TQ zH2FnAh&8uI+9NSp6!`Wi&j(`%N?aMKBL*~aiK~^k5uPv0b**4nB(e-`{TS5ZHZs8S zktMx+E^=ADRjyVp7cm|y%jHNioZHyH8eQ5V?s2DUwk3--<3p3U-6po4I=-!nT#3gC zIg&2C&Hh+gYNhM17mL$X#oW5#>gw9}wCD29trxC-q=&bpf7WTEyBYrrdOibwt)Kqf z_N;C*q%JNVXn4M7?zQmYW$4mm?$$=2pWjogc|_e<6sHGf7Crkw=ZU*b75Yr>K_hra z!#sVoc4nJ za0`PlBg3pY54nJ za0`PlBg3pY5bl#(9bc}m zbiMn>T0vd4hW-fgq_vZxcAY7=aQdyB^=FMQ&+N42_V0sp{;(|g_dmDcVg93Idd81F@9#?F pyx#dktLXoxeZO+=9J9-wANnh{{*XonJ1`g+JYD@<);T3K0RY4!kemPj literal 0 HcmV?d00001 diff --git a/html/img/icons/msg.png b/html/img/icons/msg.png new file mode 100644 index 0000000000000000000000000000000000000000..aec485a33fdf4c58bbd15c7a6a56c7ca5d9ca9f2 GIT binary patch literal 1205 zcmV;m1WNmfP)`cT+qKTTAST_m8v(5aP)yt+F|l?Ck->~Fdv3IAbKHwxsbtVPFy5+Yk5~?)1iZ;LDbPNvPVdP6 z=WeV@z{_XjWIb@cWbn}Y19Q!vSA*} zz)_9-I2IPm;o@Xw^46-z0p=!Ro^6fgNbA5ztpm;P)*V*FcDk>)o@bTFdDlIj(2zP7t+awy#Q&W44>)CgfMZ@xTKt6nk>r_4sHViqaLyLE`5;HmEPpf9GOHF@aCvLDzlyj^18gz!77qP3#omh( z{4t&8)`J{f7boeyG|6-(&-bwe2QE$W+0gyvoe1OZ!!~MHaV*sGBF}%YgIxR`e}8uz zCs<4Uo_7c|HUr=U*8^azC21@cNaQSGpC$Y7J!gePw(#Y}-*T|l4!MX70`D#mrVi>0 z5O}7AhP_8|LgA9h!a@2}=kE9;ME^W6BiU}K?or2F~L0p=5TQ2obKCbI{T?JGGl7KUds z49{fvb2`nbolg>-%@CcjFg&k25Z9m;^!I~?D-pv~Vj^I}zo;4M1jbXy) zlaAqio5sru0BGxv?L_3)YD9Q}F-$nFdE@&2$WZC{k}!`RXugVQN8!)J8j)Lud_L(| zOkP$1K(xDQG(P9N0``>G+fkMnvKD$%VY|C@+e=Zg5h%n(uE$u8sOmaT#Kt5=<+SGY zF=|ZGaMB1@Lj1Y!GRYMrJ)(#;$DCxlY=%I#$7r*}jvs090 T#=h3V00000NkvXXu0mjf&_6@S literal 0 HcmV?d00001 diff --git a/html/img/icons/new-msg.png b/html/img/icons/new-msg.png new file mode 100644 index 0000000000000000000000000000000000000000..a597048117ec2c2d4b0534f8502f8ed70e2db8b8 GIT binary patch literal 1196 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2v2cW~I!Kh>{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v)=f4rG*mD%(=#+N zH8V5RQ7|$vG}1Q!A~Rh>6Dw0QDv55FG|-pw6wGYnPFt43sj+7T$xvrSfQI&tPC^3CAB!YD6^m>Ge1uOWMX1cerbuV z640d(FXR@$jm;~D1`{yA^eYkz^bPe4Kwg3=^!3HBG&dKny0|1L72#g21{a4^7NqJ2 zr55Lx79|5CE=?I^Re_arQEFmIeo;t%ehw@Y12XbU@{2R_3lyA#%@j1kGxJjN%ZoL^ z>V18!JoAc667!N%JzZ>-fF|f=W~NxVnmD^z8W>ud8k<-e8oHW0IvKcG7#q4;S{j)f znwlEG^t$9Hm*%GCmB93-AoM!o)C)=qxdlL*T~doO%TiO^it=+6z+Se>#O)SyoaRCG zrr>sq1x~&CK*#8VA{Hs4VM4&v17gCHEsz6G_^Elo)LsNk)*q@2ZZj}2DtNj$hE&{2 z`t$$4J+mpJF!NN##fugx_2}{(dFF7&ZIR^uh95`vR)4>zC@sNxq_|;5w@-U5>m!u~ z3s*a^c`;j-H_n*rbia;0NmWcCu|4I6pTa%oMUL+r-Y^}RDi{e4mPbW%r_UX zH8H4j&q@&&naq2EcMs2z=N=}9MLM9og!fCaqz7f6vxcsG#z!GcZGTy$zQ~0yX;2As z=H0_~Brrh!0gJ<74zUfZ7kVD=pO6^A9g!8z$iT?PAkgM$x?+<3H&FTE>FVdQ&MBb@ E0A6~DB>(^b literal 0 HcmV?d00001 diff --git a/html/img/icons/ok.png b/html/img/icons/ok.png new file mode 100644 index 0000000000000000000000000000000000000000..c08a8a7ab4c85b2b6ebaca17d1b13dbfd507e158 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ za0`PlBg3pY5Zd2de zoA^$xzjyk~`^rf4_ur}ED}SSzl-Xtr#=*n z;ZeSGQ1MW=fU}q=8>8L6!+Z9n3X2}Ma8HjEUp```%OTL%$yL?~%=bYd99UdZu3W}v!8SgC8CKyyn zv06pEGDRR0$^pQ~uoN{!^*fCAj=}rpx}MIii*SI7q%AL8f?N}mk^6rBq14qG<)n}= zj-;vI>vQ+scwBX_`qojW#o04g1Jc6XYmQ`<h#i&->r^Lh|Qdf@KiXAw$5uO&Tpd3)RV9V)Ts+~>kgM+5i4ctmmxj@55?I3 z{QPXG-DGbMX+W+~r*HgXccWM-eW~KlOwjh4Pfr(7X8Ytx5YNSBZyqYI7AxgyfW)hy zSfPkrdvMEd03;KllMh$H2OEwi7G#$F=P5XOAi&KKkAz~SBAyfph1QNIS0@d~H8B}) z?B99@Jdy}jq!i1sSHB5wB;~;2p<$<~d6|e^nyBx;eZPvO7zYUe`8zkBP^Bd5f+fp^ zGF0Z5;cR;y>iXKTWqAo)UKX}_nBWm4K??aYbIYR(1fro_vO2Gv1BqZPf8Btp&U#o~ z6ubcr-?h}jkdlMUxa6Sukus?`ZyNwPk({l2o8*hc97kd*0Y0LH5|~CElh?d{4&UCn zf{ht^kUZhEnn=kPNu)_dIUD$Knad0uLJc||03N2sWda#^AQ0fD$7X}L>X(Q2uuE40 z0Vx6p5)~^};d1u_Se>qUJp&v_M8(IY5TsZl=QskPXrU-veB6n>dIJQ60B72ous$st z3!A)HJ;+IW_1M3~Iu~z{z@1q0K>qX#j15R&34I;-|ZJVRJDEj03Hf zK~!j0z{&bxbA>iB*w%50BqS19Lcz+-vl*qsGy{tDV!Kw0n5!CkdW8ca`2#DzuF;1oc?emAM_j`QI zKvUx-0&q}IZ#7oUt-rty$@i3Izaw5yp+P?OmX~zM%PmfZuohz=z8yyS{qTXmltHlm)fD4)5UGwX4^POAgffsi|sp04k&B}!2 ztht;*q!=^xbzJ|XvJij=|67^>)B4qs_gKnle^oo7XLM}1@#Nu66XL*gJ0SqD4CSyr zXuG;FuVgbRlFH_@c1@*cY;?Hk_`!9w#nSb>=CtoHJLVX&-D#*+W#+CCDP!VahWMzd zucP7E{?e)9K@Citgt6}TpGl!q7@eG@2N8T(4af07!1tu4>UirnpX~_Hv^|(s*q>8H z?Bb=#WjhaPib}Wfg%WAFd;su!-HfH7_MEZi+%d{N&^uFZSOd=xBiHD2H>j888stmT zwbHo7DSWX^2>^Z%J;vC~eNIz%$3I;yb%RaUE&*^w()C{`jrL0MY6c(x00004nJ za0`PlBg3pY5epC11AL)VX*O4C#Cln$z8afDoO;h*gD zS3&9EFIR^%4+8hw+!ZnHDRg`8>mX@-$ByTxV7X0IT7E*NpCi!444$rjF6*2UngIWO BTLS<9 literal 0 HcmV?d00001 diff --git a/html/img/icons/signal.png b/html/img/icons/signal.png new file mode 100644 index 0000000000000000000000000000000000000000..143301f5e81cd55eed147f7cb7f12e6f2889f639 GIT binary patch literal 1102 zcmaJ=O=#0l9M7zqQ!Jb4gn7_McA03Kq#r4btLsNPt=MgL#Z?$+n!K%HOBPw#9zvtIESZpsDJTy?N|VN521?50#B10?Q7&4| z=5Q{3SdfwCl^l%M)(pa?sGeTikmPZQK^~5&dW8P=@Cgl6B|;Ae(`?#Ez=C>k%7jBx z{aJZxTn;OA?|#r@3q(MJSOT_I)Gfh|&`Y`k**n(^4VEByJVGx!l}itT1TrBAdi@@m z*id2TQ8v7C=#$>2R)KnU`JF9cRTnpiWHQ6VGtt=J-`2wlL~5E!OhE_=&< zFEYm%E*uU!8a|(gAUxKjjwRcpTU~Vp5n8gT8dya-a1^CHD&YuCJY5b!Ggf7FYb8x2 zVT>&q4CiH?km|s6`u|W(TSZ$q1K0fhr?8csG$50K7Al!CDcoq6W6BT`CX_HTvj`RI zSsW}NjI07OKw^jo-NUM`pt7}l37<|2Dc!=7F2j@ABb~4j!TB( zVUZ<6bnn5g!&{R)CrO!kfSPEHC8~YMysJFsZ z8v7D#$YqE#j8oXZ3SGY<-Q#Rm+m;+w8z1VV+fCBeR{z2c@+6+8#8}q;kYD`$yVtel z-PYIAKN$7jzoX8 zz0S73X@!3J{;`?M&2vAl7585UpU-}OR-BpBqPJUWvsW)3iau((72A>;*;y@D0wdJC qCwi*08m`!TvYTH%ZmnHrCn}VSl2LqCKmJ~FUU(|mFW!ltIP(X2lVgYg literal 0 HcmV?d00001 diff --git a/html/img/icons/write.png b/html/img/icons/write.png new file mode 100644 index 0000000000000000000000000000000000000000..28f32bebda0859685419555189e228df512f2c5a GIT binary patch literal 250 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 literal 0 HcmV?d00001 diff --git a/html/pdown.ttf b/html/pdown.ttf new file mode 100644 index 0000000000000000000000000000000000000000..69c76cf3f2a6bbc93f570124554fec06d7bbac25 GIT binary patch literal 151512 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 literal 0 HcmV?d00001 diff --git a/html/scripts/app.js b/html/scripts/app.js new file mode 100644 index 00000000..160d91d1 --- /dev/null +++ b/html/scripts/app.js @@ -0,0 +1,434 @@ +(function(){ + + let ContactTpl = + '
' + + '
' + + '
' + + '{{sender}}
#{{phoneNumber}}' + + '
' + + '
' + + '
' + + '
' + ; + + let MessageTpl = + '
' + + '
' + + '
' + + '{{sender}}
#{{phoneNumber}}' + + '
' + + '
' + + '
{{message}}
' + + '
' + + '
' + ; + + let SpecialContactTpl = '
  • {{name}}
  • '; + + let contacts = []; + let specialContacts = []; + let menu = []; + let currentItem = 0; + let currentVal = null; + let isMessageEditorOpen = false; + let isMessagesOpen = false; + let isPhoneShowed = false; + + let showMain = function() { + $('.screen').removeClass('active'); + } + + let showRepertoire = function() { + $('#repertoire').addClass('active'); + } + + let hideRepertoire = function() { + $('#repertoire').removeClass('active'); + } + + let showMessages = function(){ + $('#messages').addClass('active'); + isMessagesOpen = true; + } + + let hideMessages = function(){ + $('#messages').removeClass('active'); + isMessagesOpen = false; + } + + let showAddContact = function() { + $('#contact').addClass('active'); + } + + let hideAddContact = function() { + $('#contact').removeClass('active'); + $('#contact_name').val(''); + $('#contact_number').val(''); + } + + let showNewMessage = function(cnum, cname) { + $('#writer').addClass('active'); + $('#writer_number').val(cnum); + $('#writer .header-title').html(cname); + } + + let hideNewMessage = function() { + $('#writer').removeClass('active'); + $('#writer_number').val(''); + $('#writer_message').val(''); + $('#writer .header-title').html(''); + } + + let showGPS = function(xPos, yPos) { + $.post('http://esx_phone/setGPS', JSON.stringify({ + x: parseFloat(xPos), + y: parseFloat(yPos) + } + )); + } + + let renderContacts = function(){ + + let contactHTML = ''; + + if(contacts.length > 0) { + + for(let i=0; i 0) { + + for(let i=0; i { + return a.name.localeCompare(b.name); + }); + + renderSpecialContacts(); + + } + + let renderSpecialContacts = function(){ + + $('.phone-icon').unbind('click'); + + $('#phone .menu .home').html( + '
  • Repertoire
  • ' + + '
  • Messages
  • ' + ); + + for(let i=0; i":">",'"':""","'":"'","/":"/","`":"`","=":"="};function escapeHtml(string){return String(string).replace(/[&<>"'`=\/]/g,function fromEntityMap(s){return entityMap[s]})}var whiteRe=/\s*/;var spaceRe=/\s+/;var equalsRe=/\s*=/;var curlyRe=/\s*\}/;var tagRe=/#|\^|\/|>|\{|&|=|!/;function parseTemplate(template,tags){if(!template)return[];var sections=[];var tokens=[];var spaces=[];var hasTag=false;var nonSpace=false;function stripSpace(){if(hasTag&&!nonSpace){while(spaces.length)delete tokens[spaces.pop()]}else{spaces=[]}hasTag=false;nonSpace=false}var openingTagRe,closingTagRe,closingCurlyRe;function compileTags(tagsToCompile){if(typeof tagsToCompile==="string")tagsToCompile=tagsToCompile.split(spaceRe,2);if(!isArray(tagsToCompile)||tagsToCompile.length!==2)throw new Error("Invalid tags: "+tagsToCompile);openingTagRe=new RegExp(escapeRegExp(tagsToCompile[0])+"\\s*");closingTagRe=new RegExp("\\s*"+escapeRegExp(tagsToCompile[1]));closingCurlyRe=new RegExp("\\s*"+escapeRegExp("}"+tagsToCompile[1]))}compileTags(tags||mustache.tags);var scanner=new Scanner(template);var start,type,value,chr,token,openSection;while(!scanner.eos()){start=scanner.pos;value=scanner.scanUntil(openingTagRe);if(value){for(var i=0,valueLength=value.length;i0?sections[sections.length-1][4]:nestedTokens;break;default:collector.push(token)}}return nestedTokens}function Scanner(string){this.string=string;this.tail=string;this.pos=0}Scanner.prototype.eos=function eos(){return this.tail===""};Scanner.prototype.scan=function scan(re){var match=this.tail.match(re);if(!match||match.index!==0)return"";var string=match[0];this.tail=this.tail.substring(string.length);this.pos+=string.length;return string};Scanner.prototype.scanUntil=function scanUntil(re){var index=this.tail.search(re),match;switch(index){case-1:match=this.tail;this.tail="";break;case 0:match="";break;default:match=this.tail.substring(0,index);this.tail=this.tail.substring(index)}this.pos+=match.length;return match};function Context(view,parentContext){this.view=view;this.cache={".":this.view};this.parent=parentContext}Context.prototype.push=function push(view){return new Context(view,this)};Context.prototype.lookup=function lookup(name){var cache=this.cache;var value;if(cache.hasOwnProperty(name)){value=cache[name]}else{var context=this,names,index,lookupHit=false;while(context){if(name.indexOf(".")>0){value=context.view;names=name.split(".");index=0;while(value!=null&&index")value=this.renderPartial(token,context,partials,originalTemplate);else if(symbol==="&")value=this.unescapedValue(token,context);else if(symbol==="name")value=this.escapedValue(token,context);else if(symbol==="text")value=this.rawValue(token);if(value!==undefined)buffer+=value}return buffer};Writer.prototype.renderSection=function renderSection(token,context,partials,originalTemplate){var self=this;var buffer="";var value=context.lookup(token[1]);function subRender(template){return self.render(template,context,partials)}if(!value)return;if(isArray(value)){for(var j=0,valueLength=value.length;j + + + + + + + +
    + +
    + +
    + + #123456 +
    + + + +
    + +
    Répertoire
    +
    +
    +
    +

    Aucun contact

    +
    +
    +
    +
    + +
    +
    Messages
    +
    +
    +
    +

    Aucun message

    +
    +
    +
    +
    + +
    +
    +
    +
    + + + + + +
    +
    +
    + +
    +
    Ajouter un contact
    +
    +
    + + + + +
    +
    +
    + +
    +
    + + + + + + + + \ No newline at end of file diff --git a/server/main.lua b/server/main.lua new file mode 100644 index 00000000..14d1afdb --- /dev/null +++ b/server/main.lua @@ -0,0 +1,309 @@ +ESX = nil + +TriggerEvent('esx:getSharedObject', function(obj) + ESX = obj +end) + +local RegisteredCallbacks = {} +local DisptachRequestId = 0 + +function GenerateUniquePhoneNumber() + + local foundNumber = false + local phoneNumber = nil + + while not foundNumber do + + phoneNumber = math.random(10000, 99999) + + local result = MySQL.Sync.fetchAll( + 'SELECT COUNT(*) as count FROM users WHERE phone_number = @phoneNumber', + { + ['@phoneNumber'] = phoneNumber + } + ) + + local count = tonumber(result[1].count) + + if count == 0 then + foundNumber = true + end + + end + + return phoneNumber +end + +function GetDistpatchRequestId() + + local requestId = DisptachRequestId + + if DisptachRequestId < 65535 then + DisptachRequestId = DisptachRequestId + 1 + else + DisptachRequestId = 0 + end + + return requestId + +end + +AddEventHandler('esx_phone:getDistpatchRequestId', function(cb) + cb(GetDistpatchRequestId()) +end) + +AddEventHandler('onResourceStart', function(ressource) + if ressource == 'esx_phone' then + TriggerEvent('esx_phone:ready') + end +end) + +AddEventHandler('esx:playerLoaded', function(source) + + local xPlayer = ESX.GetPlayerFromId(source) + + MySQL.Async.fetchAll( + 'SELECT * FROM users WHERE identifier = @identifier', + { + ['@identifier'] = xPlayer.identifier + }, + function(result) + + local phoneNumber = result[1].phone_number + + if phoneNumber == nil then + + phoneNumber = GenerateUniquePhoneNumber() + + MySQL.Async.execute( + 'UPDATE users SET phone_number = @phone_number WHERE identifier = @identifier', + { + ['@identifier'] = xPlayer.identifier, + ['@phone_number'] = phoneNumber + } + ) + end + + xPlayer.set('phoneNumber', phoneNumber) + + local contacts = {} + + MySQL.Async.fetchAll( + 'SELECT * FROM user_contacts WHERE identifier = @identifier ORDER BY name ASC', + { + ['@identifier'] = xPlayer.identifier + }, + function(result2) + + for i=1, #result2, 1 do + + table.insert(contacts, { + name = result2[i].name, + number = result2[i].number, + online = false + }) + + local xPlayers = ESX.GetPlayers() + + for k, v in pairs(xPlayers) do + if v.get('phoneNumber') == contacts[i].number then + contacts[i].online = true + end + end + + end + + xPlayer.set('contacts', contacts) + + TriggerClientEvent('esx_phone:loaded', source, phoneNumber, contacts) + + end + ) + + end + ) + +end) + + +RegisterServerEvent('esx_phone:reload') +AddEventHandler('esx_phone:reload', function(phoneNumber) + + local xPlayer = ESX.GetPlayerFromId(source) + local contacts = {} + + MySQL.Async.fetchAll( + 'SELECT * FROM user_contacts WHERE identifier = @identifier ORDER BY name ASC', + { + ['@identifier'] = xPlayer.identifier + }, + function(result2) + + for i=1, #result2, 1 do + + table.insert(contacts, { + name = result2[i].name, + number = result2[i].number, + online = false + }) + + local xPlayers = ESX.GetPlayers() + + for k, v in pairs(xPlayers) do + if v.get('phoneNumber') == contacts[i].number then + contacts[i].online = true + end + end + + end + + xPlayer['contacts'] = contacts + + TriggerClientEvent('esx_phone:loaded', source, phoneNumber, contacts) + + end + ) + +end) + +RegisterServerEvent('esx_phone:registerCallback') +AddEventHandler('esx_phone:registerCallback', function(cb) + table.insert(RegisteredCallbacks, cb) +end) + +RegisterServerEvent('esx_phone:send') +AddEventHandler('esx_phone:send', function(phoneNumber, message, anon) + for i=1, #RegisteredCallbacks, 1 do + RegisteredCallbacks[i](source, phoneNumber, message, anon) + end +end) + +RegisterServerEvent('esx_phone:addPlayerContact') +AddEventHandler('esx_phone:addPlayerContact', function(phoneNumber, contactName) + + local xPlayers = ESX.GetPlayers() + local foundNumber = false + local foundPlayer = nil + + MySQL.Async.fetchAll( + 'SELECT phone_number FROM users WHERE phone_number = @number', + { + ['@number'] = phoneNumber + }, + function(result) + + if result[1] ~= nil then + foundNumber = true + end + + if foundNumber then + + local xPlayer = ESX.GetPlayerFromId(source) + + if phoneNumber == xPlayer.get('phoneNumber') then + TriggerClientEvent('esx:showNotification', _source, 'Vous ne pouvez pas vous ajouter vous-même') + else + + local hasAlreadyAdded = false + local contacts = xPlayer.get('contacts') + + for i=1, #contacts, 1 do + if contacts[i].number == phoneNumber then + hasAlreadyAdded = true + end + end + + if hasAlreadyAdded then + TriggerClientEvent('esx:showNotification', _source, 'Ce numéro est déja dans votre liste de contacts') + else + + table.insert(contacts, { + name = contactName, + number = phoneNumber, + }) + + xPlayer.set('contacts', contacts) + + MySQL.Async.execute( + 'INSERT INTO user_contacts (identifier, name, number) VALUES (@identifier, @name, @number)', + { + ['@identifier'] = xPlayer.identifier, + ['@name'] = contactName, + ['@number'] = phoneNumber + }, + function(rowsChanged) + + TriggerClientEvent('esx:showNotification', _source, 'Contact ajouté') + + local xPlayers = ESX.GetPlayers() + local isOnline = false + + for k,v in pairs(xPlayers) do + if v.get('phoneNumber') == phoneNumber then + isOnline = true + break + end + end + + TriggerClientEvent('esx_phone:addContact', source, contactName, phoneNumber, isOnline) + end + ) + + end + end + + else + TriggerClientEvent('esx:showNotification', source, 'Ce numéro n\'est pas attribué...') + end + + end + ) + +end) + +AddEventHandler('esx_phone:ready', function() + TriggerEvent('esx_phone:registerCallback', function(source, phoneNumber, message, anon) + + local xPlayer = ESX.GetPlayerFromId(source) + local xPlayers = ESX.GetPlayers() + local job = 'player' + + print('MESSAGE => ' .. xPlayer.name .. '@' .. phoneNumber .. ' : ' .. message) + + for k, v in pairs(xPlayers) do + + if phoneNumber == "police" then + + if v.job.name == 'cop' then + job = "ALERTE POLICE" + TriggerClientEvent('esx_phone:onMessage', v.source, xPlayer.get('phoneNumber'), message, xPlayer.get('coords'), anon, job, GetDistpatchRequestId()) + end + + elseif phoneNumber == "ambulance" then + + if v.job.name == 'ambulance' then + job = "ALERTE AMBULANCE" + TriggerClientEvent('esx_phone:onMessage', v.source, xPlayer.get('phoneNumber'), message, xPlayer.get('coords'), anon, job, GetDistpatchRequestId()) + + end + + elseif phoneNumber == "depanneur" then + + if v.job.name == 'depanneur' then + job = "APPEL DÉPANNEUR" + TriggerClientEvent('esx_phone:onMessage', v.source, xPlayer.get('phoneNumber'), message, xPlayer.get('coords'), anon, job, GetDistpatchRequestId()) + end + + elseif v.get('phoneNumber') == phoneNumber then + TriggerClientEvent('esx_phone:onMessage', v.source, xPlayer.get('phoneNumber'), message, xPlayer.get('coords'), anon, job, false) + end + + end + + end) +end) + +RegisterServerEvent('esx_phone:stopDispatch') +AddEventHandler('esx_phone:stopDispatch', function(dispatchRequestId) + TriggerClientEvent('esx_phone:stopDispatch', -1, dispatchRequestId, GetPlayerName(source)) +end) \ No newline at end of file