fixed bugs
This commit is contained in:
+2
-2
@@ -63,8 +63,8 @@
|
|||||||
"dc_msg_wwrps_draw": "DRAW",
|
"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_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_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_left_win": "P1 WINS",
|
||||||
"dc_msg_wwrps_p2_win": "P2 WINS",
|
"dc_msg_wwrps_right_win": "P2 WINS",
|
||||||
"dc_msg_wwrps_submitting": "Submitting your RPS... Please wait for another contestant to compete against you.",
|
"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!",
|
"log_lang_load_success": "Successfully loaded the english language file!",
|
||||||
"none": "None",
|
"none": "None",
|
||||||
|
|||||||
+15
-7
@@ -22,6 +22,7 @@ pub struct RPSPlayer {
|
|||||||
pub wwrps_channel: ChannelId,
|
pub wwrps_channel: ChannelId,
|
||||||
pub anonymous: bool
|
pub anonymous: bool
|
||||||
}
|
}
|
||||||
|
#[derive(Clone)]
|
||||||
pub struct RPSGame {
|
pub struct RPSGame {
|
||||||
pub players: [Option<RPSPlayer>; 2],
|
pub players: [Option<RPSPlayer>; 2],
|
||||||
}
|
}
|
||||||
@@ -113,11 +114,17 @@ pub async fn cmd(
|
|||||||
if !full { return Ok(()); }
|
if !full { return Ok(()); }
|
||||||
|
|
||||||
let r_text = results_text(&game);
|
let r_text = results_text(&game);
|
||||||
|
let game_clone = game.clone();
|
||||||
game.clear();
|
game.clear();
|
||||||
|
|
||||||
for player in &game.players {
|
let mut used_channels: Vec<ChannelId> = Vec::new();
|
||||||
if let Some(p) = player
|
|
||||||
{ http_send_msg(ctx.http(), p.wwrps_channel, r_text.clone()).await; }
|
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 = game.get_winner();
|
||||||
let winner_text: String;
|
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 p1 = game.players[0].as_ref().unwrap();
|
||||||
let p2 = game.players[1].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 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") };
|
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);
|
return lang!("dc_msg_wwrps_fight", p1.selection.clone(), p2.selection.clone(), winner_text, p1_n, p2_n);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user