X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=Delling.pm;h=e08f7910b98c8d4daf90a9c66acd616a2ae1455f;hb=3494b00f46396cfe17a7ab19de2385eb2b4df2c8;hp=362e7aac79b93846ebee164e0a27071e77e7175f;hpb=97961925ba4f37fb6f63e3d914241d6d4d8d84a2;p=NDIRC.git diff --git a/Delling.pm b/Delling.pm index 362e7aa..e08f791 100644 --- a/Delling.pm +++ b/Delling.pm @@ -1,5 +1,5 @@ #************************************************************************** -# Copyright (C) 2006 by Michael Andreen * +# Copyright (C) 2009 by Michael Andreen * # * # This program is free software; you can redistribute it and/or modify * # it under the terms of the GNU General Public License as published by * @@ -22,12 +22,14 @@ use strict; use warnings; use feature ':5.10'; +use Moose; +extends 'NDIRC::Bot'; + use POE::Session; -use NDIRC::Misc; use ND::DB; sub irc_public { - my ($sender, $heap, $who, $where, $msg) = @_[SENDER, HEAP, ARG0 .. ARG2]; + my ($self,$sender, $who, $where, $msg) = @_[OBJECT,SENDER, ARG0 .. ARG2]; my ($nick,$username,$address) = ( split /[!@]/, $who ); my $channel = $where->[0]; @@ -38,7 +40,7 @@ sub irc_public { my $seen = $dbh->prepare_cached(q{UPDATE users SET laston = NOW() WHERE hostmask = ?}); $seen->execute($address); - if ($msg =~ /^(\S+): (.+)$/ && $heap->{disp}->has_command('anon',$channel)){ + if ($msg =~ /^(\S+): (.+)$/ && $self->disp->has_command('anon',$channel)){ my $_ = $1; my $text = $2; unless ($irc->is_channel_member($channel,$1) || /(Constructing|Researching)/){ @@ -46,14 +48,14 @@ sub irc_public { } } - if (parseCommand($msg,$irc,$nick,$address,$channel,$heap->{disp},$dbh)){ + if ($self->parseCommand($msg,$irc,$nick,$address,$channel,$dbh)){ #Command parsed and run successfully } } sub irc_msg { - my ($sender, $heap, $who, $where, $msg) = @_[SENDER, HEAP, ARG0 .. ARG2]; + my ($self,$sender, $who, $where, $msg) = @_[OBJECT,SENDER, ARG0 .. ARG2]; my ($nick,$username,$address) = ( split /[!@]/, $who ); my $irc = $sender->get_heap(); @@ -61,7 +63,7 @@ sub irc_msg { my $seen = $dbh->prepare_cached(q{UPDATE users SET laston = NOW() WHERE hostmask = ?}); $seen->execute($address); - if (parseCommand($msg,$irc,$nick,$address,'pm',$heap->{disp},$dbh)){ + if ($self->parseCommand($msg,$irc,$nick,$address,'pm',$dbh)){ #Command parsed and run successfully }else{ $irc->yield(notice => $nick, "unknown command"); @@ -69,7 +71,7 @@ sub irc_msg { } sub irc_join { - my ($sender, $heap, $who, $channel) = @_[SENDER, HEAP, ARG0 .. ARG1]; + my ($self,$sender, $who, $channel) = @_[OBJECT,SENDER, ARG0 .. ARG1]; my ($nick,$username,$address) = ( split /[!@]/, $who ); my $irc = $sender->get_heap(); @@ -77,7 +79,7 @@ sub irc_join { my $seen = $dbh->prepare_cached(q{UPDATE users SET laston = NOW() WHERE hostmask = ?}); $seen->execute($address); - if($heap->{disp}->has_command('voice',$channel)){ + if($self->disp->has_command('voice',$channel)){ my $flags = $dbh->prepare_cached(q{ SELECT DISTINCT flag FROM users u