Basically the above question.
I'm trying to use return to return both a boolean value and a string. I am making a chat filter for my chat GUI, and I am using a function that checks whether a chat is in compliance with the filter and then returns whether that chat was in compliance or not and what the reason was (if it was not compliant).
The function in question is below (it is a global function because I plan to use it in other scripts).
_G.CheckFilter = function(chat)
lower = chat:lower()
-- the chat filter is here. It contains some words that I am not sure are in compliance with guidelines, so it has been removed
}
for key, value in pairs(filtered) do
if lower:find(key) then
return true, value
end
end
end
And then it is called in the following code:
debounce = false
script.Parent.Parent.Parent.Chatted:connect(function(msg)
lower = msg:lower()
if player.Name == "Kaamchor" or player.Name == "Devinoski" or player.Name == "darkyellow56" then
if string.lower(msg:sub(1, 6)) == "system" then
_G.Chat(msg:sub(8), "SYSTEM")
end
end
if debounce == false and string.lower(msg:sub(1, 6)) ~= "system" then
debounce = true
local filt, reason = _G.CheckFilter(msg)
if filt then
_G.Chat("This message by " .. player.Name .. " was filtered because of: " .. reason .. ".", "SYSTEM")
wait(3)
debounce = false
else
_G.Chat(msg, player.Name)
wait(1)
debounce = false
end
end
end)
