]> ruin.nu Git - NDIRC.git/blobdiff - Delling.pm
T2 is 70% and T3 is 50% now
[NDIRC.git] / Delling.pm
index e04619015f4fdb8e8a5fafc39dfb79c75a5f7580..feb1d80cec65ca7b90425c075fc79a74c5552142 100644 (file)
@@ -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 => "<c04>## $req->{username} via webbie ## >></c> $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,13 +231,21 @@ 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";
+       if ($channel eq 'dm')
+       {
+               say " - '$msg'";
+       }
 
        my $c = NDIRC::DiscordContext->new({
                        discord_id => $author_name,
                        channel_id => $channel_id,
+                       author_id => $author_id,
                        channel => $channel,
                        disp => $self->disp,
                        model => DB(),