Geliştirici API'si
Developer API
BUPA Chat, provide 'chat' sayesinde standart FiveM chat API'sini uygular. chat:addMessage, chat:addSuggestion vb. kullanan mevcut tüm kaynaklar hiçbir değişiklik yapmadan çalışmaya devam eder. BUPA Chat, bunların her birini hem ağ olayı (networked event) (chat:<name>) hem de export olarak (lowercase ve Capitalized biçimde) sunar.
API yüzeyi utils/chat.lua içinde kayıtlıdır:
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> olayını, ayrıca exports(name) ve exports(Name) fonksiyonlarını hazırlar; böylece aşağıdaki üç çağrı stili de eşdeğerdir.
Adding a chat message
İstemci tarafında, doğrudan sohbete bir mesaj gönderin:
-- Standart olay (herhangi bir kaynaktan çalışır)
TriggerEvent("chat:addMessage", {
color = { 255, 0, 0 },
multiline = true,
args = { "Dispatch", "A robbery is in progress downtown." },
})
-- Export biçimi
exports.chat:addMessage({ args = { "System", "Server restarting soon." } })Mesaj yapısı:
| Alan | Tür | Açıklama |
|---|---|---|
args |
table | Mesaj parçaları. config.defaultAddTag ile birden fazla argüman varsa ve tags yoksa, ilk argüman bir etiket (tag) olur ve geri kalanı gövdeyi oluşturur |
color |
RGB | Mesaj / ilk etiket rengi { r, g, b } |
tags |
table[] | Açık etiketler { tag, bgColor, textColor } |
multiline |
boolean | Mesajın satırlara bölünmesine izin ver |
Klasik chatMessage istemci olayı da işlenir (name, color, message), bu nedenle eski TriggerClientEvent('chatMessage', ...) çıktısı görünmeye devam eder.
Suggestions
Öneriler, komut otomatik tamamlama panelini çalıştırır. Teker tek veya toplu olarak eklenebilir ve aynı şekilde kaldırılabilirler.
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() -- tüm mesajları temizleBUPA Chat, oyuncunun ACE erişimine sahip olduğu (command.<name>) kayıtlı her komuttan gelen önerileri hem yükleme sırasında hem de bir kaynak başlayıp durduğunda otomatik olarak doldurur. Yalnızca özel yardım metnine veya parametrelere ihtiyaç duyan komutlar için chat:addSuggestion(s) kullanmanız gerekir.
Notifications
BUPA Chat, ox_lib'in lib.notify altyapısını kullanan ve <resource>:notify yani bupa-chat:notify olarak adlandırılan bir bildirim olayı sunar. Hem istemciden hem de sunucudan çalışır.
-- bir oyuncuya bildir (sunucu -> istemci): önce source, sonra Notify argümanları
TriggerClientEvent("bupa-chat:notify", targetSrc, "MY_LOCALE_KEY", "success", 4000)TriggerEvent("bupa-chat:notify", "MY_LOCALE_KEY", "error", 5000)İşleyici Notify(text, notifyType, duration, ...) şeklindedir. text, t() yerelleştirme sarmalayıcısından geçirilir; böylece bir yerel ayar anahtarı (locale key) (biçimlendirme argümanlarıyla birlikte) veya düz metin geçebilirsiniz. notifyType varsayılan olarak inform ve duration varsayılan olarak 4000 ms'dir.
Localization helpers
Kaynak içinde (ve onun bağlamında yüklenen dosyalarda) aşağıdaki genel (global) değişkenler kullanılabilir:
| Sembol | Açıklama |
|---|---|
t(key, ...) |
ox_lib locale() üzerinde ince bir sarmalayıcı. %s/%d argümanlarıyla biçimlendirir ve çeviri eksikse anahtarın kendisini döndürür |
GetLang() |
Geçerli düzleştirilmiş yerel ayar sözlüğünü döndürür |
Notify(text, type, duration, ...) |
bupa-chat:notify bildirimini tetikler |
Runtime language switch — bupa:changeLanguage
Bir oyuncunun sohbet dilini yeniden başlatmaya gerek kalmadan anında değiştirmek için bu istemci (client) olayını tetikleyin. Yerel ayarı yeniden yükler ve React UI'a iletir:
TriggerEvent("bupa:changeLanguage", "fr")Ayrıntılar için Localization bölümüne bakın.