Kategori Obrolan
Chat Categories
Categories adalah tab pada kolom input chat. Setiap kategori adalah channel terpisah dengan warna, tag, izin, aturan pengiriman, dan lencana identitasnya sendiri. Kategori-kategori ini ditentukan di dalam shared/config/categories.lua sebagai config.chatCategories.
Tab Commands bawaan
Kategori command selalu disematkan sebagai tab pertama saat runtime (dari shared/main.lua) — Anda tidak perlu mendefinisikannya sendiri:
table.insert(config.chatCategories, 1, {
label = "CATEGORY_COMMANDS_LABEL",
type = "command",
icon = "terminal",
placeholder = "CATEGORY_COMMANDS_PLACEHOLDER",
})Apa pun yang diketik di tab ini akan dieksekusi sebagai command. Dengan config.allowNoSlashCommands = true, nama command yang dikenal dapat berfungsi dengan atau tanpa garis miring di awal (mengetik me hi akan menjalankan /me hi).
Apa saja yang aktif secara default
Secara default, hanya kategori Admin yang aktif di config.chatCategories. Contoh siap pakai untuk OOC (Global), OOC (Local/terdekat), Police, EMS, dan Gang disertakan di dalam file namun dijadikan komentar — silakan aktifkan kembali dan sesuaikan jika diperlukan.
| Category | type |
Cara pembatasan akses |
|---|---|---|
| Commands | command |
Selalu ada (disematkan otomatis) |
| Admin | admin |
Izin ACE command / admin / adminchat |
| OOC (Global) | ooc |
Terbuka untuk semua orang (contoh) |
| OOC (Local) | oocclosest |
Kedekatan — distance dalam meter (contoh) |
| Police | pdchat |
jobs = { police = {...grades} } (contoh) |
| EMS | emschat |
jobs = { ambulance = true } (contoh) |
| Gang | gang |
gangs = { ... } (contoh) |
Kategori default
config.defaultChatCategory menentukan tab mana yang menjadi fokus saat chat dibuka:
config.defaultChatCategory = "command"Command dengan garis miring vs. tanpa garis miring
--- true = command berfungsi DENGAN dan TANPA garis miring di awal ("me hi" menjalankan /me)
--- false = command hanya memicu dengan garis miring di awal ("/me hi")
config.allowNoSlashCommands = trueParameter kategori
Setiap kategori mendukung berbagai macam field yang kaya. Contoh yang dipangkas:
{
label = "CATEGORY_ADMIN_LABEL", -- kunci terjemahan untuk nama tab
type = "admin", -- id unik untuk kategori ini
icon = "shield-alt", -- Ikon FontAwesome
webhookKey = "chatMessage", -- Webhook log Discord (lihat Discord Logging)
placeholder = "CATEGORY_ADMIN_PLACEHOLDER",
permissions = { "command", "admin", "adminchat" }, -- izin ACE yang diperlukan
maxLength = 500, -- panjang maksimum pesan
tags = { -- tag tetap yang ditampilkan sebelum pesan
{ tag = "Admin", textColor = { 51, 51, 51 }, bgColor = { 255, 105, 97 } },
},
color = { 255, 105, 97 }, -- warna teks pesan default
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 },
}Referensi field lengkap (semuanya opsional kecuali dinyatakan lain):
| Field | Type | Deskripsi |
|---|---|---|
label |
string | Kunci terjemahan untuk nama tampilan tab |
type |
string | Wajib. Pengidentifikasi unik untuk kategori |
icon |
string | Nama ikon FontAwesome |
webhookKey |
string | Kunci webhook Discord untuk mencatat pesan kategori ini |
command |
string / string[] | Command chat yang diarahkan ke kategori ini |
placeholder |
string | Kunci terjemahan untuk placeholder input |
distance |
number | Jarak pengiriman maksimum dalam meter; kosongkan untuk global |
maxLength |
number | Panjang karakter pesan maksimum |
permissions |
string[] | Izin ACE yang diperlukan untuk melihat/menggunakan kategori |
jobs |
table | Pekerjaan yang diperlukan — true = semua grade, number[] = grade tertentu |
gangs |
table | Geng yang diperlukan — format sama dengan jobs |
tags |
table[] | Tag tetap yang ditampilkan sebelum pesan (tag, textColor, bgColor) |
color |
RGB | Warna teks pesan default { r, g, b } |
showPlayerName |
table | active, censored, bgColor, textColor, showWearingMask |
showPlayerId |
table | active, type = "serverId", warna |
showPlayerJob |
table | active, showLabel, showGrade, warna, penggantian per-pekerjaan |
discordTag |
table | active, maxShow, roles[] (Peran Discord → tag) |
showHour |
table | active, warna — menambahkan waktu pesan |
Penyensoran nama menampilkan nama yang disamarkan (misalnya J*** D**). Jika pemain sedang memakai masker, nama mereka akan disembunyikan sebagai Unknown kecuali showWearingMask = true — pemeriksaan masker diatur oleh config.noneMask di general.lua.