aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2018-12-17 06:22:24 +0100
committerPatrick Spek <p.spek@tyil.nl>2018-12-17 06:22:24 +0100
commitb8f67601e0086d7a2403e4f47ca720e3df3c5365 (patch)
tree4a10ae1e72219fe4bd2c5c87c6699a53e9a13167
parentd28cf05eedae3cd41246773d997dbfb523e552e6 (diff)
downloadIRC::Client-b8f67601e0086d7a2403e4f47ca720e3df3c5365.tar.gz
IRC::Client-b8f67601e0086d7a2403e4f47ca720e3df3c5365.tar.bz2
Make auto-prefixing nicks optional
This patch adds the :autoprefix option, which is True by default. When set to False, the .reply method should no longer prefix the message with the triggering user's nick.
-rw-r--r--lib/IRC/Client.pm64
-rw-r--r--lib/IRC/Client/Message.pm613
2 files changed, 13 insertions, 4 deletions
diff --git a/lib/IRC/Client.pm6 b/lib/IRC/Client.pm6
index cd2348e..f0bc7a8 100644
--- a/lib/IRC/Client.pm6
+++ b/lib/IRC/Client.pm6
@@ -21,6 +21,7 @@ has $.debug;
has Lock $!lock = Lock.new;
has Channel $!event-pipe = Channel.new;
has Channel $!socket-pipe = Channel.new;
+has Bool $.autoprefix = True;
my &colored = (try require Terminal::ANSIColor) === Nil
&& sub (Str $s, $) { $s } ||
@@ -44,9 +45,12 @@ submethod BUILD (
Str:D :$userhost = 'localhost',
Str:D :$userreal = 'Perl6 IRC Client',
:$channels = ('#perl6',),
+ Bool:D :$autoprefix = True,
) {
@!filters = @$filters;
@!plugins = @$plugins;
+ $!autoprefix = $autoprefix;
+
my %servers = %$servers;
my %all-conf = :$port, :$password, :$host, :$nick, :$alias,
diff --git a/lib/IRC/Client/Message.pm6 b/lib/IRC/Client/Message.pm6
index 79ef7d8..ff307ef 100644
--- a/lib/IRC/Client/Message.pm6
+++ b/lib/IRC/Client/Message.pm6
@@ -40,8 +40,10 @@ role Privmsg does M {
role Privmsg::Channel does Privmsg {
has $.channel;
method reply ($text, :$where) {
- $.irc.send-cmd: 'PRIVMSG', $where // $.channel, $text,
- :$.server, :prefix("$.nick, ");
+ $.irc.autoprefix
+ ?? $.irc.send-cmd: 'PRIVMSG', $where // $.channel, $text, :$.server, :prefix("$.nick, ")
+ !! $.irc.send-cmd: 'PRIVMSG', $where // $.channel, $text, :$.server
+ ;
}
}
role Privmsg::Me does Privmsg {
@@ -60,8 +62,11 @@ role Notice does M {
role Notice::Channel does Notice {
has $.channel;
method reply ($text, :$where) {
- $.irc.send-cmd: 'NOTICE', $where // $.channel, $text,
- :$.server, :prefix("$.nick, ");
+ $.irc.autoprefix
+ ?? $.irc.send-cmd: 'NOTICE', $where // $.channel, $text, :$.server, :prefix("$.nick, ")
+ !! $.irc.send-cmd: 'NOTICE', $where // $.channel, $text, :$.server
+ ;
+
$.replied = True;
}
}