* Parse NICK.
* Do not import API::IRC subroutines to Parser::IRC, instead use the class. * Added usrc() to API::IRC for formatting a source.
This commit is contained in:
1 parent
e872082eb9
commit
512c351577
3 files changed
+44
-10
No files matched your search
@@ -3,6 +3,8 @@ Auto IRC Bot 3.0: Change Log
|
|||||||
|
|
||||||
3.0 Indev
|
3.0 Indev
|
||||||
==================================================================
|
==================================================================
|
||||||
|
* Parse NICK.
|
||||||
|
* Added usrc() to API::IRC for formatting a source.
|
||||||
* Added awarn() to API::Std for warnings.
|
* Added awarn() to API::Std for warnings.
|
||||||
* Parse Numeric:432.
|
* Parse Numeric:432.
|
||||||
* Parse Numeric:433.
|
* Parse Numeric:433.
|
||||||
|
|||||||
+17
-1
@@ -9,7 +9,7 @@ use warnings;
|
|||||||
use Exporter;
|
use Exporter;
|
||||||
|
|
||||||
our @ISA = qw(Exporter);
|
our @ISA = qw(Exporter);
|
||||||
our @EXPORT_OK = qw(cjoin cpart cmode privmsg notice quit nick);
|
our @EXPORT_OK = qw(cjoin cpart cmode privmsg notice quit nick usrc);
|
||||||
|
|
||||||
|
|
||||||
# Join a channel.
|
# Join a channel.
|
||||||
@@ -91,3 +91,19 @@ sub quit
|
|||||||
delete $Parser::IRC::botnick{$svr} if (defined $Parser::IRC::botnick{$svr});
|
delete $Parser::IRC::botnick{$svr} if (defined $Parser::IRC::botnick{$svr});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Get nick, ident and host from a <nick>!<ident>@<host>
|
||||||
|
sub usrc
|
||||||
|
{
|
||||||
|
my ($ex) = @_;
|
||||||
|
|
||||||
|
my @si = split('!', $ex);
|
||||||
|
my @sii = split('@', $si[1]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
nick => $si[0],
|
||||||
|
ident => $si[1],
|
||||||
|
host => $sii[1]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
+25
-9
@@ -6,14 +6,15 @@
|
|||||||
package Parser::IRC;
|
package Parser::IRC;
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use API::Std qw(conf_get err);
|
use API::Std qw(conf_get err awarn);
|
||||||
use API::IRC qw(cjoin nick quit);
|
use API::IRC;
|
||||||
|
|
||||||
# Raw parsing hash.
|
# Raw parsing hash.
|
||||||
our %RAWC = (
|
our %RAWC = (
|
||||||
'001' => \&num001,
|
'001' => \&num001,
|
||||||
'432' => \&num432,
|
'432' => \&num432,
|
||||||
'433' => \&num433,
|
'433' => \&num433,
|
||||||
|
'NICK' => \&nick,
|
||||||
);
|
);
|
||||||
|
|
||||||
# Variables for various functions.
|
# Variables for various functions.
|
||||||
@@ -63,11 +64,11 @@ sub num001
|
|||||||
# For single-line ajoins.
|
# For single-line ajoins.
|
||||||
my @sajoin = split(',', $cajoin[0]);
|
my @sajoin = split(',', $cajoin[0]);
|
||||||
|
|
||||||
cjoin($svr, $_) foreach (@sajoin);
|
API::IRC::cjoin($svr, $_) foreach (@sajoin);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
# For multi-line ajoins.
|
# For multi-line ajoins.
|
||||||
cjoin($svr, $_) foreach (@cajoin);
|
API::IRC::cjoin($svr, $_) foreach (@cajoin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,7 +83,7 @@ sub num432
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
err(2, "Got error from server[".$svr."] before 001: Erroneous nickname. Closing connection.", 0);
|
err(2, "Got error from server[".$svr."] before 001: Erroneous nickname. Closing connection.", 0);
|
||||||
quit($svr, "An error occurred.");
|
API::IRC::quit($svr, "An error occurred.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -93,8 +94,23 @@ sub num433
|
|||||||
my ($svr, undef) = @_;
|
my ($svr, undef) = @_;
|
||||||
|
|
||||||
if (defined $botnick{$svr}) {
|
if (defined $botnick{$svr}) {
|
||||||
nick($svr, $botnick{$svr}."_");
|
API::IRC::nick($svr, $botnick{$svr}."_");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Parse: NICK
|
||||||
|
sub nick
|
||||||
|
{
|
||||||
|
my ($svr, @ex) = @_;
|
||||||
|
|
||||||
|
my %src = API::IRC::usrc(substr($ex[0], 1));
|
||||||
|
|
||||||
|
# Check if this is coming from ourselves, meaning a forced nick change.
|
||||||
|
if ($src{nick} eq $botnick{$svr}) {
|
||||||
|
# It is a forced nick change.
|
||||||
|
awarn(3, "Incoming NICK from myself?");
|
||||||
|
$botnick{$svr} = $ex[2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
Reference in new issue
Block a user