diff options
Diffstat (limited to 'examples/07-multi-server-message-forwarder.p6')
-rw-r--r-- | examples/07-multi-server-message-forwarder.p6 | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/examples/07-multi-server-message-forwarder.p6 b/examples/07-multi-server-message-forwarder.p6 new file mode 100644 index 0000000..06d07ec --- /dev/null +++ b/examples/07-multi-server-message-forwarder.p6 @@ -0,0 +1,37 @@ +use lib <lib>; + +use IRC::Client; + +class Messenger does IRC::Client::Plugin { + method irc-privmsg-channel ($e) { + for $.irc.servers.values -> $server { + for $server.channels -> $channel { + next if $server eq $e.server and $channel eq $e.channel; + + $.irc.send: :$server, :where($channel), :text( + "$e.nick() over at $e.server.host()/$e.channel() says $e.text()" + ); + } + } + + $.irc.send: :where<Zoffix> + :text('I spread the messages!') + :server<local>; + } +} + +.run with IRC::Client.new: + :debug + :plugins[Messenger.new] + :nick<MahBot> + :channels<#zofbot> + :servers{ + freenode => %( + :host<irc.freenode.net>, + ), + local => %( + :nick<P6Bot>, + :channels<#zofbot #perl6>, + :host<localhost>, + ) + } |