Chat Categories
Chat Categories
Kategorie jsou záložky ve vstupním poli chatu. Každá z nich představuje samostatný kanál s vlastními barvami, štítky, oprávněními, pravidly doručování a identifikačními odznaky. Jsou definovány v shared/config/categories.lua jako config.chatCategories.
Vestavěná záložka Commands
Kategorie command je vždy automaticky vložena jako první záložka při spuštění (ze souboru shared/main.lua) — nemusíte ji definovat sami:
table.insert(config.chatCategories, 1, {
label = "CATEGORY_COMMANDS_LABEL",
type = "command",
icon = "terminal",
placeholder = "CATEGORY_COMMANDS_PLACEHOLDER",
})Vše, co do této záložky napíšete, se provede jako příkaz. S nastavením config.allowNoSlashCommands = true funguje známý název příkazu s úlomkem i bez úlomku na začátku (napsání me hi spustí /me hi).
Co je zapnuto ve výchozím stavu
Hned po vybalení je v config.chatCategories aktivní pouze kategorie Admin. Připravené příklady pro OOC (Global), OOC (Local/closest), Police, EMS a Gang jsou obsaženy v souboru, ale jsou zakomentované — odkomentujte je a upravte podle potřeby.
| Kategorie | type |
Jak je omezen přístup |
|---|---|---|
| Commands | command |
Vždy přítomno (automaticky vloženo) |
| Admin | admin |
ACE oprávnění command / admin / adminchat |
| OOC (Global) | ooc |
Otevřeno pro každého (příklad) |
| OOC (Local) | oocclosest |
Proximita — distance v metrech (příklad) |
| Police | pdchat |
jobs = { police = {...grades} } (příklad) |
| EMS | emschat |
jobs = { ambulance = true } (příklad) |
| Gang | gang |
gangs = { ... } (příklad) |
Výchozí kategorie
config.defaultChatCategory určuje, která záložka bude aktivní po otevření chatu:
config.defaultChatCategory = "command"Příkazy s lomítkem vs. bez lomítka
--- true = příkazy fungují S úlomkem i BEZ ÚLOMKU na začátku ("me hi" spustí /me)
--- false = příkazy se spouštějí pouze s úlomkem na začátku ("/me hi")
config.allowNoSlashCommands = trueParametry kategorií
Každá kategorie podporuje velké množství polí. Zde je zkrácený příklad:
{
label = "CATEGORY_ADMIN_LABEL", -- překladový klíč pro název záložky
type = "admin", -- unikátní ID pro tuto kategorii
icon = "shield-alt", -- FontAwesome ikona
webhookKey = "chatMessage", -- Discord log webhook (viz Discord Logging)
placeholder = "CATEGORY_ADMIN_PLACEHOLDER",
permissions = { "command", "admin", "adminchat" }, -- vyžadovaná ACE oprávnění
maxLength = 500, -- maximální délka zprávy
tags = { -- pevný/é štítek/štítky zobrazený/é před zprávou
{ tag = "Admin", textColor = { 51, 51, 51 }, bgColor = { 255, 105, 97 } },
},
color = { 255, 105, 97 }, -- výchozí barva textu zprávy
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 },
}Kompletní přehled polí (všechna jsou nepovinná, pokud není uvedeno jinak):
| Pole | Typ | Popis |
|---|---|---|
label |
string | Překladový klíč pro zobrazovaný název záložky |
type |
string | Povinné. Unikátní identifikátor kategorie |
icon |
string | Název FontAwesome ikony |
webhookKey |
string | Klíč Discord webhooku pro logování zpráv z této kategorie |
command |
string / string[] | Chatovací příkaz(y), které směrují do této kategorie |
placeholder |
string | Překladový klíč pro placeholder ve vstupním poli |
distance |
number | Maximální doručovací vzdálenost v metrech; pro globální vynechte |
maxLength |
number | Maximální délka zprávy v znacích |
permissions |
string[] | Vyžadovaná ACE oprávnění pro zobrazení/použití kategorie |
jobs |
table | Vyžadovaná povolání — true = všechny hodnosti, number[] = konkrétní hodnosti |
gangs |
table | Vyžadované gangy — stejná struktura jako jobs |
tags |
table[] | Pevné štítky zobrazené před zprávami (tag, textColor, bgColor) |
color |
RGB | Výchozí barva textu zprávy { r, g, b } |
showPlayerName |
table | active, censored, bgColor, textColor, showWearingMask |
showPlayerId |
table | active, type = "serverId", barvy |
showPlayerJob |
table | active, showLabel, showGrade, barvy, úpravy pro konkrétní povolání |
discordTag |
table | active, maxShow, roles[] (Discord role → štítek) |
showHour |
table | active, barvy — připojí čas odeslání zprávy |
Cenzura jmen zobrazuje maskované jméno (např. J*** D**). Pokud má hráč na sobě masku, jeho jméno se skryje jako Unknown, pokud není nastaveno showWearingMask = true — kontrola masky se řídí pomocí config.noneMask v souboru general.lua.