diff options
Diffstat (limited to 'lib/Bot/Zulip/Chess.pm')
-rw-r--r-- | lib/Bot/Zulip/Chess.pm | 20 |
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 |