function module.new(b,W)local s=setmetatable({},methods)s.ChatService=b s.PlayerObj=nil s.Name=W s.ExtraData={}s.Channels={}s.MutedSpeakers={}s.eDestroyed=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")s.eSaidMessage=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")s.eReceivedMessage=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")s.eMessageDoneFiltering=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")s.eReceivedSystemMessage=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")s.eChannelJoined=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")s.eChannelLeft=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")s.eMuted=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")s.eUnmuted=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")s.eExtraDataUpdated=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")s.eMainChannelSet=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")s.eChannelNameColorUpdated=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")s.Destroyed=s.eDestroyed.Event s.SaidMessage=s.eSaidMessage.Event s.ReceivedMessage=s.eReceivedMessage.Event s.MessageDoneFiltering=s.eMessageDoneFiltering.Event s.ReceivedSystemMessage=s.eReceivedSystemMessage.Event s.ChannelJoined=s.eChannelJoined.Event s.ChannelLeft=s.eChannelLeft.Event s.Muted=s.eMuted.Event s.Unmuted=s.eUnmuted.Event s.ExtraDataUpdated=s.eExtraDataUpdated.Event s.MainChannelSet=s.eMainChannelSet.Event s.ChannelNameColorUpdated=s.eChannelNameColorUpdated.Event return s end return module
--///////////////////////// Constructors
--//////////////////////////////////////

function module.new(vChatService, name)
	local obj = setmetatable({}, methods)

	obj.ChatService = vChatService

	obj.PlayerObj = nil

	obj.Name = name
	obj.ExtraData = {}

	obj.Channels = {}
	obj.MutedSpeakers = {}

	-- Make sure to destroy added binadable events in the InternalDestroy method.
	obj.eDestroyed = Instance.new("BindableEvent")
	obj.eSaidMessage = Instance.new("BindableEvent")
	obj.eReceivedMessage = Instance.new("BindableEvent")
	obj.eMessageDoneFiltering = Instance.new("BindableEvent")
	obj.eReceivedSystemMessage = Instance.new("BindableEvent")
	obj.eChannelJoined = Instance.new("BindableEvent")
	obj.eChannelLeft = Instance.new("BindableEvent")
	obj.eMuted = Instance.new("BindableEvent")
	obj.eUnmuted = Instance.new("BindableEvent")
	obj.eExtraDataUpdated = Instance.new("BindableEvent")
	obj.eMainChannelSet = Instance.new("BindableEvent")
	obj.eChannelNameColorUpdated = Instance.new("BindableEvent")

	obj.Destroyed = obj.eDestroyed.Event
	obj.SaidMessage = obj.eSaidMessage.Event
	obj.ReceivedMessage = obj.eReceivedMessage.Event
	obj.MessageDoneFiltering = obj.eMessageDoneFiltering.Event
	obj.ReceivedSystemMessage = obj.eReceivedSystemMessage.Event
	obj.ChannelJoined = obj.eChannelJoined.Event
	obj.ChannelLeft = obj.eChannelLeft.Event
	obj.Muted = obj.eMuted.Event
	obj.Unmuted = obj.eUnmuted.Event
	obj.ExtraDataUpdated = obj.eExtraDataUpdated.Event
	obj.MainChannelSet = obj.eMainChannelSet.Event
	obj.ChannelNameColorUpdated = obj.eChannelNameColorUpdated.Event

	return obj
end

return module
