diff options
Diffstat (limited to 'lib/IRC/Grammar')
-rw-r--r-- | lib/IRC/Grammar/Actions.pm6 | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/IRC/Grammar/Actions.pm6 b/lib/IRC/Grammar/Actions.pm6 index 7093b99..74a8f11 100644 --- a/lib/IRC/Grammar/Actions.pm6 +++ b/lib/IRC/Grammar/Actions.pm6 @@ -3,12 +3,11 @@ method TOP ($/) { $/.make: $<message>>>.made } method message ($/) { my $pref = $/<prefix>; my %args = command => ~$/<command>; - if ( $pref<servername>.defined ) { - %args<who><host> = ~$pref<servername>; - } - else { - %args<who><nick user host> = $pref<nick user host>ยป.Str; + for qw/nick user host/ { + $pref{$_}.defined or next; + %args<who>{$_} = $pref{$_}.Str; } + %args<who><host> = ~$pref<servername> if $pref<servername>.defined; my $p = $/<params>; loop { |