Geliştiriciler için ai-chat
ai-chat’in cevapladığı chat API’si (FiveM’in chat resource’u), export’ları, event’leri ve mesaj yapısı.
ai-chat FiveM’in chat resource API’sini cevaplar, bu yüzden sohbet kodunu standart FiveM yoluyla yazarsın. Export’lar hem exports['ai-chat'] hem exports.chat altında cevap verir.
ChatMessage
Her export’un ve event’in aldığı mesaj yapısı.
Prop
Type
Server export’ları
addMessage
Bir oyuncuya, birkaç oyuncuya veya herkese bir sohbet satırı gönderir.
Taraf: Server · Bekler: hayır
addMessage(target: number | number[], message: ChatMessage): voidexports.chat:addMessage(source, { args = { 'Bank', 'Your salary arrived.' }, color = { 61, 247, 158 } })Parametreler
Prop
Type
Dönüş değeri
Hiçbir şey. Geçerli bir args listesi olmayan mesaj atılır.
Örnek
import { callExport } from "@aicore-fivem/lib/server";
function announce(text: string): void {
callExport("chat", "addMessage", -1, { args: ["City", text], color: [61, 247, 158], multiline: true });
}
announce("The bank closes in 10 minutes.");registerMessageHook
Bir oyuncunun gönderdiği her mesaj için, mesaj iletilmeden önce fonksiyonunu çalıştırır. Hook mesajı değiştirebilir, kime gideceğini değiştirebilir veya iptal edebilir. Resource’un durduğunda hook’lar kaldırılır.
Taraf: Server · Bekler: hayır
registerMessageHook(hook: (source: number, message: ChatMessage, ref: HookRef) => void): voidHookRef
Prop
Type
Örnek
import { callExport } from "@aicore-fivem/lib/server";
callExport("chat", "registerMessageHook", (source: number, message: { args: string[] }, ref: { cancel(): void }) => {
const text = message.args[message.args.length - 1] ?? "";
if (/discord\.gg\//i.test(text)) ref.cancel();
});registerMode
Bir script’ten kanal ekler (FiveM’in chat modları). Callback’i, bir mesaj hook’u gibi, her mesajı kimin alacağına karar verir. Resource’un durduğunda mod kaldırılır.
Taraf: Server · Bekler: hayır
registerMode(data: { name: string; displayName?: string; color?: string; cb?: (source: number, message: ChatMessage, ref: HookRef) => void }): voidProp
Type
Client export’ları
| Export | Ne yapar |
|---|---|
addMessage(message: ChatMessage | string): void | Sadece bu oyuncunun sohbetinde bir satır gösterir. |
addSuggestion(name: string, help: string, params?: { name: string, help: string }[]): void | Bu oyuncu için bir komut önerisi ekler. |
Event’ler
chatMessage (server)
Bir oyuncunun gönderdiği her mesaj için, iletilmeden önce server’da tetiklenir. Mesajı atmak için iptal et (CancelEvent()).
Taraf: Server (yerel event)
| Argüman | Tip | Ne olduğu |
|---|---|---|
source | number | Gönderenin server id’si. |
author | string | Gösterilen yazar (karakter adı). |
text | string | Mesaj metni. |
on("chatMessage", (source: number, author: string, text: string) => {
console.log(`[chat] ${author} (${source}): ${text}`);
});ai-chat’in dinlediği client event’leri
Onları server’dan (TriggerClientEvent) veya bir client script’inden (TriggerEvent) gönder.
| Event | Argümanlar | Ne yapar |
|---|---|---|
chat:addMessage | message: ChatMessage | string | Bir satır gösterir. |
chatMessage | author: string, color: [r, g, b], text: string | Bir satır gösterir (eski stil). |
chat:addSuggestion | name: string, help: string, params?: { name, help }[] | Bir öneri ekler. |
chat:addSuggestions | suggestions: { name, help, params? }[] | Birkaç öneri ekler. |
chat:removeSuggestion | name: string | Bir öneriyi kaldırır. |
chat:addMode / chat:removeMode | mode / name | Bu client’ta bir script modu ekler veya kaldırır. |
chat:clear | yok | Bu oyuncunun sohbetini boşaltır. |
chat:addTemplate yok sayılır: şablonlar (HTML) asla çizilmez. Oyuncuların yazdığı mesajlar _chat:messageEntered üzerinden gönderilmez; server’da chatMessage event’ini dinle.