Developer API
Developer API
Eftersom BUPA Chat provide 'chat', implementerar den standard FiveM chat API:et. Alla resurser som redan använder chat:addMessage, chat:addSuggestion etc. fortsätter att fungera oförändrat. BUPA Chat exponerar var och en av dessa både som ett nätverksevent (chat:<name>) och som en export (i lowercase och Capitalized-form).
API-ytan registreras i 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 kopplar ihop eventet chat:<name>, plus exports(name) och exports(Name), så alla tre anropsstilar nedan är likvärdiga.
Adding a chat message
På klienten, skicka ett meddelande direkt in i chatten:
-- Standard event (fungerar från alla resurser)
TriggerEvent("chat:addMessage", {
color = { 255, 0, 0 },
multiline = true,
args = { "Dispatch", "A robbery is in progress downtown." },
})
-- Exportform
exports.chat:addMessage({ args = { "System", "Server restarting soon." } })Meddelandets struktur:
| Fält | Typ | Beskrivning |
|---|---|---|
args |
table | Meddelandedelar. Med config.defaultAddTag, om det finns mer än ett argument och inga tags, blir det första argumentet en tagg och resten är själva meddelandetexten |
color |
RGB | Färg för meddelande / första tagg { r, g, b } |
tags |
table[] | Explicita taggar { tag, bgColor, textColor } |
multiline |
boolean | Tillåt meddelandet att radbrytas över flera rader |
Det klassiska chatMessage-klienteventet hanteras också (name, color, message), så äldre TriggerClientEvent('chatMessage', ...)-utdata visas fortfarande.
Suggestions
Förslag driver kommandots autoavslutningspanel. De kan läggas till en i taget eller i bulk, och tas bort på samma sätt.
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() -- rensa alla meddelandenBUPA Chat fyller i förslag automatiskt från varje registrerat kommando som spelaren har ACE-åtkomst till (command.<name>), både vid laddning och när en resurs startar/stoppar. Du behöver bara chat:addSuggestion(s) för kommandon som kräver anpassad hjälptext eller parametrar.
Notifications
BUPA Chat exponerar ett notisevent som heter <resource>:notify – d.v.s. bupa-chat:notify – som drivs av ox_libs lib.notify. Det fungerar från både klient och server.
-- meddela en spelare (server -> klient): source, sedan Notify-argument
TriggerClientEvent("bupa-chat:notify", targetSrc, "MY_LOCALE_KEY", "success", 4000)TriggerEvent("bupa-chat:notify", "MY_LOCALE_KEY", "error", 5000)Hanteraren är Notify(text, notifyType, duration, ...). text skickas genom t()-lokaliseringsomslutningen, så du kan skicka en lokaliseringsnyckel (med formatargument) eller vanlig text. notifyType standardiseras till inform och duration till 4000 ms.
Localization helpers
Följande globaler är tillgängliga i resursen (och för filer som laddas i dess kontext):
| Symbol | Beskrivning |
|---|---|
t(key, ...) |
Tunn omslutning runt ox_lib locale(). Formaterar med %s/%d-argument och returnerar själva nyckeln om översättningen saknas |
GetLang() |
Returnerar den aktuella plattade lokaliseringsordlistan |
Notify(text, type, duration, ...) |
Utlöser bupa-chat:notify-notisen |
Runtime language switch — bupa:changeLanguage
Utlös detta klientevent för att ändra en spelares chattpråk direkt, utan omstart. Det laddar om lokaliseringen och skickar den till React-gränssnittet:
TriggerEvent("bupa:changeLanguage", "fr")Se Localization för detaljer.