-
Notifications
You must be signed in to change notification settings - Fork 0
/
xchat_logs.lua
70 lines (57 loc) · 1.77 KB
/
xchat_logs.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
--[[
Discord log system i made for my TTT server.
## xChat is required.
## https://github.com/cresterienvogel/xChat
]]
local CFG = {}
CFG.Webhook = "" -- Discord webhook URL of posting channel
CFG.Types = {
["damage"] = true,
["kills"] = true,
["ttt"] = true
}
CFG.PostLog = function(msg, clr)
http.Post(xChat.Config.Handler .. "lib/custom.php", {
webhook = CFG.Webhook,
message = msg,
color = clr or "ff957e",
secret = xChat.Config.Secret
})
end
--[[
Logs
]]
if CFG.Types["damage"] and xChat then
hook.Add("EntityTakeDamage", "xChat Logs", function(target, dmg)
local attacker = dmg:GetAttacker()
local damage = math.Round(dmg:GetDamage(), 0)
if not (target:IsPlayer() and attacker:IsPlayer()) then
return
end
local text = attacker:Name() .. " (" .. attacker:SteamID() .. ") did " .. damage .. " damage to "
if IsValid(attacker:GetActiveWeapon()) then
text = text .. target:Name() .. " (" .. target:SteamID() .. ") with " .. attacker:GetActiveWeapon():GetClass()
else
text = text .. target:Name() .. " (" .. target:SteamID() .. ")"
end
CFG.PostLog(text, "9c4040")
end)
end
if CFG.Types["kills"] and xChat then
hook.Add("PlayerDeath", "xChat Logs", function(victim, inflictor, attacker)
if not (victim:IsPlayer() and attacker:IsPlayer()) then
return
end
local text = attacker:Name() .. " (" .. attacker:SteamID() .. ") killed "
text = text .. victim:Name() .. " (" .. victim:SteamID() .. ") with " .. inflictor:GetClass()
CFG.PostLog(text, "ff2e2e")
end)
end
if CFG.Types["ttt"] and xChat and engine.ActiveGamemode() == "terrortown" then
hook.Add("TTTEndRound", "xChat Logs", function(result)
CFG.PostLog("The round has ended")
end)
hook.Add("TTTBeginRound", "xChat Logs", function()
CFG.PostLog("The round has started")
end)
end