Sunucu-Taraflı Chat Modülleri

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Sunucu-taraflı davranışları desteklemek için Miras Koltuk Sistemi sunucu-taraflı davranışlarını desteklemek için kullanabileceğiniz sohbet modüllerini kullanabilirsiniz:

  • ChatService : Diğer tüm sohbet modüllerini yöneten bir tek.
  • ChatSpeaker : Bir ChatChannel'da mesajlar oluşturabilen bir entite; her bir Player otomatik olarak bir ChatSpeaker'ı ve botlar bir ChatSpeakers'ı oluşturarak sohbet edebilir.
  • ChatMessage : Bir ChatSpeaker'ın gönderdiği içeriği bir ChatChannel'a içerir; mesajı biçimlendirmek veya ekstra işlevlere eklemek için kullanılan metadatayı içerir.
  • ChatChannel : ChatSpeakers'ın ChatMessage'ını değiştirebileceği bir kanal; ayrıca takım sohbeti ve gizli sohbet için kullanılır.

Chat Hizmeti

ChatService bir tek nesil nesne olan, Lua Chat Sisteminin sunucu tarafı davranışını işleyen bir tek nesil nesne, ChatChannels ve ChatSpeakers gibi.

Tüm ModuleScript içindeki SohbetModülü katılıcısı bir işlevi iade eder ve bu işlev ChatService'ın kaldırıcısı ile çağrılacaktır.

Yöntemler

Kanal Ekle

  • Paraçlar: string : channelName
  • Açıklama: Sunucu채atı ismiyle bir ChatChannel oluşturur ve içeriği geri verir.
  • Dönüşler: ChatChannel

Kanalı Kaldır

  • Paraçlar: string : channelName
  • Açıklama: Verilen isimle bir kanalı kaldır
  • Geri Dönüşler: void

Kanalı Alın

  • Paraçlar: string : channelName
  • Açıklama: Kanalı, verilen isimle veya mevcut olmayan ilgili isimle geri verir.
  • Dönüşler: ChatChannel

H Hoparlör Ekle

  • Paraçlar: string : speakerName
  • Açıklama:: Bir konuşmacıyı chat'e verilen isimle oluştur ve döndür.
  • Dönüşler: ChatSpeaker

Speaker'ı kaldır

  • Paraçlar: string : speakerName
  • Açıklama: Konuşmacıyı verilen isimden soyduğunuzdan soyduğunuzdan kaldırır.
  • Geri Dönüşler: void

GetSpeaker

  • Paraçlar: string : speakerName
  • Açıklama:: Konuşmacıyı verilen isimle veya yoksa ilgili olarak null ile döndürür.
  • Dönüşler: ChatSpeaker

GetChannelList

  • Parametreler: hiçbiri
  • Açıklama: Sohbetteki tüm özel olmayan kanalların isimlerini içeren bir liste döndürür.
  • Dönüşler: array< string >

AutoJoinChannelList alın

  • Parametreler: hiçbiri
  • Açıklama:: Sohbete AutoJoin'in açık olduğu tüm kanalların isimlerini içeren bir liste döndürür.
  • Dönüşler: array< string >

RegisterFilterMessageFunction

  • Paraçlar: string : functionId , 0> işlev0> : 3> func 3>
  • Açıklama: Bir filtre işlevini sohbete kaydeder. Mesajın functionId ile belirlenmiş olduğu sohbeti geçtiğinde herhangi bir değişiklik görüntülenir ve mesaj gösterilir. Bu işlev, hoparlöradını, mesajın nereden geldiğini ve kanalını gösterir.
  • Geri Dönüşler: void
  • Örnek:

