Parse MODE.
This commit is contained in:
1 parent
32158289eb
commit
50716bab3b
2 files changed
+38
-14
No files matched your search
@@ -3,6 +3,7 @@ Auto IRC Bot 3.0: Change Log
|
|||||||
|
|
||||||
3.0 Indev
|
3.0 Indev
|
||||||
==================================================================
|
==================================================================
|
||||||
|
* Parse MODE.
|
||||||
* Added CertFP support.
|
* Added CertFP support.
|
||||||
* Rewrote socket read/write methods.
|
* Rewrote socket read/write methods.
|
||||||
* Added SSL support.
|
* Added SSL support.
|
||||||
|
|||||||
+37
-14
@@ -25,7 +25,7 @@ our %RAWC = (
|
|||||||
'477' => \&num477,
|
'477' => \&num477,
|
||||||
'JOIN' => \&cjoin,
|
'JOIN' => \&cjoin,
|
||||||
'KICK' => \&kick,
|
'KICK' => \&kick,
|
||||||
# 'MODE' => \&mode,
|
'MODE' => \&mode,
|
||||||
'NICK' => \&nick,
|
'NICK' => \&nick,
|
||||||
'NOTICE' => \¬ice,
|
'NOTICE' => \¬ice,
|
||||||
'PART' => \&part,
|
'PART' => \&part,
|
||||||
@@ -422,28 +422,51 @@ sub mode
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
# It's a mode, lets check if it's a status mode.
|
# It's a mode, lets check if it's a status mode.
|
||||||
my $user = shift(@ex);
|
my $nnt = 0;
|
||||||
|
foreach (keys %{ $csprefix{$svr} }) {
|
||||||
|
if ($modes =~ /($_)/) {
|
||||||
|
$nnt = 1;
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (defined $chanusers{$svr}{$chan}{$user}) {
|
if ($nnt) {
|
||||||
if ($op == 1) {
|
# It is a status mode, lets parse changes.
|
||||||
if ($chanusers{$svr}{$chan}{$user} eq 1) {
|
my $user = shift(@ex);
|
||||||
$chanusers{$svr}{$chan}{$user} = $maf;
|
|
||||||
|
if (defined $chanusers{$svr}{$chan}{$user}) {
|
||||||
|
if ($op == 1) {
|
||||||
|
if ($chanusers{$svr}{$chan}{$user} eq 1) {
|
||||||
|
$chanusers{$svr}{$chan}{$user} = $maf;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$chanusers{$svr}{$chan}{$user} .= $maf;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
elsif ($op == 2) {
|
||||||
$chanusers{$svr}{$chan}{$user} .= $maf;
|
if (length($chanusers{$svr}{$chan}{$user}) == 1) {
|
||||||
|
$chanusers{$svr}{$chan}{$user} = 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$chanusers{$svr}{$chan}{$user} =~ s/($maf)//gxsm;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elsif ($op == 2) {
|
else {
|
||||||
if (length($chanusers{$svr}{$chan}{$user}) == 1) {
|
$chanusers{$svr}{$chan}{$user} = $maf;
|
||||||
$chanusers{$svr}{$chan}{$user} = 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$chanusers{$svr}{$chan}{$user} = $maf;
|
# It is not. Lets adjust arguments accordingly.
|
||||||
|
if (defined $chanmodes{$svr}{$maf}) {
|
||||||
|
if ($chanmodes{$svr}{$maf} == 1 || $chanmodes{$svr}{$maf} == 2) { shift @ex; }
|
||||||
|
if ($chanmodes{$svr}{$maf} == 3) {
|
||||||
|
if ($op == 1) { shift @ex; }
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user