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:
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:
config.defaultChatCategory = "command"Snedstreck vs. kommandon utan snedstreck
--- 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 = trueKategoriparametrar
Varje kategori har stöd för en mängd olika fält. Ett nedskuret exempel:
{
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.