Skip to content

Developer API

Developer API

Omdat BUPA Chat provide 'chat' gebruikt, implementeert het de standaard FiveM chat API. Elke resource die al gebruikmaakt van chat:addMessage, chat:addSuggestion etc. blijft ongewijzigd werken. BUPA Chat stelt elk hiervan beschikbaar als zowel een networked event (chat:<name>) als een export (in lowercase en Capitalized vorm).

Het API-oppervlak is geregistreerd in 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 koppelt het event chat:<name>, plus exports(name) en exports(Name), waardoor alle drie onderstaande aanroepstijlen equivalent zijn.

Een chatbericht toevoegen

Client-side, stuur een bericht direct naar de chat:

client
-- Standaard event (werkt vanuit elke resource)
TriggerEvent("chat:addMessage", {
    color = { 255, 0, 0 },
    multiline = true,
    args = { "Dispatch", "A robbery is in progress downtown." },
})

-- Export vorm
exports.chat:addMessage({ args = { "System", "Server restarting soon." } })

Berichtstructuur:

Veld Type Beschrijving
args table Berichtonderdelen. Met config.defaultAddTag, als er meer dan één arg is en geen tags, wordt de eerste arg een tag en de rest de hoofdtekst
color RGB Bericht- / eerste-tag kleur { r, g, b }
tags table[] Expliciete tags { tag, bgColor, textColor }
multiline boolean Sta toe dat het bericht over meerdere regels doorloopt

Het klassieke chatMessage client event wordt ook afgehandeld (name, color, message), dus oude TriggerClientEvent('chatMessage', ...) output verschijnt nog steeds.

Suggesties

Suggesties sturen het commando-autocompletionpaneel aan. Ze kunnen één voor één of in bulk worden toegevoegd, en op dezelfde manier worden verwijderd.

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()   -- wis alle berichten

BUPA Chat vult suggesties automatisch op basis van elk geregistreerd commando waar de speler ACE-toegang toe heeft (command.<name>), zowel bij het laden als wanneer een resource start/stopt. Je hebt chat:addSuggestion(s) alleen nodig voor commando's die aangepaste helptekst of parameters vereisen.

Notificaties

BUPA Chat stelt een notificatie-event beschikbaar genaamd <resource>:notify — d.w.z. bupa-chat:notify — aangedreven door ox_lib's lib.notify. Dit werkt vanuit zowel client als server.

server
-- notificeer één speler (server -> client): source, daarna Notify args
TriggerClientEvent("bupa-chat:notify", targetSrc, "MY_LOCALE_KEY", "success", 4000)
client
TriggerEvent("bupa-chat:notify", "MY_LOCALE_KEY", "error", 5000)

De handler is Notify(text, notifyType, duration, ...). text wordt door de t() localisatie-wrapper geleid, dus je kunt een locale sleutel (met format args) of platte tekst doorgeven. notifyType is standaard inform en duration is standaard 4000 ms.

Localisatiehelpers

De volgende globals zijn beschikbaar binnen de resource (en voor bestanden die in de context ervan worden geladen):

Symbool Beschrijving
t(key, ...) Dunne wrapper over ox_lib locale(). Formatteert met %s/%d args en retourneert de sleutel zelf als de vertaling ontbreekt
GetLang() Retourneert het huidige afgeplatte locale-woordenboek
Notify(text, type, duration, ...) Triggert de bupa-chat:notify notificatie

Runtime taalwissel — bupa:changeLanguage

Triggert dit client event om de chattaal van een speler live te wijzigen, zonder herstart. Het laadt de locale opnieuw en stuurt deze naar de React UI:

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

Zie Localization voor details.