Filtrasi Teks

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Diterapkan pada berbagai sumber dan input, filter teks Mencegah pengguna melihat bahasa yang tidak pantas dan informasi pribadi identitas seperti nomor telepon. Roblox secara otomatis menyaring keluaran teks umum seperti pesan yang telah melewati dalam-pengalaman obrolan teks, tetapi Anda bertanggung jawab untuk menyaring setiap teks yang dit

Simulasi Penyaringan

Teks dapat dikumpulkan dan/atau ditampilkan kepada pengguna dalam berbagai skenario, termasuk:

  • Pengalaman yang mengumpulkan masukan teks pengguna melalui TextBox entri, antarmuka GUI khusus dengan tombol seperti tombol keyboard / keypad, atau model keyboard interaktif di ruang 3D.

  • Pengalaman yang menghasilkan kata dari karakter acak dan menampilkannya kepada pengguna, karena ada kesempatan itu akan menghasilkan kata-kata yang tidak pantas.

  • Pengalaman yang terhubung ke server web eksternal untuk mengambil konten yang ditampilkan dalam pengalaman. Biasanya Anda tidak akan memiliki kendali atas konten situs eksternal dan pihak ketiga dapat mengedit informasi.

  • Pengalaman yang menyimpan teks seperti nama hewan peliharaan pengguna menggunakan toko data, di mana teks yang disimpan mungkin berisi kata-kata yang tidak pantas yang harus disaring saat mengambilnya.

Proses Filtering

TextService:FilterStringAsync() filter dalam teks pengalaman dengan mengambil beberapa teks dan UserId dari pengguna yang menciptakan teks sebagai masukan. Itu mengembalikan objek TextFilterResult yang memiliki dua metode tambahan yang dapat Anda panggil dalam berbagai skenario:

Dalam konteks TextBox input, contoh berikut mengumpulkan input pada acara Class.Toolbar.

Menafsirkan Masukan Teks - Skrip Klien

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local textBox = script.Parent
textBox.ClearTextOnFocus = false
textBox.PlaceholderText = "..."
textBox.TextXAlignment = Enum.TextXAlignment.Left
textBox.TextScaled = true
-- Acara Remote untuk mengirim masukan teks ke server untuk penyaringan
local inputRemoteEvent = ReplicatedStorage:FindFirstChild("InputRemoteEvent")
-- Penangani acara untuk fokus hilang dan masukkan ditekan
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)
Menafsirkan Masukan Teks - Server Skrip

local TextService = game:GetService("TextService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Acara Remote untuk menerima masukan teks dari klien untuk disaring
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
-- Diaktifkan saat klien mengirimkan input dari TextBox
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)