Skip to content

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 में पंजीकृत है:

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

क्लाइंट-साइड, सीधे चैट में एक संदेश भेजें:

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

सुझाव कमांड ऑटो-पूर्ण पैनल को संचालित करते हैं। उन्हें एक-एक करके या थोक में जोड़ा जा सकता है, और उसी तरह हटाया जा सकता है।

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()   -- clear all messages

BUPA Chat खिलाड़ी के पास ACE एक्सेस (command.<name>) वाले प्रत्येक पंजीकृत कमांड से सुझावों को ऑटो-पोपुलेट करता है, लोड होने पर और जब भी कोई संसाधन शुरू/बंद होता है। आपको केवल कस्टम सहायता पाठ या मापदंडों की आवश्यकता वाले कमांड के लिए chat:addSuggestion(s) की आवश्यकता होती है।

Notifications

BUPA Chat <resource>:notify नामक एक नोटिफिकेशन इवेंट को उजागर करता है — यानी bupa-chat:notify — जो ox_lib के lib.notify द्वारा समर्थित है। यह क्लाइंट और सर्वर दोनों से काम करता है।

server
-- notify one player (server -> client): source, then Notify args
TriggerClientEvent("bupa-chat:notify", targetSrc, "MY_LOCALE_KEY", "success", 4000)
client
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 पर भेजता है:

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

विवरण के लिए Localization देखें।