From 602753f59ee65c50277f1c38d2d9358bb44db7b8 Mon Sep 17 00:00:00 2001 From: moscovium Date: Sun, 9 Jul 2017 16:21:45 +0200 Subject: [PATCH] chat updates for feature/command-updates --- resources/[system]/chat/cl_chat.lua | 21 ++++++++++++++++++++- resources/[system]/chat/sv_chat.lua | 18 +++++++++++++++++- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/resources/[system]/chat/cl_chat.lua b/resources/[system]/chat/cl_chat.lua index 8848f3e..2c5a653 100644 --- a/resources/[system]/chat/cl_chat.lua +++ b/resources/[system]/chat/cl_chat.lua @@ -9,6 +9,8 @@ RegisterNetEvent('chat:removeSuggestion') RegisterNetEvent('chat:clear') -- internal events +RegisterNetEvent('__cfx_internal:serverPrint') + RegisterNetEvent('_chat:messageEntered') --deprecated, use chat:addMessage @@ -27,6 +29,19 @@ AddEventHandler('chatMessage', function(author, color, text) }) end) +AddEventHandler('__cfx_internal:serverPrint', function(msg) + print(msg) + + SendNUIMessage({ + type = 'ON_MESSAGE', + message = { + color = { 0, 0, 0 }, + multiline = true, + args = { msg } + } + }) +end) + AddEventHandler('chat:addMessage', function(message) SendNUIMessage({ type = 'ON_MESSAGE', @@ -78,7 +93,11 @@ RegisterNUICallback('chatResult', function(data, cb) --deprecated local r, g, b = 0, 0x99, 255 - TriggerServerEvent('_chat:messageEntered', GetPlayerName(id), { r, g, b }, data.message) + if data.message:sub(1, 1) == '/' then + ExecuteCommand(data.message:sub(2)) + else + TriggerServerEvent('_chat:messageEntered', GetPlayerName(id), { r, g, b }, data.message) + end end cb('ok') diff --git a/resources/[system]/chat/sv_chat.lua b/resources/[system]/chat/sv_chat.lua index 6fd1d07..c551837 100644 --- a/resources/[system]/chat/sv_chat.lua +++ b/resources/[system]/chat/sv_chat.lua @@ -5,6 +5,7 @@ RegisterServerEvent('chat:addSuggestion') RegisterServerEvent('chat:removeSuggestion') RegisterServerEvent('_chat:messageEntered') RegisterServerEvent('chat:clear') +RegisterServerEvent('__cfx_internal:commandFallback') AddEventHandler('_chat:messageEntered', function(author, color, message) if not message or not author then @@ -14,13 +15,24 @@ AddEventHandler('_chat:messageEntered', function(author, color, message) TriggerEvent('chatMessage', source, author, message) if not WasEventCanceled() then - print("No cancel") TriggerClientEvent('chatMessage', -1, author, { 255, 255, 255 }, message) end print(author .. ': ' .. message) end) +AddEventHandler('__cfx_internal:commandFallback', function(command) + local name = GetPlayerName(source) + + TriggerEvent('chatMessage', source, name, '/' .. command) + + if not WasEventCanceled() then + TriggerClientEvent('chatMessage', -1, name, { 255, 255, 255 }, '/' .. command) + end + + CancelEvent() +end) + -- player join messages AddEventHandler('playerActivated', function() TriggerClientEvent('chatMessage', -1, '', { 255, 255, 255 }, '^2* ' .. GetPlayerName(source) .. ' joined.') @@ -29,3 +41,7 @@ end) AddEventHandler('playerDropped', function(reason) TriggerClientEvent('chatMessage', -1, '', { 255, 255, 255 }, '^2* ' .. GetPlayerName(source) ..' left (' .. reason .. ')') end) + +RegisterCommand('say', function(source, args, rawCommand) + TriggerClientEvent('chatMessage', -1, (source == 0) and 'console' or GetPlayerName(source), { 255, 255, 255 }, rawCommand:sub(5)) +end) \ No newline at end of file