Skip to content

Chat Categories

Chat Categories

Kategorie to zakładki w oknie wprowadzania wiadomości na czacie. Każda z nich to osobny kanał z własnymi kolorami, tagami, uprawnieniami, zasadami dostarczania i odznakami identyfikacyjnymi. Są one definiowane w shared/config/categories.lua jako config.chatCategories.

Wbudowana zakładka Komendy

Kategoria command jest zawsze wstrzykiwana jako pierwsza zakładka podczas uruchamiania (z shared/main.lua) — nie definiujesz jej samodzielnie:

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

Wszystko wpisane w tej zakładce jest wykonywane jako komenda. Przy config.allowNoSlashCommands = true, znana nazwa komendy działa z ukośnikiem na początku lub bez niego (wpisanie me hi uruchamia /me hi).

Co jest domyślnie włączone

Po wyjęciu z pudełka tylko kategoria Admin jest aktywna w config.chatCategories. Gotowe do użycia przykłady dla OOC (Global), OOC (Lokalny/najbliższy), Policji, EMS i Gangu są zawarte w pliku, ale zostały zakomentowane — odkomentuj je i dostosuj według uznania.

Kategoria type Jak kontrolowany jest dostęp
Komendy command Zawsze obecna (automatycznie wstrzykiwana)
Admin admin Uprawnienia ACE command / admin / adminchat
OOC (Global) ooc Dostępne dla każdego (przykład)
OOC (Lokalny) oocclosest Zasięg — distance w metrach (przykład)
Policja pdchat jobs = { police = {...grades} } (przykład)
EMS emschat jobs = { ambulance = true } (przykład)
Gang gang gangs = { ... } (przykład)

Domyślna kategoria

config.defaultChatCategory decyduje, która zakładka jest domyślnie wybrana po otwarciu czatu:

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

Komendy z ukośnikiem vs. bez ukośnika

shared/config/general.lua
--- true  = komendy działają Z ukośnikiem i BEZ ukośnika na początku ("me hi" uruchamia /me)
--- false = komendy uruchamiają się tylko z ukośnikiem na początku ("/me hi")
config.allowNoSlashCommands = true

Parametry kategorii

Każda kategoria obsługuje bogaty zestaw pól. Okrojony przykład:

shared/config/categories.lua
{
    label = "CATEGORY_ADMIN_LABEL",  -- klucz tłumaczenia dla nazwy zakładki
    type = "admin",                  -- unikalne id dla tej kategorii
    icon = "shield-alt",             -- ikona FontAwesome
    webhookKey = "chatMessage",      -- webhook logów Discorda (zobacz Logowanie Discord)
    placeholder = "CATEGORY_ADMIN_PLACEHOLDER",
    permissions = { "command", "admin", "adminchat" }, -- wymagane uprawnienia ACE
    maxLength = 500,                 -- maksymalna długość wiadomości
    tags = {                         -- stały tag(-y) pokazywany przed wiadomością
        { tag = "Admin", textColor = { 51, 51, 51 }, bgColor = { 255, 105, 97 } },
    },
    color = { 255, 105, 97 },        -- domyślny kolor tekstu wiadomości
    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 },
}

Pełna dokumentacja pól (wszystkie opcjonalne, chyba że zaznaczono inaczej):

Pole Typ Opis
label string Klucz tłumaczenia dla wyświetlanej nazwy zakładki
type string Wymagane. Unikalny identyfikator kategorii
icon string Nazwa ikony FontAwesome
webhookKey string Klucz webhooka Discorda do logowania wiadomości z tej kategorii
command string / string[] Komenda(-y) czatu kierująca do tej kategorii
placeholder string Klucz tłumaczenia dla tekstu zastępczego (placeholder) pola wprowadzania
distance number Maksymalna odległość dostarczenia w metrach; puste dla globalnej
maxLength number Maksymalna długość znaków wiadomości
permissions string[] Wymagane uprawnienia ACE do wyświetlania/używania kategorii
jobs table Wymagane prace — true = wszystkie stopnie, number[] = konkretne stopnie
gangs table Wymagane gangi — taka sama struktura jak jobs
tags table[] Stałe tagi pokazywane przed wiadomościami (tag, textColor, bgColor)
color RGB Domyślny kolor tekstu wiadomości { r, g, b }
showPlayerName table active, censored, bgColor, textColor, showWearingMask
showPlayerId table active, type = "serverId", kolory
showPlayerJob table active, showLabel, showGrade, kolory, nadpisania dla konkretnych prac
discordTag table active, maxShow, roles[] (rola Discorda → tag)
showHour table active, kolory — dodaje godzinę wysłania wiadomości

Cenzurowanie nazw wyświetla zamaskowaną nazwę (np. J*** D**). Jeśli gracz ma założoną maskę, jego imię jest ukrywane jako Nieznany, chyba że showWearingMask = true — sprawdzanie maski jest obsługiwane przez config.noneMask w pliku general.lua.