Skip to content

Chat Categories

Chattkategorier

Kategorier är flikarna i chattinmatningen. Var och en är en separat kanal med egna färger, taggar, behörigheter, leveransregler och identitetsmärken. De definieras i shared/config/categories.lua som config.chatCategories.

Den inbyggda Kommandon-fliken

En command-kategori injiceras alltid som den första fliken vid uppstart (från shared/main.lua) — du behöver inte definiera den själv:

shared/main.lua
table.insert(config.chatCategories, 1, {
    label = "CATEGORY_COMMANDS_LABEL",
    type = "command",
    icon = "terminal",
    placeholder = "CATEGORY_COMMANDS_PLACEHOLDER",
})

Allt som skrivs i denna flik utförs som ett kommando. Med config.allowNoSlashCommands = true fungerar ett känt kommandonamn med eller utan ett inledande snedstreck (att skriva me hi körs som /me hi).

Vad som är aktiverat som standard

Direkt ur lådan är endast Admin-kategorin aktiv i config.chatCategories. Färdiga exempel för OOC (Global), OOC (Lokal/närmaste), Polis, EMS och Gäng ingår i filen men är utkommenterade — avkommentera och anpassa dem efter behov.

Kategori type Hur åtkomst begränsas
Kommandon command Alltid närvarande (auto-injicerad)
Admin admin ACE-behörigheter command / admin / adminchat
OOC (Global) ooc Öppet för alla (exempel)
OOC (Lokal) oocclosest Proximity — distance i meter (exempel)
Polis pdchat jobs = { police = {...grades} } (exempel)
EMS emschat jobs = { ambulance = true } (exempel)
Gäng gang gangs = { ... } (exempel)

Standardkategori

config.defaultChatCategory avgör vilken flik som är i fokus när chatten öppnas:

shared/config/general.lua
config.defaultChatCategory = "command"

Snedstreck vs. kommandon utan snedstreck

shared/config/general.lua
--- true  = kommandon fungerar MED och UTAN ett inledande snedstreck ("me hi" kör /me)
--- false = kommandon utlöses endast med ett inledande snedstreck ("/me hi")
config.allowNoSlashCommands = true

Kategoriparametrar

Varje kategori har stöd för en mängd olika fält. Ett nedskuret exempel:

shared/config/categories.lua
{
    label = "CATEGORY_ADMIN_LABEL",  -- översättningsnyckel för flikens namn
    type = "admin",                  -- unikt ID för denna kategori
    icon = "shield-alt",             -- FontAwesome-ikon
    webhookKey = "chatMessage",      -- Discord-loggwebbhook (se Discord-loggning)
    placeholder = "CATEGORY_ADMIN_PLACEHOLDER",
    permissions = { "command", "admin", "adminchat" }, -- krävda ACE-behörigheter
    maxLength = 500,                 -- max meddelandelängd
    tags = {                         -- fasta tagg(ar) som visas före meddelandet
        { tag = "Admin", textColor = { 51, 51, 51 }, bgColor = { 255, 105, 97 } },
    },
    color = { 255, 105, 97 },        -- standardfärg för meddelandetext
    showPlayerName = { active = true, censored = false, showWearingMask = true },
    showPlayerId   = { active = false, type = "serverId" },
    showPlayerJob  = { active = false, showLabel = true, showGrade = false },
    discordTag     = { active = false, maxShow = 1, roles = { ... } },
    showHour       = { active = true },
}

Fullständig fältreferens (alla är valfria om inget annat anges):

Fält Typ Beskrivning
label string Översättningsnyckel för flikens visningsnamn
type string Krävs. Unik identifierare för kategorin
icon string FontAwesome-ikonnamn
webhookKey string Discord-webbhooknyckel för att logga denna kategorins meddelanden
command string / string[] Chattkommando(n) som dirigeras till denna kategori
placeholder string Översättningsnyckel för inmatningens platshållare
distance number Max leveransavstånd i meter; utelämna för global
maxLength number Maximal meddelandelängd i tecken
permissions string[] Krävda ACE-behörigheter för att se/använda kategorin
jobs table Krävda jobb — true = alla grader, number[] = specifika grader
gangs table Krävda gäng — samma format som jobs
tags table[] Fasta taggar som visas före meddelanden (tag, textColor, bgColor)
color RGB Standardfärg för meddelandetext { r, g, b }
showPlayerName table active, censored, bgColor, textColor, showWearingMask
showPlayerId table active, type = "serverId", färger
showPlayerJob table active, showLabel, showGrade, färger, jobbvisa åsidosättningar
discordTag table active, maxShow, roles[] (Discord-roll → tagg)
showHour table active, färger — lägger till meddelandets tidsstämpel

Namncensur visar ett maskerat namn (t.ex. J*** D**). Om en spelare bär en mask döljs hens namn som Okänd om inte showWearingMask = true — maskkontrollen styrs av config.noneMask i general.lua.