X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=Delling.pm;h=2b5eff81cdc556e1631857b46ccb3f67a1004d6c;hb=5e3d1d34e92582e05cc242356b60aeef5bc76a34;hp=e04619015f4fdb8e8a5fafc39dfb79c75a5f7580;hpb=c9c9e83da024d15fc1245bf456c197c119f23cf4;p=NDIRC.git diff --git a/Delling.pm b/Delling.pm index e046190..2b5eff8 100644 --- a/Delling.pm +++ b/Delling.pm @@ -103,7 +103,7 @@ WHERE u.hostmask = $1 AND channel = $2 AND flag IN ('o','v'); $irc->yield(mode => $channel, $mode, @who) if $mode; } - if (lc $channel ~~ lc $self->targets->{members}){ + if (lc $channel ~~ @{$self->targets->{members}}){ if (time - $last_announcement < 1){ $last_announcement = time; return; @@ -115,19 +115,7 @@ FROM users u WHERE hostmask = ? }, undef, $address); if ($user){ unless ($user->{password}) { - $irc->yield(privmsg => $self->targets->{members}, "$nick: Get a new random password with /msg delling !getpass . If you don't know your username, then you can get it with .points"); - } - if ($tick > 12 && not defined $user->{pid}){ - $irc->yield(privmsg => $self->targets->{members}, "$nick: go to https://nd.ruin.nu/ and enter your coords."); - } - - if (not defined $user->{last_forum_visit}){ - $irc->yield(privmsg => $self->targets->{members}, "$nick: Go read the forum! https://nd.ruin.nu/forum"); - }else { - my $unread = $dbh->selectrow_hashref(q{SELECT * FROM unread_posts($1)},undef,$user->{uid}); - if ($unread && $unread->{new}){ - $irc->yield(notice => $nick, "$unread->{new} posts since your last forum visit ($unread->{unread} unread posts in total) https://nd.ruin.nu/forum/allUnread"); - } + $irc->yield(privmsg => $channel, "$nick: Get a new random password with /msg delling !getpass . If you don't know your username, then you can get it with .points"); } } if (time - $last_announcement < 2){ @@ -161,31 +149,42 @@ sub refresh { SET sent = TRUE WHERE id = ANY($1) }); $scans->execute; + my @scanreqs; while (my $scan = $scans->fetchrow_hashref){ $self->message("($scan->{coords} $scan->{type})" ." http://game.planetarion.com/showscan.pl?scan_id=$scan->{scan_id}" , @{$scan->{nick}}); $sentscan->execute($scan->{id}); + push @scanreqs, @{$scan->{id}}; + } + + if (scalar @scanreqs > 0) + { + my $scanreqs = join(', ', @scanreqs); + $self->toTarget(scan => "Handled the following requests: $scanreqs"); } my @row = $dbh->selectrow_array(q{SELECT tick(), max(tick) FROM planet_stats}); if ($tick != $row[0]){ $tick = $row[0]; - $self->toTarget(def => "New tick: $tick"); } if (defined $row[1] && $stattick != $row[1]){ $stattick = $row[1]; - $self->toTarget(members => "New tick: $stattick"); + $self->toTarget(spam => "New tick: $stattick"); + my $raids = $dbh->prepare(q{UPDATE raids SET open = true WHERE NOT open AND NOT removed AND open_tick <= $1 RETURNING id}); + $raids->execute($stattick); + while (my $raid = $raids->fetchrow_hashref) { + $self->toTarget(members => "\@everyone Raid is now open: https://nd.ruin.nu/raids/view/$raid->{id}"); + } } my $ircreqs = $dbh->prepare(q{SELECT id,username,message,channel FROM irc_requests NATURAL JOIN users WHERE not sent}); my $upircreq = $dbh->prepare(q{UPDATE irc_requests SET sent = TRUE WHERE id = ?}); $ircreqs->execute; while (my $req = $ircreqs->fetchrow_hashref){ if ($req->{channel} eq 'def'){ - $self->toTarget(def => "## $req->{username} via webbie ## >> $req->{message}"); - #$self->parseCommand("~report_incs $req->{message}",$irc,$req->{username},' BATCH ',$disp->targets->{def},$dbh); + $self->toTarget(def => "> __**## $req->{username} via webbie ##**__ >> $req->{message}"); }else{ - $self->toTarget($req->{channel} => "<$req->{username} via webbie> $req->{message}"); + $self->toTarget($req->{channel} => "> <$req->{username} via webbie> $req->{message}"); } $upircreq->execute($req->{id}); } @@ -220,8 +219,7 @@ after _start => sub { }; after discord_message_create => sub { - my $self = shift; - my $hash = shift; + my ($self, $gw, $hash) = @_; my $author = $hash->{author}; my $msg = $hash->{content}; @@ -233,6 +231,9 @@ after discord_message_create => sub { my $channel = "D-".$channel_id; if (exists $self->discord_channels->{$channel_id}) { $channel = 'dm' if ($self->discord_channels->{$channel_id}->{type} == 1); + } else + { + $channel = 'dm'; } say localtime(time) . " - $channel_id $channel $author_name $author_id"; @@ -240,6 +241,7 @@ after discord_message_create => sub { my $c = NDIRC::DiscordContext->new({ discord_id => $author_name, channel_id => $channel_id, + author_id => $author_id, channel => $channel, disp => $self->disp, model => DB(),