From 5a2196b2c8f2ac2eacb3ddaf40b3e75b9c38bb62 Mon Sep 17 00:00:00 2001 From: Zoffix Znet Date: Sat, 4 Jun 2016 19:18:31 -0400 Subject: Stuff --- lib/IRC/Client/Message.pm6 | 42 +++++++++++++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 9 deletions(-) (limited to 'lib/IRC/Client/Message.pm6') 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; } +} -- cgit v1.1