sub command { $_[0] = $_[0] . ' '; $_[0] = substr($_[0], 1, length($_[0]) - 1); my(@cmd) = split(/ /, $_[0], 0); my $cmd = substr($_[0], 0, index($_[0], ' ')); my $tmp = $_[1]; sub lock { my $method = shift @_; open RSTAT, "data/online/rstat/$room"; my(@r_stat) = ; close RSTAT; my $lock = "0\n"; if ($room eq $standardroom) { &post($room, '' . ×tring . " $alias sperrt den Raum ohne Erfolg ab ...", $alias); } else { if ($r_stat[0] == 0) { $lock = "1\n"; &post($room, '' . ×tring . " $alias sperrt den Raum ab ...", $alias) if $method ne 'separee'; } else { &post($room, '' . ×tring . " $alias sperrt den Raum auf ...", $alias) if $method ne 'separee'; } for ($i = 1; $i <= $#r_stat; ++$i) { $lock = $lock . $r_stat[$i]; } open RSTAT, ">data/online/rstat/$room"; print RSTAT $lock; close RSTAT; } &reload_html; } if ($cmd eq 'about') { &post_prv($alias, "Aktuelle Version ist $title und wurde am $datum aktuallisiert. Programmiert von Paul C. B\374tow (2000 - 2001)."); &reload_html; } elsif ($cmd eq 'away') { for ($i = 1; $i <= $#cmd; ++$i) { $away_msg = $away_msg . ' ' . $cmd[$i]; } my $room = &get_room($alias); if ($tmp eq 'autoaway') { $away_msg = "$alias wurde vom System agbemeldet ..."; &post($room, '' . ×tring . " Das System meldet $alias wegen Inaktivität ab ...", $alias); } else { &post($room, '' . ×tring . " $alias meldet sich ab ($away_msg ) ...", $alias); } open AWAY, ">>data/online/rstat/$room.away"; print AWAY "$alias<;$away_msg\n"; close AWAY; &private_javascript($alias, $room, q[parent.input.document.inf.tmp.value = 'away'; parent.online.location.reload();]); &reload_html; } elsif ($cmd eq 'clear') { &post_prv($alias, ""); &reload_html; } elsif ($cmd eq 'col') { my $col, $secol; if ($cmd[1] ne undef) { $col = $cmd[1]; &prove_color($alias, $col); my $tmpsecol = $cmd[2]; my $length = length $tmpsecol; if ($tmpsecol eq '' or $length < 6 or $length > 6) { $secol = $col; } else { $secol = $tmpsecol; } } else { $col = &random_color; $secol = &random_color; } open OPTIONS, "; close OPTIONS; open OPTIONS, ">data/user/options/$alias"; print OPTIONS $options[0] . $col . "\n" . $secol; close OPTIONS; &post($room, '' . ×tring . " $alias hat die Farbe gewechselt...", $alias); &private_javascript($alias, $room, "parent.input.document.inf.col.value = '$col'; parent.input.document.inf.secol.value = '$secol';"); &post_strmsg($alias, $room, 'col', "$col;$secol"); &reload_html; } elsif ($cmd eq 'date') { my($secs, $mins, $hours, $days, $months, $years) = &timearray; &post_prv($alias, "Heute ist der $days.$months. Jahr $years. Es ist genau $hours:$mins Uhr und $secs Sekunden."); &reload_html; } elsif ($cmd eq 'exit') { my $room = &get_room($alias); if ($tmp eq 'autologout') { &private_javascript($alias, $room, q[open('chat?request=start&tmp=autologout','_top');]); &post($room, '' . ×tring . " Das System loggt $alias wegen Inaktivität aus ... ", $alias); } else { &post($room, '' . ×tring . " $alias loggt sich ganz aus ... ", $alias); &private_javascript($alias, $room, q[open('chat?request=start&tmp=quit','_top');]); } &rm_alias($alias, $room); &rm_away($alias, $room); &reload_html; } elsif ($cmd eq 'hits' or $cmd eq 'uptime') { &post_prv($alias, "Uptime: $startime " . &calculate_uptime_hours($STARTIME) . "h; $HITS Hits; " . &calculate_hpm($HITS, $STARTIME) . ' Hits pro Minute'); &reload_html; } elsif ($cmd eq 'ig') { my $alias2ignore = $cmd[1]; if ($alias2ignore) { if (-f "data/user/options/$alias2ignore") { &post_strmsg($alias, $room, 'ig', $alias2ignore); } else { &post_prv($alias, "$alias2ignore existiert nicht in der Datenbank!"); } } else { &post_strmsg($alias, $room, 'igl'); } &reload_html; } elsif ($cmd eq 'j' or $cmd eq 'sep') { if ($cmd[1] =~ /\W/ or $cmd[1] eq '') { &post_prv($alias, "Der Raum $cmd[1] enth\344lt illegale Zeichen!"); &reload_html; } else { if ($cmd eq 'j') { &change_room('j', $cmd[1], $room); &reload_html; } else { if ($cmd[1] eq $standardroom) { &post_prv($alias, "Der Raum $cmd[1] ist ein Standardraum und kann nicht als Separee eröffnet werden!"); } else { &change_room('sep', $cmd[1], $room); &lock('separee'); } &reload_html; } } } elsif ($cmd eq 'me' or $cmd eq 'm') { my $me_msg; for ($i = 1; $i <= $#cmd; ++$i) { $me_msg = $me_msg . ' ' . $cmd[$i]; } $me_msg =~ s[/me/][$alias]g; $me_msg =~ s[/m/][$alias]g; if ($cmd eq 'm') { &post($room, "$alias $me_msg", $alias); } else { &post($room, "$alias $me_msg", $alias); } &reload_html; } elsif ($cmd eq 'memo') { my $alias2memo = $cmd[1]; my($secs, $mins, $hours, $days, $months, $years) = &timearray; if (-f "data/user/options/$alias2memo") { my $memo_msg; for ($i = 2; $i <= $#cmd; ++$i) { $memo_msg = $memo_msg . ' ' . $cmd[$i]; } &post_prv($alias, "$alias2memo wurde folgende memo erfolgreich hinterlassen: $memo_msg"); open MEMO, ">>data/user/memos/$alias2memo"; print MEMO "($days.$months.$years - $hours:$mins:$secs) $alias hat Dir eine Memo hinterlassen: $memo_msg
\n"; close MEMO; &reload_html; } &post_prv($alias, "$alias2memo existiert in der Datenbank nicht !"); &reload_html; } elsif ($cmd eq 'menu') { &private_javascript($alias, $room, "window.open('chat?request=htdocs&alias=$alias&var=menu_html&room=$standardroom&col=$col&secol=$secol&tmpid=$tmpid','_new','width=500,height=500,screenX=100,screenY=100,scrollbars');"); &reload_html; } elsif ($cmd eq 'online') { my $alias2prove = $cmd[1]; if (-f "data/user/options/$alias2prove") { open ONLINE, "; close ONLINE; my $totaltime = sprintf('%.2f', $online / 3600); &post_prv("$alias", "$alias2prove war insgesamt schon $totaltime Stunden online!"); } else { &post_prv("$alias", "$alias2prove existiert nicht in der Benutzerdatenbank!"); } &reload_html; } elsif ($cmd eq 'q') { &post($room, '' . ×tring . " $alias verlässt den Chat ... ", $alias); &post_strmsg($alias, $room, 'quit'); unlink "data/online/rooms/$room/$alias"; &rm_rstat($alias, $room); &rm_away($alias, $room); &check_online; &reload_html; } elsif ($cmd eq 'rmgb') { &post($room, '' . ×tring . " $alias l\366scht das eigene G\344stebuch ...", $alias); unlink "data/user/gbooks/$alias"; &reload_html; } elsif ($cmd eq 's') { my $msg2scream; for ($i = 1; $i <= $#cmd; ++$i) { $msg2scream = $msg2scream . ' ' . $cmd[$i]; } $msg2scream =~ s/\344/\304/g; $msg2scream =~ s/\366/\326/g; $msg2scream =~ s/\374/\334/g; $msg2scream = "\U$msg2scream\E"; &post($room, "$alias schreit: $msg2scream", $alias); &reload_html; } elsif ($cmd eq 'seen') { my $alias2prove = $cmd[1]; if (-f "data/user/options/$alias2prove") { if (-f "data/user/lastlogin/$alias2prove") { open LASTLOGIN, "; close LASTLOGIN; my $timestamp = sprintf('%.2f', (time - $lastlogin) / 3600); &post_prv("$alias", "$alias2prove hat sich vor $timestamp Stunden zuletzt in das System eingeloggt!"); } else { &post_prv("$alias", "$alias2prove hat sich seit der Einf\374hrung dieses Befehls noch nie eingeloggt!"); } } else { &post_prv("$alias", "$alias2prove exsistiert nicht in der Benutzerdatenbank!"); } &reload_html; } elsif ($cmd eq 'selfkill') { &post($room, q[] . ×tring . " $alias entfernt sich ganz und gar aus dem System und loggt sich aus ... ", $alias); &private_javascript($alias, $room, q[open('chat?request=start&tmp=selfkill','_top');]); &kill_alias($alias); &reload_html; } elsif ($cmd eq 'w') { my $theme = &get_theme($room); my $door = '[Abgesperrt!]' if $rstat[0] eq "1\n"; my($is, $nr) = ('t', 0); my $persons; opendir DIR, "data/online/rooms/$room"; my(@dir) = readdir DIR; closedir DIR; foreach $_ (@dir) { if (-f "data/online/rooms/$room/$_") { $persons = $persons . ' ' . $_; ++$nr; } } &post_prv($alias, "Der aktuelle Raum: $room $theme $door ($nr): $persons"); &reload_html; } elsif ($cmd eq 'wc' or $cmd eq 'wc/') { my $raum = $cmd[1]; my $persons; if ($raum eq '' and $cmd eq 'wc') { opendir USERS, 'data/online/users'; my(@users) = readdir USERS; close USERS; foreach $_ (@users) { $persons = $persons . ' ' . $_ if -f "data/online/users/$_"; } my $nr = $#users - 1; my($nrs, $is) = ('', 'ist'); if ($nr != 1) { $nrs = 'en'; $is = 'sind'; } &post_prv("$alias", "$nr Person$nrs $is insgesamt eingeloggt: $persons"); } elsif ($raum eq '' and $cmd eq 'wc/') { my $msg2post; opendir DIR, 'data/online/rooms'; my(@dir) = readdir DIR; closedir DIR; foreach $_ (@dir) { if (-e "data/online/rooms/$_" and $_ ne '..' and $_ ne '.') { opendir DIR, "data/online/rooms/$_"; my(@dir2) = readdir DIR; closedir DIR; open RSTAT, "; close RSTAT; chomp $rstat[1]; my $door = '[Abgesperrt!]' if $rstat[0] eq "1\n"; my $nr = $#dir2 - 1; $msg2post = $msg2post . "$_ $door ($nr) [" . $rstat[1] . q(]: ); foreach $chatter (@dir2) { $msg2post = $msg2post . "$chatter " if -f "data/online/rooms/$_/$chatter"; } print ''; } } &post_prv($alias, "Folgende Räume sind offen:$msg2post
"); } elsif ($raum ne '') { my $persons; opendir DIR, "data/online/rooms/$raum"; my(@dir) = readdir DIR; closedir DIR; foreach $_ (@dir) { $persons = $persons . ' ' . $_ if -f "data/online/rooms/$raum/$_"; } my($nr, $is) = ($#dir - 1, 't'); if ($nr != 1) { $nrs = 'en'; $is = 'n'; } &post_prv($alias, " $nr Person$nrs befinde$is sich im Raum $raum $persons"); } &reload_html; } elsif ($cmd eq 'wj' or $cmd eq 'ju') { my $alias2search = $cmd[1]; my $roomofalias = &get_room($alias2search); if ($roomofalias) { if ($cmd eq 'wj') { &post_prv($alias, "$alias2search befindet sich im Raum $roomofalias !"); } else { &change_room('ju', $roomofalias, $room, $alias2search); } } else { &post_prv($alias, "$alias2search ist nicht eingeloggt!"); } &reload_html; } elsif (1 <= &hierachie($alias, $room)) { if ($cmd eq 'l') { &lock; } elsif ($cmd eq 'su') { my $alias2su = $cmd[1]; opendir DIR, "data/online/rooms/$room"; my(@dir) = readdir DIR; closedir DIR; foreach $_ (@dir) { if ($_ eq $alias2su) { open DATEI, "; close DATEI; if (1 <= hierachie($alias2su, $room)) { &post_prv($alias, "$alias2su kann nicht zum Raumbesetzer ernannt werden. (Ist bereits RB, W\304 oder OW)"); &reload_html; } open RSTAT, ">>data/online/rstat/$room"; print RSTAT "$alias2su<;1\n"; close RSTAT; &post($room, q[] . ×tring . " $alias verleiht $alias2su Raumbesetzerrechte ...", $alias); &reload_html; } } &post_prv($alias, "$alias2su kann nicht zum Raumbesetzer ernannt werden. (Ist nicht anwesend)"); &reload_html; } elsif ($cmd eq 'rsu') { my $alias2rsu = $cmd[1]; if (1 == hierachie($alias2rsu, $room)) { &rm_rstat($alias2rsu, $room); &post($room, '' . ×tring . " $alias entzieht $alias2rsu die Raumbesetzerrechte ...", $alias); } else { &post_prv($alias, "$alias2rsu ist gar kein Raumbesetzer!"); } &reload_html; } elsif ($cmd eq 't') { open RSTAT, "data/online/rstat/$room"; my(@r_stat) = ; close RSTAT; my $theme; if ($cmd[1] ne undef) { for ($i = 1; $i <= $#cmd; ++$i) { $theme = $theme . ' ' . $cmd[$i]; } &post($room, q[] . ×tring . qq[ $alias gibt dem Raum das Thema "$theme" ...], $alias); } else { &post($room, '' . ×tring . " $alias l\366scht das Thema des Raums ...", $alias); } $theme = $r_stat[0] . $theme . "\n"; for ($i = 2; $i <= $#r_stat; ++$i) { $theme = $theme . $r_stat[$i] . "\n"; } open RSTAT, ">data/online/rstat/$room"; print RSTAT $theme; close RSTAT; &reload_html; } elsif (3 <= &hierachie($alias)) { if ($cmd eq 'ban' or $cmd eq 'banip') { my $alias2ban = $cmd[1]; my $hierachie = &hierachie($alias2ban); open BAN, '; close BAN; if ($cmd[1] eq undef) { my $nr = @ban; my $banned; foreach $_ (@ban) { chomp $_; $banned .= " $_"; } &post_prv($alias, "Folgende Benutzer sind verbannt [$nr]: $banned"); &reload_html; } elsif (-f "data/user/options/$alias2ban") { if (3 <= $hierachie eq 'wa') { &post_prv($alias, "$alias2ban kann nicht verbannt werden!"); &reload_html; } if ($cmd eq 'ban') { if (&add_entry($alias2ban, 'ban') == 1) { &post($room, '' . ×tring . " $alias verbannt $alias2ban aus dem Chat ...", $alias); } else { &post_prv($alias, "$alias2ban ist bereits verbannt!"); } } elsif ($cmd eq 'banip') { open DATEI, "; close DATEI; chomp $ipnr; if (add_entry("ip://$ipnr", 'ban') == 1) { &post_prv($alias, "IP-Nummer von $alias2ban ($ipnr) wurde verbannt!"); } else { &post_prv($alias, "Die IP-Nummer $ipnr von $alias2ban ist bereits verbannt!"); } &reload_html; } &reload_html; } &post_prv($alias, "$alias2ban kann nicht verbannt werden, da Benutzername nicht existiert!"); &reload_html; } elsif ($cmd eq 'rban' or $cmd eq 'rbanip') { my $alias2rban = $cmd[1]; open BAN, '; close BAN; foreach $ban (@ban) { if (&rm_entry($alias2rban, 'ban') == 1) { if ($alias2rban =~ /ip:/) { &post_prv($alias, "Die IP-Nummer $alias2rban wurde aus der Banliste ausgetragen!"); } else { &post($room, '' . ×tring . " $alias entbannt $alias2rban ...", $alias); } &reload_html; } } &post_prv($alias, "$alias2rban ist nicht verbannt!"); &reload_html; } elsif ($cmd eq 'img') { my $hierachie = &hierachie($alias); &hierachie_rm($alias); if ($hierachie % 2 > 0) { &post_prv($alias, q[Dein Superuserlogo wurde versteckt!]); &hierachie_add($alias, $hierachie + 1); } else { &post_prv("$alias", q[Dein Superuserlogo wurde wieder sichtbar gemacht!]); &hierachie_add($alias, $hierachie - 1); } &reload_html; } elsif ($cmd eq 'ip') { my $alias2prove = $cmd[1]; opendir DIR, 'data/online/ident'; my(@dir) = readdir DIR; closedir DIR; foreach $_ (@dir) { if ($_ eq $alias2prove) { open DATEI, "; close DATEI; chomp $ipnr; &post_prv($alias, "$_ hat die IP-Nummer $ipnr !"); } } &reload_html; } elsif ($cmd eq 'k' or $cmd eq 'o') { my $alias2kick = $cmd[1]; if (-f "data/online/users/$alias2kick") { opendir DIR, 'data/online/rooms'; my(@dir) = readdir DIR; closedir DIR; foreach my $raum (@dir) { opendir DIR, "data/online/rooms/$raum"; my(@dir2) = readdir DIR; closedir DIR; foreach my $chatter (@dir2) { if ($chatter eq $alias2kick) { my $hierachie2 = &hierachie($alias2kick); if (&hierachie($alias) <= &hierachie($alias2kick)) { &post_prv($alias, "$alias2kick besitzt einen höheren oder gleichen Rang und kann nicht gekickt/ausgeloggt werden!"); } else { if ($cmd eq 'k') { &post_prv($alias2kick, ''); } else { &post_prv($alias2kick, ''); } $_ = undef if $room eq $raum; if ($cmd eq 'k') { &post($room, '' . ×tring . " $alias katapultiert $alias2kick aus dem Chat ...", $alias, $raum); } else { &post($room, '' . ×tring . " $alias loggt $alias2kick aus dem Chat aus ...", $alias, $alias); } &rm_alias($alias2kick, $raum); &check_online; } &reload_html; } } } } &post_prv($alias, "$alias2kick ist nicht anwesend und kann nicht aus dem System katapultiert werden werden!"); &reload_html; } elsif ($cmd eq 'sl') { my $sl_room = $cmd[1]; if (-e "data/online/rooms/$sl_room") { my $lock = "0\n"; open RSTAT, "; close RSTAT; if ($r_stat[0] == 0) { $lock = "1\n"; &post($room, '' . ×tring . " $alias sperrt den Raum $sl_room von aussen ab ...", $alias, $sl_room); } else { &post($room, '' . ×tring . " $alias sperrt den Raum $sl_room von aussen auf ...", $alias, $sl_room); } for ($i = 1; $i <= $#r_stat; ++$i) { $lock = $lock . $r_stat[$i]; } open RSTAT, ">data/online/rstat/$sl_room"; print RSTAT $lock; close RSTAT; } else { &post_prv($alias, "Der Raum $sl_room existiert nicht!"); } &reload_html; } elsif ($cmd eq 'ss') { my $ss_room = $cmd[1]; if (-e "data/online/rooms/$ss_room") { my $ss_msg; for ($i = 2; $i <= $#cmd; ++$i) { $ss_msg = $ss_msg . ' ' . $cmd[$i]; } my $msg2scream = "\U$ss_msg\E"; &post($room, q[] . ×tring . " $alias ruft in den Raum $ss_room hinein: $msg2scream ...", $alias, $ss_room); &reload_html; } else { &post_prv($alias, "Der Raum $ss_room existiert nicht!"); } &reload_html; } elsif ($cmd eq 'st') { my $st_room = $cmd[1]; if (-e "data/online/rooms/$st_room") { my $theme; if ($cmd[2] ne undef) { for ($i = 1; $i <= $#cmd; ++$i) { $theme = $theme . ' ' . $cmd[$i]; } &post($room, '' . ×tring . qq[ $alias gibt dem Raum $st_room das Thema "$theme" ...], $alias, $st_room); } else { &post($room, '' . ×tring . " $alias l\366scht das Thema des Raums $st_room ...", $alias, $st_room); } open RSTAT, "; close RSTAT; $theme = $r_stat[0] . $theme . "\n"; for ($i = 2; $i <= $#r_stat; ++$i) { $theme = $theme . $r_stat[$i]; } open RSTAT, ">data/online/rstat/$st_room"; print RSTAT $theme; close RSTAT; } else { &post_prv($alias, "Der Raum $st_room existiert nicht!"); } &reload_html; } elsif (5 <= &hierachie($alias)) { if ($cmd eq 'kill') { my $alias2kill = $cmd[1]; if (-f "data/user/options/$alias2kill") { if (5 <= &hierachie($alias2kill)) { &post_prv($alias, "$alias2kill hat einen höheren Rang und kann nicht aus dem System entfernt werden !"); } else { &post($room, '' . ×tring . " $alias2kill existiert nicht in der Datenbank!"); } &reload_html; } elsif ($cmd eq 'sys') { my $sys_msg; for ($i = 1; $i <= $#cmd; ++$i) { $sys_msg = $sys_msg . ' ' . $cmd[$i]; } $sys_msg = q[] . ×tring . " SYSTEMNACHRICHT: $sys_msg ..."; opendir ROOMS, 'data/msgs'; my(@rooms) = readdir ROOMS; close ROOMS; foreach $_ (@rooms) { &post($_, $sys_msg, $alias) unless /\./; } &log($sys_msg); &reload_html; } elsif ($cmd eq 'wa') { my $alias2wa = $cmd[1]; if (-f "data/user/options/$alias2wa") { if (3 <= &hierachie($alias2wa)) { &post_prv($alias, "$alias2wa kann nicht zum Wächter ernannt werden!"); } else { &hierachie_add($alias2wa, 3); &post($room, '' . ×tring . " $alias ernennt $alias2wa zum W\344chter ...", $alias); } &reload_html; } else { &post_prv($alias, "$alias2wa existiert nicht in der Datenbank!"); } &reload_html; } elsif ($cmd eq 'rwa') { my $alias2rwa = $cmd[1]; my $hierachie = &hierachie($alias2rwa); if (3 == $hierachie or 4 == $hierachie) { &hierachie_rm($alias2rwa); &post($room, q[] . ×tring . " $alias hat $alias2rwa vom W\344chter zum normalen Chatter degradiert ...", $alias); } else { &post_prv($alias, "$alias2rwa ist kein W\344chter und k\366nnen diese Rechte nicht entzogen werden!"); } &reload_html; } elsif (7 <= &hierachie($alias)) { if ($cmd eq 'ow') { my $alias2ow = $cmd[1]; if (-f "data/user/options/$alias2ow") { if (5 <= &hierachie($alias2ow)) { &post_prv($alias, "$alias2ow kann nicht zum Oberwächter ernannt werden!"); } else { &hierachie_add($alias2ow, 5); &post($room, '' . ×tring . " $alias ernennt $alias2ow zum Oberwächter ...", $alias); } &reload_html; } else { &post_prv($alias, "$alias2wa existiert nicht in der Datenbank!"); } &reload_html; } elsif ($cmd eq 'row') { my $alias2row = $cmd[1]; my $hierachie = &hierachie($alias2row); if (5 == $hierachie or 6 == $hierachie) { &hierachie_rm($alias2row); &post($room, q[] . ×tring . " $alias hat $alias2row vom Oberw\344chter zum normalen Chatter degradiert ...", $alias); } else { &post_prv($alias, "$alias2row ist kein Oberw\344chter und k\366nnen diese Rechte nicht entzogen werden!"); } &reload_html; } elsif ($cmd eq 'pw') { my $pw2show = $cmd[1]; if (-f "data/user/options/$pw2show") { open PW, "; close PW; chomp $pw[0]; &post_prv($alias, "$pw2show hat das Passwort $pw[0] !"); &reload_html; } &post_prv($alias, "$pw2show existiert nicht in der Benutzerdatenbank!"); &reload_html; } elsif ($cmd eq 'id' or $cmd eq 'agent') { my $id2show = $cmd[1]; if (-f "data/online/ident/$id2show") { open ID, "; close ID; if ($cmd eq 'id') { chomp $id[1]; &post_prv($alias, "$id2show hat die Temp-ID $id[1] !"); } else { chomp $id[2]; &post_prv($alias, "$id2show verwendet $id[2] !"); } &reload_html; } &post_prv($alias, "$id2show ist nicht eingeloggt !"); &reload_html; } elsif ($cmd eq 'cool') { for ($i = 1; $i <= $#cmd; ++$i) { $msg2post = $msg2post . ' ' . $cmd[$i]; } &post($room, '' . ×tring . " $msg2post", $alias); &reload_html; } elsif ($cmd eq 'rev') { for ($i = 1; $i <= $#cmd; ++$i) { $msg2post = $msg2post . ' ' . $cmd[$i]; } $msg2post = reverse($msg2post); &post($room, "$alias: $msg2post", $alias); &reload_html; } } } } } my($alias2post, $msg2post, $action); if ($cmd eq 'msg') { $alias2post = $cmd[1]; for ($i = 2; $i <= $#cmd; ++$i) { $msg2post = $msg2post . ' ' . $cmd[$i]; } } elsif ($cmd eq '') { $alias2post = $whisper; for ($i = 1; $i <= $#cmd; ++$i) { $msg2post = $msg2post . ' ' . $cmd[$i]; } } else { $alias2post = $cmd; for ($i = 1; $i <= $#cmd; ++$i) { $msg2post = $msg2post . ' ' . $cmd[$i]; } } $msg2post =~ s[/me/][$alias]g; $msg2post =~ s[/m/][$alias]g; if (-f "data/online/users/$alias2post" and not -f "data/online/rooms/$loginplace/$alias2post") { &post_prv($alias, "Zu $alias2post gefl\374stert: $msg2post"); &post_prv($alias2post, "$alias fl\374stert: $msg2post"); &private_javascript($alias, $room, "parent.input.document.inf.whisper.value = '$alias2post';"); &reload_html; } &post_prv($alias, qq[ Benutzer oder Befehl $alias2post ist nicht anwesend/verf\374gbar! Bitte den Befehl "/menu" eingeben, um das Chat-Menü zu öffnen.]); &reload_html; } 1;