mirror of
https://github.com/citizenfx/cfx-server-data.git
synced 2025-01-11 00:03:18 +08:00
91 lines
3.1 KiB
Lua
91 lines
3.1 KiB
Lua
local chatSharp = clr.ChatSharp
|
|
|
|
local client = chatSharp.IrcClient('irc.rizon.net', chatSharp.IrcUser('citimate', 'mateyate'), false)
|
|
|
|
-- temporary workaround for connections that never triggered playerActivated but triggered playerDropped
|
|
local activatedPlayers = {}
|
|
|
|
client.ConnectionComplete:add(function(s : object, e : System.EventArgs) : void
|
|
client:JoinChannel('#meow')
|
|
end)
|
|
|
|
-- why is 'received' even misspelled here?
|
|
client.ChannelMessageRecieved:add(function(s : object, e : ChatSharp.Events.PrivateMessageEventArgs) : void
|
|
local msg = e.PrivateMessage
|
|
|
|
TriggerClientEvent('chatMessage', -1, msg.User.Nick, { 0, 0x99, 255 }, msg.Message)
|
|
end)
|
|
|
|
AddEventHandler('playerActivated', function()
|
|
client:SendMessage('* ' .. GetPlayerName(source) .. '(' .. GetPlayerGuid(source) .. '@' .. GetPlayerEP(source) .. ') joined the server', '#fourdeltaone')
|
|
table.insert(activatedPlayers, GetPlayerGuid(source))
|
|
end)
|
|
|
|
AddEventHandler('playerDropped', function()
|
|
-- find out if this connection ever triggered playerActivated
|
|
for index,guid in pairs(activatedPlayers) do
|
|
if guid == playerGuid then
|
|
-- show player dropping connection in chat
|
|
client:SendMessage('* ' .. GetPlayerName(source) .. '(' .. GetPlayerGuid(source) .. '@' .. GetPlayerEP(source) .. ') left the server', '#fourdeltaone')
|
|
table.remove(activatedPlayers, index)
|
|
return
|
|
end
|
|
end
|
|
end)
|
|
|
|
AddEventHandler('chatMessage', function(source, name, message)
|
|
print('hey there ' .. name)
|
|
|
|
local displayMessage = gsub(message, '^%d', '')
|
|
|
|
-- ignore zero-length messages
|
|
if string.len(displayMessage) == 0 then
|
|
return
|
|
end
|
|
|
|
-- ignore chat messages that are actually commands
|
|
if string.sub(displayMessage, 1, 1) == "/" then
|
|
return
|
|
end
|
|
|
|
client:SendMessage('[' .. tostring(GetPlayerName(source)) .. ']: ' .. displayMessage, '#fourdeltaone')
|
|
end)
|
|
|
|
AddEventHandler('onPlayerKilled', function(playerId, attackerId, reason, position)
|
|
local player = GetPlayerByServerId(playerId)
|
|
local attacker = GetPlayerByServerId(attackerId)
|
|
|
|
local reasonString = 'killed'
|
|
|
|
if reason == 0 or reason == 56 or reason == 1 or reason == 2 then
|
|
reasonString = 'meleed'
|
|
elseif reason == 3 then
|
|
reasonString = 'knifed'
|
|
elseif reason == 4 or reason == 6 or reason == 18 or reason == 51 then
|
|
reasonString = 'bombed'
|
|
elseif reason == 5 or reason == 19 then
|
|
reasonString = 'burned'
|
|
elseif reason == 7 or reason == 9 then
|
|
reasonString = 'pistoled'
|
|
elseif reason == 10 or reason == 11 then
|
|
reasonString = 'shotgunned'
|
|
elseif reason == 12 or reason == 13 or reason == 52 then
|
|
reasonString = 'SMGd'
|
|
elseif reason == 14 or reason == 15 or reason == 20 then
|
|
reasonString = 'assaulted'
|
|
elseif reason == 16 or reason == 17 then
|
|
reasonString = 'sniped'
|
|
elseif reason == 49 or reason == 50 then
|
|
reasonString = 'ran over'
|
|
end
|
|
|
|
client:SendMessage('* ' .. attacker.name .. ' ' .. reasonString .. ' ' .. player.name, '#fourdeltaone')
|
|
end)
|
|
|
|
client:ConnectAsync()
|
|
|
|
AddEventHandler('onResourceStop', function(name)
|
|
if name == GetInvokingResource() then
|
|
client:Quit('Resource stopping.')
|
|
end
|
|
end) |