Skip to content

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:

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:

client
-- 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.

client
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 pesan

BUPA 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.

server
-- memberitahu satu pemain (server -> client): source, lalu argumen Notify
TriggerClientEvent("bupa-chat:notify", targetSrc, "MY_LOCALE_KEY", "success", 4000)
client
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:

client
TriggerEvent("bupa:changeLanguage", "fr")

Lihat Localization untuk detail selengkapnya.