-- Bu örneği ChatModuleScript'in içine yapıştırın.
-- Bu örnek bir kelimeyi filtreler ve başarılıysa, mesajın chatColor'ını ayarlar
local functionId = "greenText"
local keyword = "#green"
local chatColor = Color3.new(0, 1, 0) -- yeşil
local function doFilter(speaker, messageObject, channelName)
-- Mesajın anahtar kelime içerdiğini kontrol edin
local start, finish = string.find(messageObject.Message, keyword)
if start and finish then
-- Mesajdaki (filtre) anahtar mesajkaldırın (aynı zamanda ChatColor'ı da ayarlayın)
messageObject.Message = string.gsub(messageObject.Message, keyword, "")
messageObject.ExtraData.ChatColor = chatColor
end
end
local function runChatModule(ChatService)
ChatService:RegisterFilterMessageFunction(functionId, doFilter)
end
return runChatModule

UnregisterFilterMessageFunction

  • Paraçlar: string : functionId
  • Açıklama: Bir filtre işlevini (RegisterFilterMessageFunction tarafından kaydedilen) kayıtlar, functionId .
  • Geri Dönüşler: void

RegisterProcessCommandsFunction

  • Paraçlar: string : functionId , 0> işlev0> : 3> func 3>
  • Açıklama: Bir süreç komutu işlevini chat'e functionId ile belirlenen sohbete kaydeder. Mesaj filtrelenmeden önce, func (ve bu tarafa kaydedilen diğer işlevler) aracılığıyla geç
  • Geri Dönüşler: void
  • Örnek:

-- Bu örneği ChatModuleScript'in içine yapıştırın.
local functionId = "getPizza"
local command = "/pizza"
local toolId = 22596452 -- Pepperoni pizza dilim teçhizatı
local function processCommand(speakerName, message, channelName)
if string.sub(message, 1, command:len()) == command then
local model = game:GetService("InsertService"):LoadAsset(toolId)
local tool = model:GetChildren()[1]
local speaker = ChatService:GetSpeaker(speakerName)
local player = speaker:GetPlayer()
tool.Parent = player.Backpack
return true
end
return false
end
local function runChatModule(ChatService)
ChatService:RegisterProcessCommandsFunction(functionId, processCommand)
end
return runChatModule

UnregisterProcessingCommandsFunction

Etkinlikler

Kanal Eklendi

  • Paraçlar: string : channelName
  • Açıklama:: Bir kanal sohbete eklenince ateş eder.

KanalSilindi

  • Paraçlar: string : channelName
  • Açıklama:: Bir kanal sohbettan kaldırıldığında ateş eder.

Yüksek HoparlörEklendi

  • Paraçlar: string : speakerName
  • Açıklama:: Konuşmaya bir konuşmacı eklenince ateşlenir.

Hızlı Erişim

  • Paraçlar: string : speakerName
  • Açıklama:: Konuşmacı sohbettan kaldırıldığında ateş eder.

Sohbet Konuşmacısı

Bir Sohbet Konuşmacısı , bir SohbetKanalı konusunda konuşabilen bir entiteyi temsil eder. Her bir Player , oyuna otomatik olarak bir bağlantılı SohbetKonuşmacısı oluşturur. Ayrıca, 2>SohbetHizmeti:AddSpeaker()2> kullanılarak oy

Özellikler

İsim

  • Türü: string : Name
  • Açıklama:: hoparlör, birçok başka işlev çağırırken bu konuşmacıyı referans etmesi için kullanılan ismi.

Yöntemler

Kanalına Katıl

  • Paraçlar: string : channelName
  • Açıklama: Hoparlörü channelName ile kanala ekler
  • Geri Dönüşler: void

Kanalı Bırak

  • Paraçlar: string : channelName
  • Açıklama: Konuşmacıyı channelName ile birleştirir
  • Geri Dönüşler: void

GetChannelList

  • Parametreler: Hiçbiri
  • Açıklama:: Konuşmacının içinde bulunan tüm kanalların isimlerini içeren bir liste döndürür.
  • Dönüşler: array< string >

IsInChannel

  • Paraçlar: string : channelName
  • Açıklama: Konuşmacının verilen channelName ile kanalda olup olmadığını döndürür.
  • Dönüşler: booool

Mesajı Söyle

  • Paraçlar: string : message , 0> Library.dizi0> : 3> chanName3> , sözlük< 6> Library.dizi6> , variant> 9> extraData 9>
  • Açıklama: Konuşmacının message diyerek ve bunu yaparken oluşturulan ChatMessage nesnini döndürür.
  • Dönüşler: ChatMessage

MesajGönder

  • Paraçlar: string : message , 0> Library.dizi0> : 3> kanal3>, 6> Library.dizi6> : 9> fromSpeaker 9>
  • Açıklama: Bir mesajı ChatSpeaker'a verilen fromSpeaker ismiyle gönderir. kanalböyle bir konuşmacı yoksa, bu yöntem bir uyarı oluşturur ve konuşmacı mesajı görmez.
  • Geri Dönüşler: void

Sistem Mesajı Gönder

  • Paraçlar: string : message , 0> Library.dizi0> : 3> channelName 3>
  • Açıklama: Sistem bir mesajı ChatChannel ile verilen channelName ile gönderir. Eğer konuşmacı kanalda değilse, bu mesaj bir uyarı oluşturur ve diğer konuşmacılar kanalda görmez.
  • Geri Dönüşler: void

GetPlayer

  • Parametreler: Hiçbiri
  • Açıklama: hoparlörile ilişkili Player nesneyi iade eder. Eğer Hoparlör bir kullanıcı değilse (yani bir bot değilse), bu nil döndürür.
  • Dönüşler: Player veya nil

EkstraVeri ayarları

  • Parametreler: string : key , Varyant 0> data0>
  • Açıklama: Hoparlörün bir belirli key altında bazı ekstra verileri ayarlar. Hoparlör bir SohbetMesajı gönderdiğinde, bu ekstra veriler mesajla birlikte mesaja bağlanır. Örneğin, bununla, hoparlörsohbet rengi ayarlanabilir.
  • Geri Dönüşler: void

Ekstra Verileri Al

  • Paraçlar: string : key
  • anahtar:: SetExtraData kullanılarak ayarlanan ekstra verileri iade eder.
  • Dönüşler: Varyant

Ana Kanalı Ayarla

  • Paraçlar: string : channelName
  • Açıklama: Konuşmacıyı sağlanan kanalda konuşmak için ayarlar. MainChannelSet'i etkinleştirir.
  • Dönüşler: nil

Etkinlikler

SöylediğinMesaj

Alınan Mesaj

  • Paraçlar: ChatMessagemessage , 0> Library.dizi0> : 3> chanネーム 3>
  • Açıklama: Konuşmacı bir ChatMessage başka bir konuşmacıdan aldığında yanıyor.

Alınan Sistem Mesajı

  • Paraçlar: ChatMessagemessage , 0> Library.dizi0> : 3> chanネーム 3>
  • Açıklama: Hoparlör bir sistem ChatMessage aldığında açıldığında ChatChannel ile verilen 0> channelName0> ile ilgili.

Kanal Katıldı

  • Paraçlar: string : channelName , 0> Library.dizi0> : 3> channelWelcomeMessage 3>
  • Açıklama: Konuşmacı ChatChannel 'e verilen channelName ile katıldığında yanıldı.

Kanal Sol

  • Paraçlar: string : channelName
  • Açıklama: Konuşmacı bir ChatChannel ile verilen channelName ile ayrıldığında yanıyor.

Susturulmuş

  • Paraçlar: string : channelName , 0> Library.dizi0> : 3> reason = nil3> , 6> int6> : 9> duration 9> = 0
  • Açıklama: Hoparlör SohbetKanalı ile verilen channelName için susturulduğunda ateşlendi (istek hala geçerliyse). 0>Açıklama0> ile sağlanabilir.

Takipçilerinizden çıktı

  • Paraçlar: string : channelName
  • Açıklama: Hoparlörün ChatChannel ile verilen channelName ile susturulduğunda ateşlendi.

Güncellenmiş Ekstra Veriler

  • Parametreler: string : key , Varyant 0> data0>
  • Açıklama:: hoparlörekstra verilerindeki bir anahtarın varsayılan değerini SetExtraData kullanarak güncellediğinde ateşlendi.

Ana Kanal Ayarları

  • Paraçlar: string : channelName
  • Açıklama: Hoparlörlerin ana kanalı Sohbet Kanalı ile belirlenmişken ateşlendi.

Sohbet Mesajı

Bir ChatMessage , bir ChatSpeaker tarafından gönderilen mesajı temsil eden bir veri yapısıdır. Mesajın uzunluğını, metnin Roblox tarafından filtrelenip filtrelenmediğini ve mesajın görünümünü içeren ekstra verileri içerir.

Özellikler

Kimlik

  • Türü: int
  • Açıklama: mesajiçin benzersiz bir sayı tanımlayıcı.

Hatırlatıcı

Orijinal Kanal

  • Türü: string :
  • Açıklama: Mesajın kaynağı olan ChatChannel adlı sohbet kanalının adı.

İşlemci

  • Türü: booool
  • Açıklama: Mesajın Roblox tarafından filtrelenip filtrelenmediğini açıklar (eğer doğruysa, Mesaj nil olacaktır)

Mesaj Uzunluğu

  • Türü: int
  • Açıklama:: Mesajın uzunluğu. Bu, mesaj filtrelenmişse bir hashalte metni oluşturmak için kullanılabilir.

Mesaj

  • Türü: string : veya nil
  • Açıklama: mesajmetni. Bu özellik nil olacaksa.

Mesaj Türü

  • Türü: string :
  • Açıklama: mesajtürü. Bu türler Chatříşu modülünde açıklanmıştır:
  • Olası değerler: "Message" , "System" , 0> "MeCommand"0> , 3> "Welcome"3> , 6> "SetCore"6> , 9> "Whisper" 9>

Süre

  • Türü: int
  • Açıklama: Bir zaman damgası; mesajın yaratımandaki Library.os.time() değerine sahiptir.

Ekstra Veri

  • Türü: sözlüğü< string , Varyant>
  • Açıklama:: Bu mesaj için bir metin biçimlendirme sözlüğü. Bu, mesajın görünümünü değiştirmek için kullanılır. Aşağıdaki anahtarlar mevcut olabilir:

Sohbet Kanalı

ChatChannel bir tek kanal hakkındaki verileri depolayan bir nesnedir, bu da mesajların ChatSpeakers arasında değiştirilebilir olup olmadığını belirleyen görünürlük özelliklerine sahiptir. Ayrıca, kullanıcıların kanalı manuel olarak katılıpya dağılmasını sağlay

Varsayılan olarak, her kullanıcının "tüm" ve "sistem" sohbet kanallarına otomatik olarak eklenen bir ChatSpeaker vardır (ancak, "sistem" okunur). Eğer kullanıcı " Player.Team"dırsa, ayrıca sadece bu Takım için bir kanala erişim vardır.

Özellikler

İsim

  • Türü: string
  • Açıklama:: Kanalın diğer işlevlerde referans olarak kullanılan kanalın adı.

Hoş Geldin Mesajı

  • Türü: string
  • Açıklama:: Bir kullanıcı kanalına katıldığında görüntülenen bir mesaj.

Katılabilir

  • Türü: booool
  • Açıklama: Bir kullanıcının /join komutunu kullanarak bir kanala manuel olarak katılıp katılmadığını belirler. Bir kullanıcı hala bir kanala eklenebilir, ancak bu özellik sahte ise bile ChatSpeaker:JoinChannel() veya diğer yollar aracılığıyla bile eklenebilir.

Ayrılabilir

  • Türü: booool
  • Açıklama: Bir kullanıcının /leave komutunu kullanarak bir kanalı manuel olarak ayrılmasına izin verir. Bir kullanıcı hala bir kanaldan ayrılabilir, ancak bu özellik yanlışsa bile ChatSpeaker:LeaveChannel() veya diğer yollar aracılığıyla.

Otomatik Katıl

  • Türü: booool
  • Açıklama: Oyuna katılan bir oyuncunun ChatSpeaker katılmasını otomatik olarak belirler. Diğer oyuncular, bu özellik doğru olduğunda (yani bu özellik açıkken) bile kanallara katılmaz.

Özel

  • Türü: booool
  • Açıklama: Kanalın ChatService:GetChannelList() tarafından döndürülen kanal listesine dahil edileceğini belirler. Bunu sözlü sohbetler ve takım sohbetleri için kullanır.

Yöntemler

Kovma konuşmacı

  • Paraçlar: string : speakerName , 0> Library.dizi0> : 3> reason = nil 3>
  • Açıklama: Konuşmacıyı verilen speakerName kanalından kaldırır, kullanıcı ve kullanıcının şutlandığı kanal arasında bir mesaj gönderir. Eğer bir reason sağlanırsa, sebep mesajda dahil edilir.
  • Geri Dönüşler: void

MuteSpeaker

  • Paraçlar: string : speakerName , 0> Library.dizi0> : 3> reason = nil3> , 6> int6> 9>duration = 0 9>
  • Açıklama: Konuşmacıyı speakerName ile kanalda belirlenen süre için susturur. Eğer duration nul veya 0 ise, mute ömür boyu olacaktır. Eğer 0> reason0> sağlanırsa, kanal içindeki mesajın nedeni belirlenir.
  • Geri Dönüşler: void

Sessizi sustur

  • Paraçlar: string : speakerName
  • Açıklama: kanalverilen speakerName ile sesi susturur.
  • Geri Dönüşler: void

IsSpeakerMute

  • Paraçlar: string : speakerName
  • Açıklama: Konuşmacının verilen speakerName ile şu anda kanalda mute edilip edilmediğini açıklar.
  • Dönüşler: booool

GetSpeakerList

  • Parametreler: Hiçbiri
  • Açıklama: Söz konusu채enin içinde bulunan ChatSpeaker isimlerinin tümünü içeren bir liste döndürür.
  • Dönüşler: array< string >

Sistem Mesajı Gönder

  • Paraçlar: string : message
  • Açıklama: "Sistem" ChatSpeaker "den bir mesajını" kanalına gönderir.
  • Geri Dönüşler: void

RegisterFilterMessageFunction

  • Paraçlar: string : functionId , 0> işlev0> 3> func 3>
  • Açıklama: Bir filtre işlevi kaydeder, func, functionId ile kanalda belirlenen bir filtre işlevi. Filtre işlevi ChatSpeaker ile, 0> ChatMessage0> ve 3> Library.dizi 3> adındaki kanalın adıyla g
  • Geri Dönüşler: void
  • Örnek:

-- Bu örneği ChatModuleScript'in içine yapıştırın.
local functionId = "getPizza"
local command = "/pizza"
local toolId = 22596452 -- Pepperoni pizza dilim teçhizatı
local function processCommand(speakerName, message, channelName)
if string.sub(message, 1, command:len()) == command then
local model = game:GetService("InsertService"):LoadAsset(toolId)
local tool = model:GetChildren()[1]
local speaker = ChatService:GetSpeaker(speakerName)
local player = speaker:GetPlayer()
tool.Parent = player.Backpack
return true
end
return false
end
local function runChatModule(ChatService)
ChatService:RegisterProcessCommandsFunction(functionId, processCommand)
end
return runChatModule

UnregisterFilterMessageFunction

  • Paraçlar: string : functionId
  • Açıklama: Bir filtre işlevini (RegisterFilterMessageFunction tarafından kaydedilen) kayıtlar, functionId .
  • Geri Dönüşler: void

RegisterProcessCommandsFunction

  • Paraçlar: string : functionId , 0> işlev0> 3> func 3>
  • Açıklama: Bir süreç komutu işlevini kaydeder, func , functionId ile sohbete tanımlanır. Bir mesaj filtrelenmeden önce, mesajın komutu ile ç
  • Geri Dönüşler: void
  • Örnek:

-- Bu örneği ChatModuleScript'in içine yapıştırın.
-- Bu örnek bir kelimeyi filtreler ve başarılıysa, mesajın chatColor'ını ayarlar
local functionId = "greenText"
local keyword = "#green"
local chatColor = Color3.new(0, 1, 0) -- yeşil
local function doFilter(speaker, messageObject, channelName)
-- Mesajın anahtar kelime içerdiğini kontrol edin
local start, finish = string.find(messageObject.Message, keyword)
if start and finish then
-- Mesajdaki (filtre) anahtar mesajkaldırın (aynı zamanda ChatColor'ı da ayarlayın)
messageObject.Message = string.gsub(messageObject.Message, keyword, "")
messageObject.ExtraData.ChatColor = chatColor
end
end
local function runChatModule(ChatService)
-- Bir kanal oluştur ve filtre işlevini kaydet
local testChannel = ChatService:AddChannel("TestChannel")
testChannel:RegisterFilterMessageFunction(functionId, doFilter)
end
return runChatModule

UnregisterProcessingCommandsFunction

  • Paraçlar: string : functionId
  • Açıklama: Bir komut işlemcisini (RegisterProcessCommandsFunction tarafından kaydedildiği) kimliğiyle kaydedemez. functionId .
  • Geri Dönüşler: void

Etkinlikler

MesajGönderildi

  • Paraçlar: ChatMessage : message
  • Açıklama:: kanalbir mesaj yayınlandığında ateş eder.

SpeakerJoined

Sol Hoparlör

  • Paraçlar: string : speakerName
  • Açıklama:: Bir ChatSpeaker kanalı ayrıldığında ateş eder.

Sessizleştirici

  • Paraçlar: string : speakerName , 0> Library.dizi0> : 3> reason3> , 6> int6> 9> duration = 0 9>
  • Açıklama:: kanalbir ChatSpeaker susturulduğunda ateş eder.

Sessizleştirilmiş Hoparlör

  • Paraçlar: string : speakerName
  • Açıklama:: Bir ChatSpeaker susturulduğunda ateş eder.