aboutsummaryrefslogtreecommitdiff
path: root/lib/IRC/Grammar/Actions.pm6
diff options
context:
space:
mode:
Diffstat (limited to 'lib/IRC/Grammar/Actions.pm6')
-rw-r--r--lib/IRC/Grammar/Actions.pm69
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 {