@@ -119,8 +119,8 @@ async fn handle_chat_message<H: PteroWebSocketHandle>(
119119 & data. pterodactyl ,
120120 webhook_cache,
121121 ptero_server_id,
122- sender,
123122 Some ( sender) ,
123+ false ,
124124 message,
125125 )
126126 . await ?;
@@ -144,8 +144,8 @@ async fn handle_log_message(
144144 & data. pterodactyl ,
145145 webhook_cache,
146146 ptero_server_id,
147- & format ! ( "[System] {sanitized_username}" ) ,
148147 Some ( & sanitized_username) ,
148+ true ,
149149 & message,
150150 )
151151 . await ?;
@@ -223,8 +223,8 @@ async fn broadcast_message(
223223 pterodactyl : & pterodactyl_api:: client:: Client ,
224224 webhook_cache : & DashMap < String , Webhook > ,
225225 ptero_server_id : & str ,
226- sender : & str ,
227226 username : Option < & str > ,
227+ system_message : bool ,
228228 message : & str ,
229229) -> Result < ( ) , crate :: Error > {
230230 let config = config:: get ( ) ;
@@ -239,6 +239,14 @@ async fn broadcast_message(
239239 let Some ( chat_bridge) = config. chat_bridge_by_ptero_server_name ( & from_server. name ) else {
240240 return Ok ( ( ) ) ;
241241 } ;
242+ let mut pterodactyl_message = format ! ( "[{}] " , from_server. display_name) ;
243+ if system_message {
244+ pterodactyl_message += "[System] " ;
245+ }
246+ if let Some ( username) = username {
247+ pterodactyl_message += & format ! ( "[{username}] " ) ;
248+ }
249+ pterodactyl_message += message;
242250 try_join_all (
243251 chat_bridge
244252 . ptero_servers
@@ -254,22 +262,24 @@ async fn broadcast_message(
254262 return None ;
255263 } ;
256264 Some ( async {
257- tellraw (
258- & pterodactyl. get_server ( & server. id ) ,
259- format ! ( "[{}] [{}] {}" , from_server. display_name, sender, message) ,
260- )
261- . await
265+ tellraw ( & pterodactyl. get_server ( & server. id ) , & pterodactyl_message) . await
262266 } )
263267 } ) ,
264268 )
265269 . await ?;
270+ let mut discord_sender = format ! ( "[{}]" , from_server. display_name) ;
271+ if system_message {
272+ discord_sender += " [System]" ;
273+ }
274+ if let Some ( username) = username {
275+ discord_sender += & format ! ( " [{username}]" ) ;
276+ }
266277 try_join_all ( chat_bridge. discord_channels . iter ( ) . map ( |channel| {
267278 broadcast_to_discord (
268279 discord_handle,
269280 webhook_cache,
270281 & channel. webhook ,
271- & from_server. display_name ,
272- sender,
282+ & discord_sender,
273283 username,
274284 message,
275285 )
@@ -282,9 +292,8 @@ async fn broadcast_to_discord(
282292 discord_handle : & discord_bot:: Handle ,
283293 webhook_cache : & DashMap < String , Webhook > ,
284294 webhook : & str ,
285- server_display_name : & str ,
286295 sender : & str ,
287- username : Option < & str > ,
296+ avatar_username : Option < & str > ,
288297 message : & str ,
289298) -> Result < ( ) , crate :: Error > {
290299 let webhook = match webhook_cache. entry ( webhook. to_owned ( ) ) {
@@ -293,10 +302,8 @@ async fn broadcast_to_discord(
293302 . insert ( Webhook :: from_url ( discord_handle, webhook) . await ?)
294303 . clone ( ) ,
295304 } ;
296- let mut execute_webhook = ExecuteWebhook :: new ( )
297- . content ( message)
298- . username ( format ! ( "[{server_display_name}] {sender}" ) ) ;
299- if let Some ( username) = username {
305+ let mut execute_webhook = ExecuteWebhook :: new ( ) . content ( message) . username ( sender) ;
306+ if let Some ( username) = avatar_username {
300307 execute_webhook = execute_webhook. avatar_url ( avatar_url ( username) ) ;
301308 }
302309 webhook
@@ -382,8 +389,8 @@ impl<H: PteroWebSocketHandle> PteroWebSocketListener<H> for WebsocketListener<'_
382389 & self . data . pterodactyl ,
383390 & self . webhook_cache ,
384391 self . ptero_server_id ,
385- "[System]" ,
386392 None ,
393+ true ,
387394 message,
388395 )
389396 . await
0 commit comments