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
- Açıklama: Sunucu채atı ismiyle bir ChatChannel oluşturur ve içeriği geri verir.
- Dönüşler: ChatChannel
Kanalı Kaldır
- Açıklama: Verilen isimle bir kanalı kaldır
- Geri Dönüşler: void
Kanalı Alın
- Açıklama: Kanalı, verilen isimle veya mevcut olmayan ilgili isimle geri verir.
- Dönüşler: ChatChannel
H Hoparlör Ekle
- Açıklama:: Bir konuşmacıyı chat'e verilen isimle oluştur ve döndür.
- Dönüşler: ChatSpeaker
Speaker'ı kaldır
- Açıklama: Konuşmacıyı verilen isimden soyduğunuzdan soyduğunuzdan kaldırır.
- Geri Dönüşler: void
GetSpeaker
- 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
- 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
- Açıklama: Bir filtre işlevini (RegisterFilterMessageFunction tarafından kaydedilen) kayıtlar, functionId .
- Geri Dönüşler: void
RegisterProcessCommandsFunction
- 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
- Açıklama: Bir komut işlemleyicisini (RegisterProcessCommandsFunction tarafından kaydedildi) tanımlar, functionId .
- Geri Dönüşler: void
Etkinlikler
Kanal Eklendi
- Açıklama:: Bir kanal sohbete eklenince ateş eder.
KanalSilindi
- Açıklama:: Bir kanal sohbettan kaldırıldığında ateş eder.
Yüksek HoparlörEklendi
- Açıklama:: Konuşmaya bir konuşmacı eklenince ateşlenir.
Hızlı Erişim
- 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
- 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
- Açıklama: Hoparlörü channelName ile kanala ekler
- Geri Dönüşler: void
Kanalı Bırak
- 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
- 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>
- Dönüşler: ChatMessage
MesajGönder
- 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
- 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ı
- 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
- anahtar:: SetExtraData kullanılarak ayarlanan ekstra verileri iade eder.
- Dönüşler: Varyant
Ana Kanalı Ayarla
- 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
- Açıklama: Konuşmacı bir ChatMessage başka bir konuşmacıdan aldığında yanıyor.
Alınan Sistem Mesajı
- Açıklama: Hoparlör bir sistem ChatMessage aldığında açıldığında ChatChannel ile verilen 0> channelName0> ile ilgili.
Kanal Katıldı
Kanal Sol
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ı
Güncellenmiş Ekstra Veriler
- Açıklama:: hoparlörekstra verilerindeki bir anahtarın varsayılan değerini SetExtraData kullanarak güncellediğinde ateşlendi.
Ana Kanal Ayarları
- 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ı
- Türü: string :
- Açıklama: mesajgönderen ChatSpeaker adını.
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
- 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>
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ı
- 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
- 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
- Açıklama: kanalverilen speakerName ile sesi susturur.
- Geri Dönüşler: void
IsSpeakerMute
- 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
- Açıklama: "Sistem" ChatSpeaker "den bir mesajını" kanalına gönderir.
- Geri Dönüşler: void
RegisterFilterMessageFunction
- 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
- Açıklama: Bir filtre işlevini (RegisterFilterMessageFunction tarafından kaydedilen) kayıtlar, functionId .
- Geri Dönüşler: void
RegisterProcessCommandsFunction
- 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
- Açıklama: Bir komut işlemcisini (RegisterProcessCommandsFunction tarafından kaydedildiği) kimliğiyle kaydedemez. functionId .
- Geri Dönüşler: void
Etkinlikler
MesajGönderildi
- Açıklama:: kanalbir mesaj yayınlandığında ateş eder.
SpeakerJoined
- Açıklama:: Bir ChatSpeaker kanalateş eder.
Sol Hoparlör
- Açıklama:: Bir ChatSpeaker kanalı ayrıldığında ateş eder.
Sessizleştirici
- Açıklama:: kanalbir ChatSpeaker susturulduğunda ateş eder.
Sessizleştirilmiş Hoparlör
- Açıklama:: Bir ChatSpeaker susturulduğunda ateş eder.