Skip to content

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:

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

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

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()   -- tüm mesajları temizle

BUPA 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.

server
-- bir oyuncuya bildir (sunucu -> istemci): önce source, sonra Notify argümanları
TriggerClientEvent("bupa-chat:notify", targetSrc, "MY_LOCALE_KEY", "success", 4000)
client
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:

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

Ayrıntılar için Localization bölümüne bakın.