function module.new()local t=setmetatable({},methods)t.MessageIdCounter=0 t.ChatChannels={}t.Speakers={}t.FilterMessageFunctions=Util:NewSortedFunctionContainer()t.ProcessCommandsFunctions=Util:NewSortedFunctionContainer()t.eChannelAdded=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")t.eChannelRemoved=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")t.eSpeakerAdded=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")t.eSpeakerRemoved=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")t.ChannelAdded=t.eChannelAdded.Event t.ChannelRemoved=t.eChannelRemoved.Event t.SpeakerAdded=t.eSpeakerAdded.Event t.SpeakerRemoved=t.eSpeakerRemoved.Event t.ChatServiceMajorVersion=0 t.ChatServiceMinorVersion=5 return t end return module.new()


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

	obj.MessageIdCounter = 0

	obj.ChatChannels = {}
	obj.Speakers = {}

	obj.FilterMessageFunctions = Util:NewSortedFunctionContainer()
	obj.ProcessCommandsFunctions = Util:NewSortedFunctionContainer()

	obj.eChannelAdded = Instance.new("BindableEvent")
	obj.eChannelRemoved = Instance.new("BindableEvent")
	obj.eSpeakerAdded = Instance.new("BindableEvent")
	obj.eSpeakerRemoved = Instance.new("BindableEvent")

	obj.ChannelAdded = obj.eChannelAdded.Event
	obj.ChannelRemoved = obj.eChannelRemoved.Event
	obj.SpeakerAdded = obj.eSpeakerAdded.Event
	obj.SpeakerRemoved = obj.eSpeakerRemoved.Event

	obj.ChatServiceMajorVersion = 0
	obj.ChatServiceMinorVersion = 5

	return obj
end

return module.new()
