Skip to content

Commit f910a0c

Browse files
committed
Fix formatting of system messages in ptero servers
1 parent 32cbb4f commit f910a0c

File tree

1 file changed

+24
-17
lines changed

1 file changed

+24
-17
lines changed

src/pterodactyl/smp_commands.rs

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)