diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/IM/Engine/Plugin/Commands.pm | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/IM/Engine/Plugin/Commands.pm b/lib/IM/Engine/Plugin/Commands.pm index e5ecec8..2f18ad4 100644 --- a/lib/IM/Engine/Plugin/Commands.pm +++ b/lib/IM/Engine/Plugin/Commands.pm @@ -3,6 +3,7 @@ use Moose; use Module::Pluggable sub_name => 'commands'; Sub::Name::subname('commands', \&commands); use List::Util qw(first); +use Try::Tiny; extends 'IM::Engine::Plugin'; =head1 NAME @@ -102,12 +103,14 @@ sub incoming { my $command = $self->_active_commands->{$command_name}; if (!defined $command) { my $command_package = $self->_command_package($command_name); - eval { Class::MOP::load_class($command_package) }; - if ($@) { - warn $@; - $self->say((split /\n/, $@)[0]); - return; + return unless try { + Class::MOP::load_class($command_package) } + catch { + warn $_; + $self->say((split /\n/)[0]); + return; + }; $command = $command_package->new(_ime_plugin => $self); $self->_active_commands->{$command_name} = $command; } |