From ac8d9fa9206e2a06866024c9ec302ada544a1598 Mon Sep 17 00:00:00 2001 From: Serpensin Date: Sun, 10 May 2026 22:59:34 +0200 Subject: [PATCH 1/3] [feat] Add "Click here to join" to discord embed. --- lua/damagelogs/server/discord.lua | 53 +++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 16 deletions(-) diff --git a/lua/damagelogs/server/discord.lua b/lua/damagelogs/server/discord.lua index f0790ca8..c9d7109c 100644 --- a/lua/damagelogs/server/discord.lua +++ b/lua/damagelogs/server/discord.lua @@ -49,29 +49,50 @@ function Damagelog:DiscordMessage(discordUpdate) return end + local steamconnectUrl = CreateConVar("ttt_dmglogs_steamconnect_url", "https://steamconnect.serpensin.com/?ip=%ip%&port=%port%", FCVAR_PROTECTED + FCVAR_LUA_SERVER, "TTTDamagelogs - Steam connect URL template. Use %ip% and %port% as placeholders.") + + local serverField = nil + local baseUrl = steamconnectUrl:GetString() + if baseUrl ~= "" then + local serverIP = game.GetIPAddress() or "" + local ip, port = serverIP:match("([^:]+):(.+)") + if ip and port then + local joinLink = baseUrl:gsub("%%ip%%", ip):gsub("%%port%%", port) + serverField = { + name = "Server", + value = "[Click here to join](" .. joinLink .. ")", + inline = false + } + end + end + local data = { title = TTTLogTranslate(nil, "webhook_header_report_submitted"):format(discordUpdate.reportId), description = TTTLogTranslate(nil, "webhook_ServerInfo"):format(game.GetMap(), discordUpdate.round), timestamp = os.date("!%Y-%m-%dT%H:%M:%S.000Z"), - fields = { - { - name = TTTLogTranslate(nil, "Victim") .. ":", - value = "[" .. discordUpdate.victim.nick:gsub("([%*_~<>\\@%]])", "\\%1") .. "](https://steamcommunity.com/profiles/" .. util.SteamIDTo64(discordUpdate.victim.steamID) .. ")\n" .. discordUpdate.victim.steamID, - inline = true - }, - { - name = TTTLogTranslate(nil, "ReportedPlayer") .. ":", - value = "[" .. discordUpdate.attacker.nick:gsub("([%*_~<>\\@%]])", "\\%1") .. "](https://steamcommunity.com/profiles/" .. util.SteamIDTo64(discordUpdate.attacker.steamID) .. ")\n" .. discordUpdate.attacker.steamID, - inline = true - }, - { - name = TTTLogTranslate(nil, "VictimsReport") .. ":", - value = discordUpdate.reportMessage:gsub("([%*_~<>\\@[])", "\\%1") - } - }, + fields = {}, color = 0xffff00 } + if serverField then + table.insert(data.fields, serverField) + end + + table.insert(data.fields, { + name = TTTLogTranslate(nil, "Victim") .. ":", + value = "[" .. discordUpdate.victim.nick:gsub("([%*_~<>\\@%]])", "\\%1") .. "](https://steamcommunity.com/profiles/" .. util.SteamIDTo64(discordUpdate.victim.steamID) .. ")\n" .. discordUpdate.victim.steamID, + inline = true + }) + table.insert(data.fields, { + name = TTTLogTranslate(nil, "ReportedPlayer") .. ":", + value = "[" .. discordUpdate.attacker.nick:gsub("([%*_~<>\\@%]])", "\\%1") .. "](https://steamcommunity.com/profiles/" .. util.SteamIDTo64(discordUpdate.attacker.steamID) .. ")\n" .. discordUpdate.attacker.steamID, + inline = true + }) + table.insert(data.fields, { + name = TTTLogTranslate(nil, "VictimsReport") .. ":", + value = discordUpdate.reportMessage:gsub("([%*_~<>\\@[])", "\\%1") + }) + if discordUpdate.responseMessage ~= nil then local forgivenRow = { From 565830db14eea13c4dffa70eb3a2f261fa4edefe Mon Sep 17 00:00:00 2001 From: Serpensin Date: Sun, 10 May 2026 23:11:42 +0200 Subject: [PATCH 2/3] [fix] ttt_dmglogs_steamconnect_url now defaults to empty --- lua/damagelogs/server/discord.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/damagelogs/server/discord.lua b/lua/damagelogs/server/discord.lua index c9d7109c..84d28bf5 100644 --- a/lua/damagelogs/server/discord.lua +++ b/lua/damagelogs/server/discord.lua @@ -49,7 +49,7 @@ function Damagelog:DiscordMessage(discordUpdate) return end - local steamconnectUrl = CreateConVar("ttt_dmglogs_steamconnect_url", "https://steamconnect.serpensin.com/?ip=%ip%&port=%port%", FCVAR_PROTECTED + FCVAR_LUA_SERVER, "TTTDamagelogs - Steam connect URL template. Use %ip% and %port% as placeholders.") + local steamconnectUrl = CreateConVar("ttt_dmglogs_steamconnect_url", "", FCVAR_PROTECTED + FCVAR_LUA_SERVER, "TTTDamagelogs - Steam connect URL template. Use %ip% and %port% as placeholders.") local serverField = nil local baseUrl = steamconnectUrl:GetString() From 7706d8f7506ae0a80daffde8948a9f651a9fee7f Mon Sep 17 00:00:00 2001 From: Serpensin Date: Mon, 11 May 2026 20:46:12 +0200 Subject: [PATCH 3/3] [fix] Moved CreateConVar to the top --- lua/damagelogs/server/discord.lua | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lua/damagelogs/server/discord.lua b/lua/damagelogs/server/discord.lua index 84d28bf5..98878398 100644 --- a/lua/damagelogs/server/discord.lua +++ b/lua/damagelogs/server/discord.lua @@ -6,6 +6,7 @@ local POST_MODES = { local HTTP = HTTP local url = CreateConVar("ttt_dmglogs_discordurl", "", FCVAR_PROTECTED + FCVAR_LUA_SERVER, "TTTDamagelogs - Discord Webhook URL") +local steamconnectUrl = CreateConVar("ttt_dmglogs_steamconnect_url", "", FCVAR_PROTECTED + FCVAR_LUA_SERVER, "TTTDamagelogs - Steam connect URL template. Use %ip% and %port% as placeholders.") local disabled = Damagelog.DiscordWebhookMode == POST_MODES.DISABLED local emitOnlyWhenAdminsOffline = Damagelog.DiscordWebhookMode == POST_MODES.WHEN_ADMINS_OFFLINE local limit = 5 @@ -49,8 +50,6 @@ function Damagelog:DiscordMessage(discordUpdate) return end - local steamconnectUrl = CreateConVar("ttt_dmglogs_steamconnect_url", "", FCVAR_PROTECTED + FCVAR_LUA_SERVER, "TTTDamagelogs - Steam connect URL template. Use %ip% and %port% as placeholders.") - local serverField = nil local baseUrl = steamconnectUrl:GetString() if baseUrl ~= "" then