@@ -109,6 +109,52 @@ func (p *parser) handleServerInfoS2(srvInfo *msgs2.CSVCMsg_ServerInfo) {
109109 })
110110}
111111
112+ func (p * parser ) handleMessageSayText (msg * msgs2.CUserMessageSayText ) {
113+ p .eventDispatcher .Dispatch (events.SayText {
114+ EntIdx : int (msg .GetPlayerindex ()),
115+ IsChat : msg .GetChat (),
116+ IsChatAll : false ,
117+ Text : msg .GetText (),
118+ })
119+ }
120+
121+ func (p * parser ) handleMessageSayText2 (msg * msgs2.CUserMessageSayText2 ) {
122+ p .eventDispatcher .Dispatch (events.SayText2 {
123+ EntIdx : int (msg .GetEntityindex ()),
124+ IsChat : msg .GetChat (),
125+ IsChatAll : false ,
126+ MsgName : msg .GetMessagename (),
127+ Params : []string {msg .GetParam1 (), msg .GetParam2 (), msg .GetParam3 (), msg .GetParam4 ()},
128+ })
129+
130+ switch msg .GetMessagename () {
131+ case "Cstrike_Chat_All" :
132+ fallthrough
133+ case "Cstrike_Chat_AllDead" :
134+ sender := p .gameState .playersByEntityID [int (msg .GetEntityindex ())]
135+
136+ p .eventDispatcher .Dispatch (events.ChatMessage {
137+ Sender : sender ,
138+ Text : msg .GetParam2 (),
139+ IsChatAll : false ,
140+ })
141+
142+ case "#CSGO_Coach_Join_T" : // Ignore these
143+ case "#CSGO_Coach_Join_CT" :
144+ case "#Cstrike_Name_Change" :
145+ case "Cstrike_Chat_T_Loc" :
146+ case "Cstrike_Chat_CT_Loc" :
147+ case "Cstrike_Chat_T_Dead" :
148+ case "Cstrike_Chat_CT_Dead" :
149+
150+ default :
151+ errMsg := fmt .Sprintf ("skipped sending ChatMessageEvent for SayText2 with unknown MsgName %q" , msg .GetMessagename ())
152+
153+ p .eventDispatcher .Dispatch (events.ParserWarn {Message : errMsg })
154+ unassert .Error (errMsg )
155+ }
156+ }
157+
112158func (p * parser ) handleServerRankUpdate (msg * msgs2.CCSUsrMsg_ServerRankUpdate ) {
113159 for _ , v := range msg .RankUpdate {
114160 steamID32 := uint32 (v .GetAccountId ())
0 commit comments