X-Git-Url: https://ruin.nu/git/?p=NDIRC.git;a=blobdiff_plain;f=Delling.pm;h=eb9c929ee9cc98095d6e5c2998ffd6238288323c;hp=bf9bb9d665d8e17cb0a5ca44710a308e0c767de4;hb=0822847cd53af14ada68762a2f9d152a274a4d9b;hpb=cd18307dc7e3886266937935feffbb41b1df422d diff --git a/Delling.pm b/Delling.pm index bf9bb9d..eb9c929 100644 --- a/Delling.pm +++ b/Delling.pm @@ -28,6 +28,8 @@ extends 'NDIRC::Bot'; use POE::Session; use ND::DB; +use NDIRC::DiscordContext; + my ($tick,$stattick) = (0,0); my $last_announcement = 0; @@ -216,4 +218,38 @@ after _start => sub { ($tick,$stattick) = DB()->selectrow_array(q{SELECT tick(),max(tick) FROM planet_stats}); }; +after discord_message_create => sub { + my $self = shift; + my $hash = shift; + + my $author = $hash->{author}; + my $msg = $hash->{content}; + my $channel_id = $hash->{channel_id}; + my $author_name = $author->{username}; + my $author_id = $author->{id}; + say localtime(time) . "$channel_id $author_name $author_id"; + return if $author->{'id'} eq $self->discord_id; # Ignore my own messages + + my $channel = "#testarlite"; + + my ($p,$command,$args) = ($msg =~ /^([.!~])(\S+)(?: (.+))?/); + + say localtime(time) . " - $msg"; + + return 0 unless $self->disp->has_command($command,$channel); + + + my $c = NDIRC::DiscordContext->new({ + discord_id => $author_id, + channel_id => $channel_id, + channel => $channel, + disp => $self->disp, + model => DB(), + discord => $self->discord, + }); + + return $self->disp->run_command($c,$command,$args); + +}; + 1;