File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed
Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change @@ -124,6 +124,26 @@ async fn handle_chat_message<H: PteroWebSocketHandle>(
124124 Ok ( ( ) )
125125}
126126
127+ async fn handle_log_message (
128+ data : & ProtobotData ,
129+ chat_bridge_webhook : Option < & Webhook > ,
130+ message : & str ,
131+ ) -> Result < ( ) , crate :: Error > {
132+ if let Some ( chat_bridge_webhook) = chat_bridge_webhook {
133+ if message. ends_with ( " joined the game" ) || message. ends_with ( " left the game" ) {
134+ chat_bridge_webhook
135+ . execute (
136+ & data. discord_handle ,
137+ false ,
138+ ExecuteWebhook :: new ( ) . content ( message) . username ( "System" ) ,
139+ )
140+ . await ?;
141+ }
142+ }
143+
144+ Ok ( ( ) )
145+ }
146+
127147async fn handle_server_log < H : PteroWebSocketHandle > (
128148 handle : & mut H ,
129149 data : & ProtobotData ,
@@ -159,6 +179,27 @@ async fn handle_server_log<H: PteroWebSocketHandle>(
159179 message,
160180 )
161181 . await ?;
182+ return Ok ( ( ) ) ;
183+ }
184+
185+ let parse_result: Result < ( & str , & str ) , nom:: error:: Error < & str > > = map (
186+ tuple ( (
187+ tuple ( (
188+ char ( '[' ) ,
189+ digit1,
190+ char ( ':' ) ,
191+ digit1,
192+ char ( ':' ) ,
193+ digit1,
194+ tag ( "] [Server thread/INFO]: " ) ,
195+ ) ) ,
196+ recognize ( many1 ( anychar) ) ,
197+ ) ) ,
198+ |( _, log_message) | log_message,
199+ ) ( message)
200+ . finish ( ) ;
201+ if let Ok ( ( _, log_message) ) = parse_result {
202+ handle_log_message ( data, chat_bridge_webhook, log_message) . await ?;
162203 }
163204
164205 Ok ( ( ) )
You can’t perform that action at this time.
0 commit comments