I'm creating an admin panel and in that admin panel will be a feature to see all whispers and team chats. For now, I just have it print the messages in the on the client's chat (It's a local script).
The problem I'm having is that this code isn't firing, as if the code wasn't even there:
local CheckMessageHidden = GetMessage.OnClientEvent:Connect(function(Packet, Channel)
if Channel == "All" or (Channel == "Team" and Players[Packet.FromSpeaker].Team == Player.Team) then
TypeOfMessage = "Visible"
end
if TypeOfMessage == "nil" then
if (Message:lower():sub(1, 2) == "/t" or Channel == "Team") and Players[Packet.FromSpeaker].Team ~= LocalPlayer.Team then
TypeOfMessage = "Team"
elseif Channel:lower():sub(1, 2) == "to" or Message:lower():sub(1, 2) == "/w" then
TypeOfMessage = "Whisper"
elseif Message:lower():sub(1, 2) == "/e" then
TypeOfMessage = "Emote"
end
end
TypeOfMessage = "Other"
end)
I'd really appreciate it if somebody could explain what is happening here.
Also, here is the entire code:
MessageProperties = {
Color = Color3.fromRGB(0, 153, 255);
Font = Enum.Font.SourceSansBold;
TextSize = 18;
}
local StarterGui = game:GetService("StarterGui")
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer or Players:GetPropertyChangedSignal("LocalPlayer"):wait()
local GetMessage = game:GetService("ReplicatedStorage"):WaitForChild("DefaultChatSystemChatEvents"):WaitForChild("OnMessageDoneFiltering")
local function onChatted(Player, Message)
Message = Message:gsub("[\n\r]", ""):gsub("\t", " "):gsub("[ ]+", " ")
local TypeOfMessage = "nil"
local CheckMessageHidden = GetMessage.OnClientEvent:Connect(function(Packet, Channel)
if Channel == "All" or (Channel == "Team" and Players[Packet.FromSpeaker].Team == Player.Team) then
TypeOfMessage = "Visible"
end
if TypeOfMessage == "nil" then
if (Message:lower():sub(1, 2) == "/t" or Channel == "Team") and Players[Packet.FromSpeaker].Team ~= LocalPlayer.Team then
TypeOfMessage = "Team"
elseif Channel:lower():sub(1, 2) == "to" or Message:lower():sub(1, 2) == "/w" then
TypeOfMessage = "Whisper"
elseif Message:lower():sub(1, 2) == "/e" then
TypeOfMessage = "Emote"
end
end
TypeOfMessage = "Other"
end)
CheckMessageHidden:Disconnect()
if TypeOfMessage ~= "nil" then
if TypeOfMessage == "Team" then
MessageProperties.Text = "{Team} ["..Player.Name.."]: "..(Message:lower():sub(1, 2) == "/t" and Message:sub(3) or Message)
StarterGui:SetCore("ChatMakeSystemMessage", MessageProperties)
elseif TypeOfMessage == "Whisper" then
local Whispering = Message:split(" ")[2]
MessageProperties.Text = "{To"..Whispering.."} ["..Player.Name.."]: "..(Message:lower():sub(1, 2) == "/w" and Message:sub(4 + #Whispering) or Message)
StarterGui:SetCore("ChatMakeSystemMessage", MessageProperties)
elseif TypeOfMessage == "Emote" then
MessageProperties.Text = "{Emote} ["..Player.Name.."]: "..Message:sub(3)
StarterGui:SetCore("ChatMakeSystemMessage", MessageProperties)
elseif TypeOfMessage == "Other" then
MessageProperties.Text = "{Other} ["..Player.Name.."]: "..Message:sub(3)
StarterGui:SetCore("ChatMakeSystemMessage", MessageProperties)
end
end
end
for i, v in pairs(Players:GetPlayers()) do
v.Chatted:Connect(function(Message)
onChatted(v, Message)
end)
end
Players.PlayerAdded:Connect(function(v)
v.Chatted:Connect(function(Message)
onChatted(v, Message)
end)
end)

1 comment
Your event isn't fired anywhere?