@@ -109,6 +109,52 @@ func (p *parser) handleServerInfoS2(srvInfo *msgs2.CSVCMsg_ServerInfo) {
109
109
})
110
110
}
111
111
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
+
112
158
func (p * parser ) handleServerRankUpdate (msg * msgs2.CCSUsrMsg_ServerRankUpdate ) {
113
159
for _ , v := range msg .RankUpdate {
114
160
steamID32 := uint32 (v .GetAccountId ())
0 commit comments