beim flooding und automatischen knebeln wir keine zeit angezeigt
da steht nur:
der code lautet:
da steht nur:
der code lautet:
Quellcode
- sub text_handler
- {
- my($self,$main,$command,$text) = @_;
- my @ret=();
- if (my $error=check_floodming($main))
- {
- return $error;
- }
- elsif (my $error=check_gagged($main))
- {
- return $error;
- }
- else
- {
- my @points = split(/\s/,$text);
- my $count = 0;
- my $count2 = 0;
- foreach (@points)
- {
- if ($count < 2.01)
- {
- $count = $count+0.2;
- }
- }
- my $user = $main->{current_user};
- my $points = $user->{points};
- my $flood = $user->{flood};
- $main->loadUser($user->{name},$user);
- $user->{points} = $points + $count;
- $count2 = $main->{runtime}{now}-$user->{lasttalk}+1;
- if ($count2 < '5')
- {
- $user->{flood}++;
- }
- elsif ($user->{flood} > '-1' && $count2 > '5')
- {
- $user->{flood}--;
- }
- else
- {
- $user->{flood}=0;
- }
- $main->saveUser($user);
- }
- if ($main->{current_user}{away})
- {
- $main->{current_user}{away} = 0;
- my $output = $main->createInfoOutput('awayoff',{nick => $main->{current_user}{nick}});
- push @ret, $output->restrictToUser->restrictToCurrentRoom->setChangedAttributes('away');
- }
- my @to=();
- my @words = split(/\s/,$text);
- my $changed = 0;
- my $i=$#words;
- while ($i>=0 && $words[$i] =~ /^\@[^@]+$/)
- {
- $i--;
- }
- unshift(@words,splice(@words,$i+1));
- while ($words[0] =~ /^[^:]+:$/ || $words[0] =~ /^\@[^@]+$/)
- {
- $words[0] =~ s/\:$//;
- $words[0] =~ s/^\@//;
- my $candidates = $main->getPossibleOnlineUsers($words[0],$main->{current_user}{room});
- if ($#$candidates<0)
- {
- push @ret,$main->createErrorOutput('notinroom',{nick => $words[0]});
- }
- elsif ($#$candidates>0)
- {
- push @ret,$main->createErrorOutput('ambiguousname',{nick => $words[0]});
- }
- else
- {
- push @to, $candidates->[0]{nick};
- $changed = 1;
- }
- shift(@words);
- }
- $text=join(' ',@words) if ($changed);
- if ($text ne "")
- {
- my $output = $main->createOutput(
- {
- template => $command eq ''?'text':'admin',
- name => $main->{current_user}{name},
- nick => $main->{current_user}{nick},
- color => $main->{current_user}{color},
- text => $main->toHTML($text),
- '*' => \@to,
- });
- push @ret,$output->restrictToCurrentRoom;
- }
- return \@ret;
- }
- sub check_floodming
- {
- my $main = shift;
- if ($main->{current_user}{tempgroup} < "1")
- {
- my $user = $main->{current_user};
- if (4 < $user->{flood} && $user->{warn} ne "1" && $main->{runtime}{now} > $user->{warn})
- {
- $main->loadUser($user->{name},$user);
- $user->{flood} = 0;
- $user->{warn} = $main->{runtime}{now} + 900;
- $main->saveUser($user);
- my @blah=();
- push @blah,$user->{nick};
- return [$main->createOutput(
- {
- template => 'admin',
- name => '',
- nick => $main->{settings}{chatname},
- color => '#00000',
- font => 'Verdana',
- text => 'Hey! Lass es lieber....!',
- '*' => \@blah,
- })];
- }
- elsif (4 < $user->{flood} && $main->{runtime}{now} < $user->{warn})
- {
- $main->loadUser($user->{name},$user);
- $user->{flood} = 0;
- $user->{warn} = 1;
- $user->{gagtime} = $main->{runtime}{now}+5*60;
- $main->saveUser($user);
- return [$main->createInfoOutput('gagged',{admin => $main->{settings}{chatname}, nick => $user->{nick}, minuten => '5',})->restrictToCurrentRoom];
- }
- elsif (4 < $user->{flood} && $user->{warn} eq "1")
- {
- my $points = $user->{points};
- my $removed = 100;
- $main->loadUser($user->{name},$user);
- $user->{flood} = 0;
- $user->{warn} = 0;
- $user->{points} = $points - $removed;
- $user->{gagtime} = $main->{runtime}{now}+5*60;
- $main->saveUser($user);
- return [$main->createInfoOutput('flooding',{chat => $main->{settings}{chatname}, points => $removed, nick => $user->{nick}, minuten => '5',})->restrictToCurrentRoom];
- }
- }
- }
- sub away_handler