Metin Filtreleme

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

Ç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

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)