Çeşitli kaynaklara ve girdilere uygulanan, metin filtreleme kullanıcıların telefon numaraları gibi kişisel olarak tanımlanabilir bilgileri görmelerini önler. Roblox, deneyim dışı metin sohbetinde geçen mesajlar gibi ortak metin çıktılarını otomatik olarak filtreler, anc
Senaryoları Filtrele
Metin, kullanıcıların bir dizi senaryoda toplanabilir ve/veya gösterilebilir:
Kullanıcıların metin girişi ile ilgili şeyleri toplayan bir deneyim, bir klavye/klavye girişi gibi düğmeli bir özelleştirilmiş GUI veya 3D alanındaki etkileşimli bir klavye modeli.
Rastgele karakterlerden kelimeler oluşturan bir deneyim ve kullanıcılara gösterilir, çünkü uygun olmayan kelimeler oluşturma şansı vardır.
Deneyim, deneyim içinde görüntülenen içerikleri almak için dış bir web sunucusuna bağlanır. Çoğunlukla deneyimin içindeki içeriklerin dış siteyi kontrol etmesi yoktur ve üçüncü bir parti tarafından bilgileri düzenleyebilir.
Kullanıcıların evcil hayvan isimleri gibi yazılarını depolayan bir deneyim, bu depolanan yazıların filtrelenmesi sırasında kullanıcıların sözcüklerini içeren uygun olmayan kelimeleri içerebilir.
Süzme İşlemi
TextService:FilterStringAsync() deneyim içindeki filtreleri deneyim metni alarak bir dizi metni ve UserId kullanıcının metniyi giriş olarak oluşturduğu kullanıcının giriş metnini içeriyor. TextFilterResult nesneleri döndürür, bu iki ek gösteri senaryoda
- TextFilterResult:GetNonChatStringForBroadcastAsync() filtre edilmesi gereken tüm kullanıcıların bir deneyimde görünen görünen yazı için, bir kullanıcının bir işaretin görünen tüm kullanıcıların üzerinde bir mesaj yazmasına izin veren bir diyalog için.
- TextFilterResult:GetNonChatStringForUserAsync() ile bir özel kullanıcı için filtrelenmiş yazı gösterilir, yaş ve diğer ayrıntılara dayanarak.
TextBox ın girişinde, çeşitli girişleri Class.Toolbar.FocusLost|FocusLost
Metni Filtreleme - Client Skripti
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local textBox = script.Parent
textBox.ClearTextOnFocus = false
textBox.PlaceholderText = "..."
textBox.TextXAlignment = Enum.TextXAlignment.Left
textBox.TextScaled = true
-- Metni sunucuya göndermek için uzaktan etkinlik olayı
local inputRemoteEvent = ReplicatedStorage:FindFirstChild("InputRemoteEvent")
-- Kayıp odak için etkinliği yakalayan ve girilmesi gereken etkinliği gir
local function onFocusLost(enterPressed, inputObject)
if enterPressed then
print("SUBMITTED:", textBox.Text)
if inputRemoteEvent then
inputRemoteEvent:FireServer(textBox.Text)
end
end
end
textBox.FocusLost:Connect(onFocusLost)
Metni Filtreleme - Sunucu Kodu
local TextService = game:GetService("TextService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Aktarımı filtrelemek için müşteriden metin girişi almak için uzaktan etkinleştirme
local inputRemoteEvent = ReplicatedStorage:FindFirstChild("InputRemoteEvent")
local function getFilterResult(text, fromUserId)
local filterResult
local success, errorMessage = pcall(function()
filterResult = TextService:FilterStringAsync(text, fromUserId)
end)
if success then
return filterResult
else
warn("Error generating TextFilterResult:", errorMessage)
end
end
-- Metn Kutusu'ndan girişi gönderdiğinde başlatıldı
local function onInputReceived(player, text)
if text ~= "" then
local filterResult = getFilterResult(text, player.UserId)
if filterResult then
local success, filteredText = pcall(function()
return filterResult:GetNonChatStringForBroadcastAsync()
end)
if success then
print("FILTERED:", filteredText)
else
warn("Error filtering text!")
end
end
end
end
inputRemoteEvent.OnServerEvent:Connect(onInputReceived)