aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorZoffix Znet <cpan@zoffix.com>2016-01-01 09:00:37 -0500
committerZoffix Znet <cpan@zoffix.com>2016-01-01 09:00:37 -0500
commit98cee4deebfba64dd7143f97675788b175fb8fb4 (patch)
tree4b10bbf17f16a603d89732cca24bf60e3ea70b3d /lib
parentce9eb0ee6f2903c551f88f989ef17ef8f1dbdc1f (diff)
Add server password support (Relates to #3)
Diffstat (limited to 'lib')
-rw-r--r--lib/IRC/Client.pm64
-rw-r--r--lib/IRC/Client/Plugin.pm62
-rw-r--r--lib/IRC/Client/Plugin/Debugger.pm62
-rw-r--r--lib/IRC/Client/Plugin/PingPong.pm62
-rw-r--r--lib/IRC/Grammar.pm62
-rw-r--r--lib/IRC/Grammar/Actions.pm62
-rw-r--r--lib/IRC/Parser.pm62
7 files changed, 9 insertions, 7 deletions
diff --git a/lib/IRC/Client.pm6 b/lib/IRC/Client.pm6
index 8c0b2c1..49d1cff 100644
--- a/lib/IRC/Client.pm6
+++ b/lib/IRC/Client.pm6
@@ -2,9 +2,10 @@ use v6;
use IRC::Parser; # parse-irc
use IRC::Client::Plugin::PingPong;
use IRC::Client::Plugin;
-class IRC::Client:ver<2.001001> {
+class IRC::Client:ver<2.002001> {
has Bool:D $.debug = False;
has Str:D $.host = 'localhost';
+ has Str:D $.password;
has Int:D $.port where 0 <= $_ <= 65535 = 6667;
has Str:D $.nick = 'Perl6IRC';
has Str:D $.username = 'Perl6IRC';
@@ -23,6 +24,7 @@ class IRC::Client:ver<2.001001> {
await IO::Socket::Async.connect( $!host, $!port ).then({
$!sock = .result;
+ $.ssay("PASS $!password\n") if $!password.defined;
$.ssay("NICK $!nick\n");
$.ssay("USER $!username $!username $!host :$!userreal\n");
$.ssay("JOIN {@!channels[]} x\n");
diff --git a/lib/IRC/Client/Plugin.pm6 b/lib/IRC/Client/Plugin.pm6
index 83703d7..8244013 100644
--- a/lib/IRC/Client/Plugin.pm6
+++ b/lib/IRC/Client/Plugin.pm6
@@ -1,3 +1,3 @@
constant IRC_HANDLED = "irc plugin handled \x1";
constant IRC_NOT_HANDLED = "irc plugin not-handled \x2";
-unit class IRC::Client::Plugin:ver<2.001001>;
+unit class IRC::Client::Plugin:ver<2.002001>;
diff --git a/lib/IRC/Client/Plugin/Debugger.pm6 b/lib/IRC/Client/Plugin/Debugger.pm6
index c959cc2..a2cb9a2 100644
--- a/lib/IRC/Client/Plugin/Debugger.pm6
+++ b/lib/IRC/Client/Plugin/Debugger.pm6
@@ -1,6 +1,6 @@
use Data::Dump;
use IRC::Client::Plugin;
-unit class IRC::Client::Plugin::Debugger:ver<2.001001> is IRC::Client::Plugin;
+unit class IRC::Client::Plugin::Debugger:ver<2.002001> is IRC::Client::Plugin;
method irc-all-events ($irc, $e) {
say Dump $e, :indent(4);
diff --git a/lib/IRC/Client/Plugin/PingPong.pm6 b/lib/IRC/Client/Plugin/PingPong.pm6
index b499051..abecd96 100644
--- a/lib/IRC/Client/Plugin/PingPong.pm6
+++ b/lib/IRC/Client/Plugin/PingPong.pm6
@@ -1,2 +1,2 @@
-unit class IRC::Client::Plugin::PingPong:ver<2.001001>;
+unit class IRC::Client::Plugin::PingPong:ver<2.002001>;
method irc-ping ($irc, $e) { $irc.ssay("PONG {$irc.nick} $e<params>[0]") }
diff --git a/lib/IRC/Grammar.pm6 b/lib/IRC/Grammar.pm6
index f1303ee..e20d0e4 100644
--- a/lib/IRC/Grammar.pm6
+++ b/lib/IRC/Grammar.pm6
@@ -1,4 +1,4 @@
-unit grammar IRC::Grammar:ver<2.001001>;
+unit grammar IRC::Grammar:ver<2.002001>;
token TOP { <message>+ }
token SPACE { ' '+ }
token message { [':' <prefix> <SPACE> ]? <command> <params> \n }
diff --git a/lib/IRC/Grammar/Actions.pm6 b/lib/IRC/Grammar/Actions.pm6
index e7f5292..b8bf75c 100644
--- a/lib/IRC/Grammar/Actions.pm6
+++ b/lib/IRC/Grammar/Actions.pm6
@@ -1,4 +1,4 @@
-unit class IRC::Grammar::Actions:ver<2.001001>;
+unit class IRC::Grammar::Actions:ver<2.002001>;
method TOP ($/) { $/.make: $<message>>>.made }
method message ($/) {
my $pref = $/<prefix>;
diff --git a/lib/IRC/Parser.pm6 b/lib/IRC/Parser.pm6
index 77de768..16cc8b1 100644
--- a/lib/IRC/Parser.pm6
+++ b/lib/IRC/Parser.pm6
@@ -1,6 +1,6 @@
use IRC::Grammar;
use IRC::Grammar::Actions;
-unit class IRC::Parser:ver<2.001001>;
+unit class IRC::Parser:ver<2.002001>;
sub parse-irc (Str:D $input) is export {
IRC::Grammar.parse($input, actions => IRC::Grammar::Actions).made // [];