summaryrefslogtreecommitdiffstats
path: root/lib/IM/Engine/Plugin/Commands.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/IM/Engine/Plugin/Commands.pm')
-rw-r--r--lib/IM/Engine/Plugin/Commands.pm13
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;
}