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
|
# madoka 4.2 sv_join
#
# server/join.mpi
# Copyright(c)1998- cookie / The madoka project
#
sub sv_join {
my($from, $chan) = @_;
my $wm;
($chan, $wm) = split(/\007/, $chan) if $chan =~ /\007/;
my($chanr, $chanv) = &alias_chan($chan);
&list_init($ls_mem{$chanr}) if $from eq $us_nick;
if ($wm) {
&list_add($ls_mem{$chanr}, "\@$from") if $wm =~ /o/;
&list_add($ls_mem{$chanr}, "\+$from") if $wm =~ /v/;
&mes("+ $from($where) to $chanv with +$wm\n", $chanr);
&send('cch', ":$from!$where JOIN $chanr\007$wm \n");
} else {
&list_add($ls_mem{$chanr}, $from) if $from ne $us_nick;
&mes("+ $from($where) to $chanv\n", $chanr);
&send('cch', ":$from!$where JOIN $chanr \n");
}
if ($from eq $us_nick) {
$cl_chan{$chanr} = '';
&list_add($chl, $chanr);
$cl_chan = '';
$time_count{$chanr} = $yr_timer if &list_exist($plugin_list, 'yuurii');
$newtopic = 1;
if ($chanr =~ /^!.....(.+)/) {
if (defined($log_name{"!$1"})) {
$log_handle{$chanr} = $log_handle{"!$1"};
$log_name{$chanr} = $log_name{"!$1"};
}
}
} else {
$cl_chan = $cl_chan{$chanr};
&check_modes($chanr) if !$wm && vec($at_state, 2, 1);
&sendSCL("$mes_priv{$chanr}", $from) if defined($mes_priv{$chanr});
&plugin('JOIN', $chanr, $from, '');
}
}
|