1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
# madoka 4.2 cl_join
#
# client/join.mpi
# Copyright(c)1998- cookie / The madoka project
#
sub cl_join {
my($pr, $cl_no) = @_;
my($chan, $key) = split(/\s+/, $pr);
my(@ch, @key, $n) = ();
if ($chan =~ /^0\s*$/) {
&send('sv', "JOIN 0 \n");
} else {
@key = split(/,/, $key);
if ($chan =~ /,/) {
@ch = &chl_split($chan);
} else {
$ch[0] = $chan;
}
$n = 0;
foreach (@ch) {
($chanr, $chanv) = &alias_chan($_);
unless (&check_chan($chanr)) {
&send('cch', "NOTICE $us_nick :" .
&mio('CLIENT_JOIN', "JOIN: wrong channel name($_)") . "\n",
$cl_no);
$n++;
next;
}
unless (&list_exist($chl, $chanr)) {
$at_key{$chanr} = $key[$n] if $key[$n];
&list_add($chl_autojoin, $chanr);
if ($at_key{$chanr}) {
&send('sv', "JOIN $chanr $at_key{$chanr} \n");
} else {
&send('sv', "JOIN $chanr \n");
}
} else {
&mes("[cl_join] already joined: $chanr\n", 'D');
}
$n++;
}
}
}
|