summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-10-22 16:25:00 -0400
committerJesse Luehrs <doy@tozt.net>2014-10-22 16:25:00 -0400
commit4753e4767eab175ec6e3e712dfbec59c3c13e1e2 (patch)
tree928da22a5fc869189f63ca917929aedfdf0dca77
parentd2e98b3ad96f312c768cfbc3bf549a3b61d4542d (diff)
downloadBot-Zulip-Chess-4753e4767eab175ec6e3e712dfbec59c3c13e1e2.tar.gz
Bot-Zulip-Chess-4753e4767eab175ec6e3e712dfbec59c3c13e1e2.zip
add a few special commands
-rw-r--r--lib/Bot/Zulip/Chess.pm27
1 files changed, 18 insertions, 9 deletions
diff --git a/lib/Bot/Zulip/Chess.pm b/lib/Bot/Zulip/Chess.pm
index 321e393..93cc5ba 100644
--- a/lib/Bot/Zulip/Chess.pm
+++ b/lib/Bot/Zulip/Chess.pm
@@ -165,18 +165,27 @@ sub handle_move ($self, $player, $move) {
}
return try {
- my $res = $self->_chessboard->go_move($move);
- my $parsed_move = $res->{san};
- if ($self->needs_new_player) {
- $self->_temp_move($parsed_move);
+ if ($move eq 'state') {
+ $self->draw_state;
+ }
+ elsif ($move eq 'resign') {
+ my $msg = '@**' . $self->current_player . "** resigned";
+ $self->reset_board;
}
else {
- $self->_record_file->spew(
- iomode => 'a',
- $parsed_move . ($self->_chessboard->to_move ? "\n" : " ")
- );
+ my $res = $self->_chessboard->go_move($move);
+ my $parsed_move = $res->{san};
+ if ($self->needs_new_player) {
+ $self->_temp_move($parsed_move);
+ }
+ else {
+ $self->_record_file->spew(
+ iomode => 'a',
+ $parsed_move . ($self->_chessboard->to_move ? "\n" : " ")
+ );
+ }
+ $self->draw_state;
}
- $self->draw_state;
}
catch {
s/ at .* line .*//r;