unless ($user->{password}) {
$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 ($tick > 12 && not defined $user->{pid}){
- $irc->yield(privmsg => $channel, "$nick: go to https://nd.ruin.nu/ and enter your coords.");
- }
-
- if (not defined $user->{last_forum_visit}){
- $irc->yield(privmsg => $channel, "$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");
- }
- }
}
if (time - $last_announcement < 2){
$last_announcement = time;
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 ','#def-ndawn',$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});
}
};
after discord_message_create => sub {
- my $self = shift;
- my $hash = shift;
+ my ($self, $gw, $hash) = @_;
my $author = $hash->{author};
my $msg = $hash->{content};
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(),