Developer API
Developer API
Karena BUPA Chat menyediakan provide 'chat', resource ini mengimplementasikan API chat standar FiveM. Resource apa pun yang sudah menggunakan chat:addMessage, chat:addSuggestion, dll., akan terus berfungsi tanpa perubahan. BUPA Chat mengekspos setiap fungsi ini baik sebagai networked event (chat:<name>) maupun sebagai export (dalam bentuk huruf kecil dan Kapital).
Permukaan API terdaftar di utils/chat.lua:
registerEvent("addMessage", chatUtility.addMessage)
registerEvent("addSuggestion", chatUtility.addSuggestion)
registerEvent("addSuggestions", chatUtility.addSuggestions)
registerEvent("removeSuggestion", chatUtility.removeSuggestion)
registerEvent("removeSuggestions", chatUtility.removeSuggestions)
registerEvent("clear", chatUtility.clearMessages)registerEvent menghubungkan event chat:<name>, ditambah exports(name) dan exports(Name), sehingga ketiga gaya pemanggilan di bawah ini memiliki hasil yang sama.
Menambahkan pesan chat
Di sisi klien, masukkan pesan langsung ke dalam chat:
-- Standard event (berfungsi dari resource apa pun)
TriggerEvent("chat:addMessage", {
color = { 255, 0, 0 },
multiline = true,
args = { "Dispatch", "A robbery is in progress downtown." },
})
-- Bentuk export
exports.chat:addMessage({ args = { "System", "Server restarting soon." } })Bentuk pesan:
| Kolom | Tipe | Deskripsi |
|---|---|---|
args |
table | Bagian-bagian pesan. Dengan config.defaultAddTag, jika ada lebih dari satu arg dan tidak ada tags, arg pertama akan menjadi tag dan sisanya adalah isi pesan |
color |
RGB | Warna pesan / tag pertama { r, g, b } |
tags |
table[] | Tag eksplisit { tag, bgColor, textColor } |
multiline |
boolean | Mengizinkan pesan untuk membungkus teks ke baris baru |
Event klien klasik chatMessage juga ditangani (name, color, message), sehingga output legacy TriggerClientEvent('chatMessage', ...) tetap akan muncul.
Saran (Suggestions)
Saran menggerakkan panel pelengkapan otomatis (autocomplete) perintah. Saran dapat ditambahkan satu per satu atau secara massal, dan dihapus dengan cara yang sama.
TriggerEvent("chat:addSuggestion", "/revive", "Revive a nearby player", {
{ name = "id", help = "Server ID of the target" },
})
TriggerEvent("chat:addSuggestions", {
{ name = "/heal", help = "Heal yourself" },
{ name = "/car", help = "Spawn a vehicle", params = {
{ name = "model", help = "Vehicle model", optional = true },
} },
})
TriggerEvent("chat:removeSuggestion", "/car")
exports.chat:clear() -- membersihkan semua pesanBUPA Chat secara otomatis mengisi saran dari setiap perintah terdaftar yang memiliki akses ACE oleh pemain (command.<name>), baik saat memuat maupun setiap kali resource dimulai/berhenti. Anda hanya memerlukan chat:addSuggestion(s) untuk perintah yang memerlukan teks bantuan atau parameter kustom.
Notifikasi
BUPA Chat mengekspos event notifikasi bernama <resource>:notify — yaitu bupa-chat:notify — yang didukung oleh lib.notify dari ox_lib. Fitur ini berfungsi dari sisi klien maupun server.
-- memberitahu satu pemain (server -> client): source, lalu argumen Notify
TriggerClientEvent("bupa-chat:notify", targetSrc, "MY_LOCALE_KEY", "success", 4000)TriggerEvent("bupa-chat:notify", "MY_LOCALE_KEY", "error", 5000)Handler-nya adalah Notify(text, notifyType, duration, ...). text diteruskan melalui pembungkus lokalisasi t(), sehingga Anda dapat meneruskan locale key (dengan argumen format) atau teks biasa. notifyType default ke inform dan duration default ke 4000 ms.
Bantuan Lokalisasi
Variabel global berikut tersedia di dalam resource (dan untuk file yang dimuat dalam konteksnya):
| Simbol | Deskripsi |
|---|---|
t(key, ...) |
Pembungkus tipis untuk locale() ox_lib. Memformat dengan argumen %s/%d dan mengembalikan key itu sendiri jika terjemahan tidak ditemukan |
GetLang() |
Mengembalikan kamus locale datar saat ini |
Notify(text, type, duration, ...) |
Memicu notifikasi bupa-chat:notify |
Penggantian bahasa runtime — bupa:changeLanguage
Picu event client ini untuk mengubah bahasa chat pemain secara langsung tanpa melakukan restart. Event ini akan memuat ulang locale dan mendorongnya ke UI React:
TriggerEvent("bupa:changeLanguage", "fr")Lihat Localization untuk detail selengkapnya.