summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/Bot/Zulip/Chess.pm20
1 files changed, 13 insertions, 7 deletions
diff --git a/lib/Bot/Zulip/Chess.pm b/lib/Bot/Zulip/Chess.pm
index 83c1e62..57a2f44 100644
--- a/lib/Bot/Zulip/Chess.pm
+++ b/lib/Bot/Zulip/Chess.pm
@@ -82,13 +82,19 @@ has _chessboard => (
my $board = Chess::Rep->new;
my $record = $self->_record_file;
if (-e $record) {
- chomp(my @lines = $record->slurp);
- $self->white_player(shift @lines);
- $self->black_player(shift @lines);
- for my $turn (@lines) {
- my ($white, $black) = split ' ', $turn;
- $board->go_move($white) if $white;
- $board->go_move($black) if $black;
+ try {
+ chomp(my @lines = $record->slurp);
+ $self->white_player(shift @lines);
+ $self->black_player(shift @lines);
+ for my $turn (@lines) {
+ my ($white, $black) = split ' ', $turn;
+ $board->go_move($white) if $white;
+ $board->go_move($black) if $black;
+ }
+ }
+ catch {
+ warn $_;
+ $board = Chess::Rep->new;
}
}
$board