Developer API
Developer API
Protože BUPA Chat provide 'chat', implementuje standardní FiveM chat API. Jakýkoliv zdroj, který již používá chat:addMessage, chat:addSuggestion atd., funguje beze změny. BUPA Chat zpřístupňuje každou z těchto funkcí jak jako síťovou událost (networked event) (chat:<name>), tak jako export (v malých pismenech a ve formátu Capitalized).
API rozhraní je zaregistrováno v 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 propojuje událost chat:<name>, plus exports(name) a exports(Name), takže všechny tři níže uvedené styly volání jsou ekvivalentní.
Adding a chat message
Na straně klienta odešlete zprávu přímo do chatu:
-- Standardní událost (funguje z libovolného zdroje)
TriggerEvent("chat:addMessage", {
color = { 255, 0, 0 },
multiline = true,
args = { "Dispatch", "A robbery is in progress downtown." },
})
-- Forma exportu
exports.chat:addMessage({ args = { "System", "Server restarting soon." } })Struktura zprávy:
| Položka | Typ | Popis |
|---|---|---|
args |
table | Části zprávy. S config.defaultAddTag, pokud existuje více než jeden argument a žádné tags, se první argument stane tagem a zbytek tvoří tělo |
color |
RGB | Barva zprávy / prvního tagu { r, g, b } |
tags |
table[] | Explicitní tagy { tag, bgColor, textColor } |
multiline |
boolean | Povolit zprávě zalamování na více řádků |
Klasická klientská událost chatMessage je také podporována (name, color, message), takže starší výstup z TriggerClientEvent('chatMessage', ...) se stále zobrazuje.
Suggestions
Návrhy pohánějí panel automatického doplňování příkazů. Mohou být přidávány po jednom nebo hromadně a stejným způsobem je lze také odebrat.
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() -- vymazat všechny zprávyBUPA Chat automaticky načítá návrhy ze všech registrovaných příkazů, ke kterým má hráč ACE přístup (command.<name>), a to jak při načtení, tak kdykoliv se zdroj spustí/zastaví. chat:addSuggestion(s) potřebujete pouze pro příkazy, které vyžadují vlastní text nápovědy nebo parametry.
Notifications
BUPA Chat zpřístupňuje notifikační událost s názvem <resource>:notify — tzn. bupa-chat:notify — poháněnou funkcí lib.notify z ox_lib. Funguje jak z klienta, tak ze serveru.
-- upozornit jednoho hráče (server -> client): source a poté argumenty pro Notify
TriggerClientEvent("bupa-chat:notify", targetSrc, "MY_LOCALE_KEY", "success", 4000)TriggerEvent("bupa-chat:notify", "MY_LOCALE_KEY", "error", 5000)Obsluha je Notify(text, notifyType, duration, ...). text prochází přes lokalizační obal t(), takže můžete předat klíč lokalizace (s formátovacími argumenty) nebo prostý text. notifyType má výchozí hodnotu inform a duration 4000 ms.
Localization helpers
Uvnitř zdroje (a pro soubory načtené v jeho kontextu) jsou k dispozici následující globální proměnné:
| Symbol | Popis |
|---|---|
t(key, ...) |
Tenký obal nad locale() z ox_lib. Formátuje pomocí argumentů %s/%d a vrací samotný klíč, pokud překlad chybí |
GetLang() |
Vrátí aktuální zploštělý lokalizační slovník |
Notify(text, type, duration, ...) |
Vyvolá notifikaci bupa-chat:notify |
Runtime language switch — bupa:changeLanguage
Spusťte tuto klientskou událost pro změnu jazyka chatu hráče za chodu, bez nutnosti restartu. Znovu načte lokalizaci a odešle ji do React UI:
TriggerEvent("bupa:changeLanguage", "fr")Podrobnosti naleznete v Localization.