fixed bugs

This commit is contained in:
2026-02-27 22:57:53 +01:00
parent 158cb5e832
commit be3570af78
2 changed files with 17 additions and 9 deletions
+2 -2
View File
@@ -63,8 +63,8 @@
"dc_msg_wwrps_draw": "DRAW",
"dc_msg_wwrps_fight": "### {0} (P1) vs {1} (P2)...\n## {2}\n**P1:** {3}\n**P2:** {4}",
"dc_msg_wwrps_not_in_data": "Could not find `wwrps_channel` in data!\nHint: Run `/database WWRPSChannel` in a channel (requires administrator permission).",
"dc_msg_wwrps_p1_win": "P1 WINS",
"dc_msg_wwrps_p2_win": "P2 WINS",
"dc_msg_wwrps_left_win": "P1 WINS",
"dc_msg_wwrps_right_win": "P2 WINS",
"dc_msg_wwrps_submitting": "Submitting your RPS... Please wait for another contestant to compete against you.",
"log_lang_load_success": "Successfully loaded the english language file!",
"none": "None",
+15 -7
View File
@@ -22,6 +22,7 @@ pub struct RPSPlayer {
pub wwrps_channel: ChannelId,
pub anonymous: bool
}
#[derive(Clone)]
pub struct RPSGame {
pub players: [Option<RPSPlayer>; 2],
}
@@ -113,11 +114,17 @@ pub async fn cmd(
if !full { return Ok(()); }
let r_text = results_text(&game);
let game_clone = game.clone();
game.clear();
for player in &game.players {
if let Some(p) = player
{ http_send_msg(ctx.http(), p.wwrps_channel, r_text.clone()).await; }
let mut used_channels: Vec<ChannelId> = Vec::new();
for player in &game_clone.players {
if let Some(p) = player {
if used_channels.contains(&p.wwrps_channel) { continue; }
used_channels.push(p.wwrps_channel);
http_send_msg(ctx.http(), p.wwrps_channel, r_text.clone()).await;
}
}
}
@@ -129,14 +136,15 @@ fn results_text(game: &MutexGuard<'_, RPSGame>) -> String {
let winner = game.get_winner();
let winner_text: String;
if let Some(w) = winner
{ winner_text = if w == 0 { lang!("dc_msg_wwrps_p1_win") } else { lang!("dc_msg_wwrps_p2_win") }; }
else { winner_text = lang!("dc_msg_wwrps_draw"); }
let p1 = game.players[0].as_ref().unwrap();
let p2 = game.players[1].as_ref().unwrap();
let p1_n = if !p1.anonymous { p1.user.mention().to_string() } else { lang!("dc_msg_wwrps_anon") };
let p2_n = if !p2.anonymous { p2.user.mention().to_string() } else { lang!("dc_msg_wwrps_anon") };
if let Some(w) = winner {
winner_text = if w == 0 { lang!("dc_msg_wwrps_left_win") }
else { lang!("dc_msg_wwrps_right_win") }; }
else { winner_text = lang!("dc_msg_wwrps_draw"); }
return lang!("dc_msg_wwrps_fight", p1.selection.clone(), p2.selection.clone(), winner_text, p1_n, p2_n);
}