Developer API
Developer API
क्योंकि BUPA Chat provide 'chat' है, यह standard FiveM chat API को लागू करता है। जो संसाधन पहले से chat:addMessage, chat:addSuggestion आदि का उपयोग करते हैं, वे बिना किसी बदलाव के काम करते रहते हैं। BUPA Chat इनमें से प्रत्येक को networked event (chat:<name>) और export दोनों के रूप में (lowercase और Capitalized रूप में) उजागर करता है।
API सतह 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 इवेंट chat:<name>, साथ ही exports(name) और exports(Name) को जोड़ता है, इसलिए नीचे दी गई तीनों कॉल शैलियाँ समान हैं।
Adding a chat message
क्लाइंट-साइड, सीधे चैट में एक संदेश भेजें:
-- Standard event (works from any resource)
TriggerEvent("chat:addMessage", {
color = { 255, 0, 0 },
multiline = true,
args = { "Dispatch", "A robbery is in progress downtown." },
})
-- Export form
exports.chat:addMessage({ args = { "System", "Server restarting soon." } })संदेश का आकार:
| Field | Type | Description |
|---|---|---|
args |
table | संदेश के भाग। config.defaultAddTag के साथ, यदि एक से अधिक arg हैं और कोई tags नहीं हैं, तो पहला arg एक tag बन जाता है और बाकी का हिस्सा मुख्य भाग होता है |
color |
RGB | संदेश / पहले-टैग का रंग { r, g, b } |
tags |
table[] | स्पष्ट टैग { tag, bgColor, textColor } |
multiline |
boolean | संदेश को कई पंक्तियों में लपेटने की अनुमति दें |
क्लासिक chatMessage क्लाइंट इवेंट को भी संभाला जाता है (name, color, message), इसलिए लेगेसी TriggerClientEvent('chatMessage', ...) आउटपुट अभी भी दिखाई देता है।
Suggestions
सुझाव कमांड ऑटो-पूर्ण पैनल को संचालित करते हैं। उन्हें एक-एक करके या थोक में जोड़ा जा सकता है, और उसी तरह हटाया जा सकता है।
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() -- clear all messagesBUPA Chat खिलाड़ी के पास ACE एक्सेस (command.<name>) वाले प्रत्येक पंजीकृत कमांड से सुझावों को ऑटो-पोपुलेट करता है, लोड होने पर और जब भी कोई संसाधन शुरू/बंद होता है। आपको केवल कस्टम सहायता पाठ या मापदंडों की आवश्यकता वाले कमांड के लिए chat:addSuggestion(s) की आवश्यकता होती है।
Notifications
BUPA Chat <resource>:notify नामक एक नोटिफिकेशन इवेंट को उजागर करता है — यानी bupa-chat:notify — जो ox_lib के lib.notify द्वारा समर्थित है। यह क्लाइंट और सर्वर दोनों से काम करता है।
-- notify one player (server -> client): source, then Notify args
TriggerClientEvent("bupa-chat:notify", targetSrc, "MY_LOCALE_KEY", "success", 4000)TriggerEvent("bupa-chat:notify", "MY_LOCALE_KEY", "error", 5000)हैंडलर Notify(text, notifyType, duration, ...) है। text को t() स्थानीयकरण रैपर के माध्यम से पास किया जाता है, इसलिए आप एक locale key (फॉर्मेट args के साथ) या सादा पाठ पास कर सकते हैं। notifyType डिफ़ॉल्ट रूप से inform और duration 4000 ms होता है।
Localization helpers
संसाधन के भीतर (और इसके संदर्भ में लोड की गई फ़ाइलों के लिए) निम्नलिखित ग्लोबल उपलब्ध हैं:
| Symbol | Description |
|---|---|
t(key, ...) |
ox_lib locale() पर एक पतला रैपर। %s/%d args के साथ फॉर्मेट करता है और यदि अनुवाद गायब है तो कुंजी को ही लौटाता है |
GetLang() |
वर्तमान समतल लोकेल शब्दकोश लौटाता है |
Notify(text, type, duration, ...) |
bupa-chat:notify नोटिफिकेशन को ट्रिगर करता है |
Runtime language switch — bupa:changeLanguage
पुनः आरंभ किए बिना, किसी खिलाड़ी की चैट भाषा को लाइव बदलने के लिए इस client इवेंट को ट्रिगर करें। यह लोकेल को पुनः लोड करता है और इसे React UI पर भेजता है:
TriggerEvent("bupa:changeLanguage", "fr")विवरण के लिए Localization देखें।