use POE::Session;
use ND::DB;
+use NDIRC::DiscordContext;
+
my ($tick,$stattick) = (0,0);
my $last_announcement = 0;
my $nickname = $irc->nick_name;
if ($msg =~ /^(\S+): (.+)$/ && $self->disp->has_command('anon',$channel)){
- my $_ = $1;
+ local $_ = $1;
my $text = $2;
unless ($irc->is_channel_member($channel,$1) || /(Constructing|Researching)/){
$msg = ".anon $_ $text";
FROM users u WHERE hostmask = ?
}, undef, $address);
if ($user){
- if ($user->{password} eq ''){
+ unless ($user->{password}) {
$irc->yield(privmsg => $disp->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}){
($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}.'#'.$author->{discriminator};
+ my $author_id = $author->{id};
+ return if $author->{'id'} eq $self->discord_id; # Ignore my own messages
+
+ my $channel = "D-".$channel_id;
+ if (exists $self->discord_channels->{$channel_id}) {
+ $channel = 'dm' if ($self->discord_channels->{$channel_id}->{type} == 1);
+ }
+
+ say localtime(time) . " - $channel_id $channel $author_name $author_id";
+
+ my ($p,$command,$args) = ($msg =~ /^([.!~])(\S+)(?: (.+))?/);
+
+
+ return 0 unless $self->disp->has_command($command,$channel);
+
+ say localtime(time) . " - $msg";
+
+ my $c = NDIRC::DiscordContext->new({
+ discord_id => $author_name,
+ channel_id => $channel_id,
+ channel => $channel,
+ disp => $self->disp,
+ model => DB(),
+ discord => $self->discord,
+ });
+
+ return $self->disp->run_command($c,$command,$args);
+
+};
+
1;