Text-Filtering

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

An verschiedene Quellen und Eingaben angewendet, Text-Filtering verhindert, dass Benutzer unangemessene Sprache und persönlich identifizierte Informationen wie Telefonnummern sehen. Roblox filtert automatisch häufige Textausgaben wie Nachrichten, die durch In-Experience-Chat , aber du bist verantwortlich für das Filtern aller angezeigten Texte, die du nicht explizit kontrollieren kannst.

Szenarien filtern

Text kann von Benutzern in einer Vielzahl von Szenarien gesammelt und/oder angezeigt werden, einschließlich:

  • Ein Erlebnis, das die Benutzeroberfläche von Class.Toolbar über die Einreichungen von TextBox sammelt, eine benutzerdefinierte GUI mit Schaltflächen wie einer Tastatur/-Tastatur-Oberfläche oder einem interaktiven Tastaturmodell im Platz.

  • Ein Erlebnis, das Wörter von zufälligen Zeichen erstellt und sie Benutzern anzeigt, da es eine Chance gibt, dass es unangemessene Wörter erstellt.

  • Ein Erlebnis, das sich mit einem externen Web-Server verbindet, um Inhalte zu erhalten, die im Erlebnis angezeigt werden. Oft haben Sie keine Kontrolle über den Inhalt der externen Website und ein Drittunternehmen kann die Informationen bearbeiten.

  • Ein Erlebnis, das Text wie die Haustiernamen von Benutzern mit Datenspeichern speichert, wobei der gespeicherte Text unangemessene Wörter enthalten kann, die beim Abrufen filtriert werden sollten.

Filmprozess

TextService:FilterStringAsync() filter im Erlebnis-Text, indem Sie eine Textzeile und die UserId des Benutzers, der den Text als Eingabe erstellt hat, nehmen. Es gibt ein TextFilterResult -Objekt, das zwei zusätzliche Methoden hat, die Sie in verschiedenen Szenarien aufrufen können:

Im Kontext der Eingabe von TextBox gibt das folgende Beispiel die Eingaben auf dem Class.Toolbar.FocusLost|FocusL

Text-Eingang filtern - Client-Skript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local textBox = script.Parent
textBox.ClearTextOnFocus = false
textBox.PlaceholderText = "..."
textBox.TextXAlignment = Enum.TextXAlignment.Left
textBox.TextScaled = true
-- Remote-Ereignis, um Text-Eingaben auf den Server zum Filtern zu senden
local inputRemoteEvent = ReplicatedStorage:FindFirstChild("InputRemoteEvent")
-- Ereignishändler für den Verlust des Fokus und das Drücken von
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)
Text-Eingang filtern - Server-Skript

local TextService = game:GetService("TextService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Remote-Ereignis, um Text-Eingaben des Clients zum Filtern zu erhalten
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
-- Gefällt aus, wenn der Client die Eingabe aus der TextBox einreicht
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)