diff options
author | Zoffix Znet <cpan@zoffix.com> | 2016-06-04 19:18:31 -0400 |
---|---|---|
committer | Zoffix Znet <cpan@zoffix.com> | 2016-06-04 19:18:31 -0400 |
commit | 5a2196b2c8f2ac2eacb3ddaf40b3e75b9c38bb62 (patch) | |
tree | 0241ad573b1db26be38dbd6396041643c04113a8 /lib/IRC/Client/Message.pm6 | |
parent | 791d7981cff0cd3a85fdd504f410a7c9833272dc (diff) |
Stuff
Diffstat (limited to 'lib/IRC/Client/Message.pm6')
-rw-r--r-- | lib/IRC/Client/Message.pm6 | 42 |
1 files changed, 33 insertions, 9 deletions
diff --git a/lib/IRC/Client/Message.pm6 b/lib/IRC/Client/Message.pm6 index 69e7c82..4abb718 100644 --- a/lib/IRC/Client/Message.pm6 +++ b/lib/IRC/Client/Message.pm6 @@ -1,9 +1,33 @@ -unit role IRC::Client::Message; - -has $.irc is required; -has Str:D $.nick is required; -has Str:D $.username is required; -has Str:D $.host is required; -has Str:D $.usermask is required; -has Str:D $.command is required; -has Str:D $.server is required; +unit package IRC::Client::Message; + +role IRC::Client::Message { + has $.irc is required; + has Str:D $.nick is required; + has Str:D $.username is required; + has Str:D $.host is required; + has Str:D $.usermask is required; + has Str:D $.command is required; + has Str:D $.server is required; + has @.args is required; + + method Str { "$.command @.args[]" } +} + +constant M = IRC::Client::Message; + +role Join does M { has $.channel; } +role Notice does M { has $.text; } +role Notice::Channel does Notice { has $.channel; } +role Notice::Me does Notice { } +role Mode does M { has @.modes; } +role Mode::Channel does Mode { has $.channel; } +role Mode::Me does Mode { } +role Numeric does M { } +role Privmsg does M { has $.text; } +role Privmsg::Channel does Privmsg { has $.channel; } +role Privmsg::Me does Privmsg { } +role Unknown does M { method Str { "❚⚠❚ $.command @.args[]" } } + +role Ping does M { + method reply { $.irc.send-cmd: 'PONG', @.args; } +} |