aboutsummaryrefslogtreecommitdiff
path: root/t/release/servers/01-basic.pl
blob: 086e213cd0ccfea0c8aad0df3d1e2c53653d5c44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
use strict;
use warnings;
use JSON::Meth;
use 5.020;
use POE qw(Component::Server::IRC);

$|++;

my ($Port) = @ARGV;

my %config = (
    servername => 'simple.poco.server.irc',
    nicklen    => 15,
    network    => 'SimpleNET'
);

my $pocosi = POE::Component::Server::IRC->spawn( config => \%config );

POE::Session->create(
    package_states => [
        'main' => [qw(_start _default)],
    ],
    heap => { ircd => $pocosi },
);

$poe_kernel->run();

sub _start {
    my ($kernel, $heap) = @_[KERNEL, HEAP];

    $heap->{ircd}->yield('register', 'all');
    $heap->{ircd}->add_auth(mask => '*@*');
    $heap->{ircd}->add_listener(port => $Port);
    $heap->{ircd}->add_operator({
        username => 'moo',
        password => 'fishdont',
    });
}

sub _default {
    my ($event, @args) = @_[ARG0 .. $#_];
    say {
        event => $event,
        args  => \@args,
    }->$j;


 #    print "$event: ";
 #    for my $arg (@args) {
 #        if (ref($arg) eq 'ARRAY') {
 #            print "[", join ( ", ", @$arg ), "] ";
 #        }
 #        elsif (ref($arg) eq 'HASH') {
 #            print "{", join ( ", ", %$arg ), "} ";
 #        }
 #        else {
 #            print "'$arg' ";
 #        }
 #    }
 #
 #    print "\n";
 }