Discord-loggning
Discord-loggning
BUPA Chat har två oberoende Discord-funktioner. Den här sidan täcker utgående webhook-loggning (chatt → Discord). Den inkommande kanalbryggan (Discord → chatt), som konfigureras i shared/config/discord.lua, är en separat funktion som beskrivs i slutet.
Webhook-loggning (chat → Discord)
Webhook-URL:er finns i server/webhook.lua — en escrow_ignore-fil som du redigerar direkt. Tre nycklar är definierade:
local webhooks = {
chatMessage = "https://.../webhook-proxy/....",
emoteCommand = "https://.../webhook-proxy/....",
pmMessage = "https://.../webhook-proxy/....",
}Ersätt platshållarens proxy-URL:er med dina egna Discord-webhook-URL:er. Om en nyckels URL är tom skickas inget för den.
Hur meddelanden mappas till webhooks
Konfigurationsposter refererar till en webhook med dess nyckel via webhookKey:
- Kategorier — varje kategori kan ange
webhookKey(se Chat Categories). - Privata meddelanden —
config.pm.webhookKey(standard ärchatMessage). - Emotes — varje emote-kommando kan ange
webhookKey(/meoch/doanvänderemoteCommand).
Varje normalt chattmeddelande loggas alltid till chatMessage-webhooken. När en kategori också definierar sin egen webhookKey, loggas den kategorins meddelanden till både kategori-webhooken och chatMessage-webhooken.
Loggning hanteras av sendDiscordLog(webhookKey, message, src), som skickar en fristående JSON-nyttolast till den mappade URL:en — ingen extern Discord-resurs krävs:
function sendDiscordLog(webhook, msg, src)
local url = webhooks[webhook]
if not url or url == "" then return end
local payload = type(msg) == "table" and { embeds = { msg } } or { content = tostring(msg) }
PerformHttpRequest(url, function() end, "POST", json.encode(payload),
{ ["Content-Type"] = "application/json" })
endFör att lägga till ett nytt loggmål lägger du till en nyckel i webhooks-tabellen och refererar till den från en kategori, PM eller emote via webhookKey.
Kanalbrygga (Discord → chatt)
Separat kan shared/config/discord.lua (config.discord) avläsa Discord-kanaler och vidarebefordra deras meddelanden till spelets chatt. Den är inaktiverad som standard.
config.discord = {
active = false,
pollInterval = 15000, -- ms mellan avläsningar
channels = {
{
channelId = "", -- Discord-kanal att läsa från
-- permissions = { "admin" }, -- valfritt: vem som kan se dessa meddelanden
-- jobs = { police = true },
-- gangs = { whiteGang = true },
tags = { { tag = "Discord", textColor = { 51, 51, 51 }, bgColor = { 88, 101, 242 } } },
color = { 200, 200, 200 },
},
-- fler kanaler: Discord Admin / PD / EMS / Gang-exempel inkluderade
},
}Varje kanalpost kan begränsas av permissions, jobs eller gangs, så att en kanals meddelanden endast visas för rätt spelare. Bryggan läser meddelanden via Discord-bot-API:et och kräver en bot-token + guild-ID — som antingen tillhandahålls i config.discord eller återanvänds från config.adminChatName.discord i general.lua. Meddelanden som skapats av bots ignoreras.