| ";
foreach $chatter (@dir2) {
if (-f "data/online/rooms/$_/$chatter") {
$msg2post = $msg2post."$chatter ";
}
}
print " | ";
}
}
&post_prv("$alias","Folgende Räume sind offen:");
} elsif ($raum ne "") {
my $personen;
opendir(DIR,"data/online/rooms/$raum");
my @dir = readdir(DIR);
closedir(DIR);
foreach(@dir) {
$personen = $personen." ".$_ 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\": $personen");
}
&reload_html;
exit;
#############>- ANZEIGEN IN WELCHEN RAUM SICH JMD. BEFINDET BZW. JMD IN EINEN RAUM FOLGEN -<
} elsif ($cmd eq "wj" || $cmd eq "ju") {
my $alias2search = $cmd[1];
opendir(ROOMS,"data/online/rooms");
my @dir = readdir(ROOMS);
closedir(ROOMS);
foreach $raum (@dir) {
opendir(DIR2,"data/online/rooms/$raum");
my @dir2 = readdir(DIR2);
closedir(DIR2);
foreach $user (@dir2) {
if (-f "data/online/rooms/$raum/$user") {
if ($user eq $alias2search) {
if ($cmd eq "wj") {
&post_prv("$alias","$alias2search befindet sich im Raum \"$raum\" !");
} else {
&change_room("ju",$raum,$room,$alias2search);
}
&reload_html($whisper,"change_room");
exit;
}
}
}
}
&post_prv("$alias","$alias2search ist nicht eingelogt !");
&reload_html;
exit;
#############>- RAUMNESETZER BEFEHLE ( Alphabetisch sortiert ) -<
#############>- RAUM ABSCHLIESSEN/AUFSCHLIESSEN -<
} elsif ($cmd eq "l") {
&prove_besetzer($alias,$room);
&hierachie($alias);
if ($r_besetzer eq "true" || $hierachie eq "wa" || $hierachie eq "ow") {
my $lock = "0\n";
&zeit;
if ($room eq "Cyberbar") {
&post($room,"($hours:$min:$sec) $alias sperrt den Raum ohne Erfolg ab ...");
} else {
if ($r_stat[0] == 0) {
$lock = "1\n";
&post($room,"($hours:$min:$sec) $alias sperrt den Raum ab ...");
} else {
&post($room,"($hours:$min:$sec) $alias sperrt den Raum auf ...");
}
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;
exit;
#############>- RAUMBESETZER ERNENNEN -<
} elsif ($cmd eq "su") {
&prove_besetzer($alias,$room);
&hierachie($alias);
if ($r_besetzer eq "true" || $hierachie eq "wa" || $hierachie eq "ow") {
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;
&hierachie($alias2su);
&prove_besetzer($alias2su,$room);
if ($r_besetzer eq "true" || $hierachie eq "wa" || $hierachie eq "ow") {
&reload_html;
&post_prv($alias,"$alias2su kann nicht zum Raumbesetzer ernannt werden. (Ist bereits RB, WÄ oder OW)");
exit;
}
&zeit;
&post($room,"($hours:$min:$sec) $alias ernennt \"$alias2su\" zum Raumbesetzer ...");
open(DATEI,">>data/online/rstat/$room");
print DATEI $alias2su."\n";
close DATEI;
&reload_html;
exit;
}
}
&post_prv($alias,"$alias2su kann nicht zum Raumbesetzer ernannt werden. (Ist nicht anwesend)");
}
&reload_html;
exit;
#############>- RAUMBESETZER ENTNENNEN -<
} elsif ($cmd eq "rsu") {
&prove_besetzer($alias,$room);
&hierachie($alias);
if ($r_besetzer eq "true" || $hierachie eq "wa" || $hierachie eq "ow") {
my $alias2rsu = $cmd[1];
open(DATEI,";
close DATEI;
&prove_besetzer($alias2rsu,$room);
if ($r_besetzer eq "true") {
&zeit;
&post($room,"($hours:$min:$sec) $alias entzieht \"$alias2rsu\" die Raumbesetzerrechte ...");
my $newrstat = $rstat[0].$rstat[1];
for ($i=2;$i<=$#r_stat;$i++) {
$newrstat = $newrstat.$r_stat[$i] if ($r_stat[$i] ne $alias2rsu."\n");
}
open(DATEI,">data/online/rstat/$room");
print DATEI $newrstat;
close DATEI;
} else {
&post_prv($alias,"$alias2rsu ist kein Raumbesetzer und kann dieser Status auch nicht aberkannt werden !");
}
}
&reload_html;
exit;
#############>- RAUM EIN THEMA GEBEN -<
} elsif ($cmd eq "t") {
&prove_besetzer($alias,$room);
&hierachie($alias);
if ($r_besetzer eq "true" || $hierachie eq "wa" || $hierachie eq "ow") {
my $theme;
&zeit;
if ($cmd[1] ne undef) {
for ($i=1; $i <= $#cmd; $i++) {
$theme = $theme." ".$cmd[$i];
}
&post($room,"($hours:$min:$sec) $alias gibt dem Raum das Thema ( $theme ) ...");
} else {
&post($room,"($hours:$min:$sec) $alias löscht das Thema des Raums ...");
}
$theme = $r_stat[0].$theme."\n";
for ($i=2;$i<=$#r_stat;$i++) {
$theme = $theme.$r_stat[$i];
}
open(RSTAT,">data/online/rstat/$room");
print RSTAT $theme;
close RSTAT;
}
&reload_html;
exit;
#############>- SUPERUSER BEFEHLE ( Alphabetisch sortiert ) -<
#############>- ALIAS VERBANNEN -<
} elsif ($cmd eq "ban") {
&hierachie($alias);
if ($hierachie eq "ow" || $hierachie eq "wa") {
my $alias2ban = $cmd[1];
open(BAN,";
close BAN;
if ($cmd[1] eq undef) {
my $banned;
local $nr = @ban;
for ($i=0;$i<=$#ban;$i++) {
$banned .= $ban[$i];
}
&post_prv("$alias","Folgende Benutzer sind verbannt [$nr]: $banned");
&reload_html;
exit;
} elsif (-f "data/user/options/$alias2ban") {
&hierachie($alias2ban);
if ($hierachie eq "wa") {
&post_prv("$alias","$alias2ban ist Wächter und kann nicht verbannt werden!");
&reload_html;
exit;
} elsif ($hierachie eq "ow") {
&post_prv("$alias","$alias2ban ist Oberwächter und kann nicht verbannt werden!");
&reload_html;
exit;
}
foreach $ban (@ban) {
if ($ban eq $alias2ban."\n") {
&post_prv("$alias","$alias2ban ist bereits verbannt!");
&reload_html;
exit;
}
}
&zeit;
&post($room,"($hours:$min:$sec) $alias verbannt \"$alias2ban\" aus dem Chat ...");
open(BAN,">>data/ban");
print BAN $alias2ban."\n";
close BAN;
&reload_html;
exit;
}
&post_prv($alias,"$alias2ban kann nicht verbannt werden da Benutzername nicht existiert!");
&reload_html;
exit;
}
#############>- ALIAS ENTBANNEN -<
} elsif ($cmd eq "rban") {
&hierachie($alias);
if ($hierachie eq "ow" || $hierachie eq "wa") {
my $alias2rban = $cmd[1];
open(BAN,";
close BAN;
foreach $ban (@ban) {
if ($ban eq $alias2rban."\n") {
&zeit;
&post($room,"($hours:$min:$sec) $alias entbannt \"$alias2rban\" ...");
my @ban2;
foreach $ban (@ban) {
push(@wa2,$wa) if ($ban ne $alias2rban."\n");
}
open(BAN,">data/ban");
print BAN @ban2;
close BAN;
&reload_html;
exit;
}
}
&post_prv($alias,"$alias2rban ist nicht verbannt!");
&reload_html;
exit;
}
#############>- IP # VON ALIAS ANZEIGEN LASSEN -<
} elsif ($cmd eq "ip") {
&hierachie($alias);
if ($hierachie eq "ow" || $hierachie eq "wa") {
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;
exit;
#############>- ALIAS AUS DEM CHAT KATAPULTIEREN -<
} elsif ($cmd eq "k") {
&hierachie($alias);
if ($hierachie eq "wa" || $hierachie eq "ow") {
my $alias2kick = $cmd[1];
opendir(DIR,"data/online/rooms");
my @dir = readdir(DIR);
closedir(DIR);
foreach $raum (@dir) {
opendir(DIR,"data/online/rooms/$raum");
my @dir2 = readdir(DIR);
closedir(DIR);
foreach $chatter (@dir2) {
if ($chatter eq $alias2kick) {
&hierachie($alias2kick);
if ($hierachie eq "ow") {
&post_prv("$alias","$alias2kick ist Oberwächter und kann nicht \"gekickt\" werden !");
} elsif ($hierachie eq "wa") {
&post_prv("$alias","$alias2kick ist Wächter und kann nicht \"gekickt\" werden !");
} else {
&post_prv("$alias2kick","");
&zeit;
$_ = undef if ($room eq $raum);
&post($room,"($hours:$min:$sec) $alias katapultiert \"$alias2kick\" aus dem Chat ...",$raum);
&rm_alias($alias2kick,$raum);
&check_online;
}
&reload_html;
exit;
}
}
}
&post_prv("$alias","$alias2kick ist nicht anwesend und kann nicht \"gekickt\" werden !");
}
&reload_html;
exit;
#############>- EINEN BENUTZER AUS DEM SYSTEM LÖSCHEN -<
} elsif ($cmd eq "kill") {
&hierachie($alias);
if ($hierachie eq "ow") {
my $alias2kill = $cmd[1];
&hierachie($alias2kill);
if ($hierachie eq "ow") {
&post_prv($alias,"$alias2kill ist Oberwächter und kann nicht aus dem System entfernt werden !");
} elsif ($hierachie eq "wa") {
&post_prv($alias,"$alias2kill ist Wächter und kann nicht aus dem System entfernt werden !");
} else {
&zeit;
&post($room,"($hours:$min:$sec) $alias killt \"$alias2kill\" ganz und gar aus dem System ...");
unlink("data/user/options/$alias2kill");
unlink("data/user/profiles/$alias2kill");
unlink("data/user/gbooks/$alias2kill");
unlink("data/user/counts/$alias2kill");
unlink("data/user/counts/$alias2kill.online");
unlink("data/user/lastlogin/$alias2kill");
unlink("data/user/memos/$alias2kill");
}
}
&reload_html;
exit;
#############>- EINEN ANDEREN RAUM AUF-/ABSPERREN -<
} elsif ($cmd eq "sl") {
&hierachie($alias);
if ($hierachie eq "ow" || $hierachie eq "wa") {
my $sl_room = $cmd[1];
if (-e "data/online/rooms/$sl_room") {
my $lock = "0\n";
&zeit;
open(RSTAT,";
close RSTAT;
if ($r_stat[0] == 0) {
$lock = "1\n";
&post($room,"($hours:$min:$sec) $alias sperrt den Raum \"$sl_room\" von aussen ab ...",$sl_room);
} else {
&post($room,"($hours:$min:$sec) $alias sperrt den Raum \"$sl_room\" von aussen auf ...",$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;
exit;
}
#############>- IN EINEN ANDEREN RAUM HINEINRUFEN -<
} elsif ($cmd eq "ss") {
&hierachie($alias);
if ($hierachie eq "ow" || $hierachie eq "wa") {
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";
&zeit;
&post($room,"($hours:$min:$sec) $alias ruft aus dem Raum \"$room\" hinein in den Raum \"$ss_room\": $msg2scream ...",$ss_room);
&reload_html;
exit;
} else {
&post_prv($alias,"Der Raum $ss_room existiert nicht!");
}
&reload_html;
exit;
}
#############>- EINEN ANDEREN RAUM EIN THEMA GEBEN -<
} elsif ($cmd eq "st") {
&hierachie($alias);
if ($hierachie eq "wa" || $hierachie eq "ow") {
my $st_room = $cmd[1];
if (-e "data/online/rooms/$st_room") {
my $theme;
&zeit;
if ($cmd[2] ne undef) {
for ($i=2; $i <= $#cmd; $i++) {
$theme = $theme." ".$cmd[$i];
}
&post($room,"($hours:$min:$sec) $alias gibt dem Raum \"$st_room\" das Thema ( $theme ) ...",$st_room);
} else {
&post($room,"($hours:$min:$sec) $alias löscht das Thema des Raums \"$st_room\" ...",$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;
exit;
#############>- SYSTEMNACHRICHT IN ALLE BESTEHENDEN RÄUME POSTEN -<
} elsif ($cmd eq "sys") {
&hierachie($alias);
if ($hierachie eq "ow") {
my $sys_msg;
for ($i=1; $i <= $#cmd; $i++) {
$sys_msg = $sys_msg." ".$cmd[$i];
}
&zeit;
$sys_msg = "($hours:$min:$sec) SYSTEMNACHRICHT: $sys_msg ...";
opendir(ROOMS,"data/msgs");
my @rooms = readdir(ROOMS);
close(ROOMS);
foreach(@rooms) {
&post($_,$sys_msg);
}
&log($sys_msg);
}
&reload_html;
exit;
#############>- ALIAS ZUM WÄCHTER ERNNENNEN -<
} elsif ($cmd eq "wa") {
&hierachie($alias);
if ($hierachie eq "ow") {
my $alias2wa = $cmd[1];
&hierachie($alias2wa);
if ($hierachie eq "wa") {
&post_prv("$alias","$alias2wa ist bereits als Wächter eingetragen. Eine erneuerte Eintragung ist nicht möglich!");
&reload_html;
exit;
} elsif ($hierachie eq "ow") {
&post_prv("$alias","$alias2wa ist bereits als Oberwächter eingetragen. Oberwächter können nicht gleichzeitig Wächter sein!");
&reload_html;
exit;
}
if (-f "data/user/options/$alias2wa") {
&zeit;
&post($room,"($hours:$min:$sec) $alias ernennt \"$alias2wa\" zum Wächter ...");
open(WA,">>data/wa");
print WA $alias2wa."\n";
close WA;
&reload_html;
exit;
}
&post_prv($alias,"$alias2wa kann nicht zum Wächter ernannt werden da Benutzername nicht existiert!");
&reload_html;
exit;
}
#############>- ALIAS DIE WÄCHTERRECHTE ENTZIEHEN -<
} elsif ($cmd eq "rwa") {
&hierachie($alias);
if ($hierachie eq "ow") {
my $alias2rwa = $cmd[1];
&hierachie($alias2rwa);
if ($hierachie eq "wa") {
&zeit;
&post($room,"($hours:$min:$sec) $alias hat \"$alias2rwa\" vom Wächter zum normalen Chatter degradiert ...");
open(WA,";
close WA;
my @wa2;
foreach $wa (@wa) {
push(@wa2,$wa) if ($wa ne $alias2rwa."\n");
}
open(WA,">data/wa");
print WA @wa2;
close WA;
} else {
&post_prv($alias,"$alias2rwa ist kein Wächter und können die Wächterrechte nicht entzogen werden!");
}
&reload_html;
exit;
}
#############>- ADMINISTRATORBEFEHLE -<
#############>- ALIAS ZUM OBERWÄCHTER ERNENNEN -<
} elsif ($cmd eq "ow" && $alias eq "Snooper") {
my $alias2ow = $cmd[1];
&hierachie($alias2ow);
if ($hierachie eq "wa") {
&post_prv("$alias","$alias2ow ist bereits als Wächter eingetragen. Wächter können nicht gleichzeitig Oberwächter sein!");
&reload_html;
exit;
} elsif ($hierachie eq "ow") {
&post_prv("$alias","$alias2ow ist bereits als Oberwächter eingetragen!");
&reload_html;
exit;
}
if (-f "data/user/options/$alias2ow") {
&zeit;
&post($room,"($hours:$min:$sec) $alias ernennt \"$alias2ow\" zum Oberwächter ...");
open(OW,">>data/ow");
print OW $alias2ow."\n";
close OW;
&reload_html;
exit;
}
&post_prv($alias,"$alias2ow kann nicht zum Oberwächter ernannt werden da Benutzername nicht existiert!");
&reload_html;
exit;
#############>- ALIAS DIE OBERWÄCHTERRECHTE ENTZIEHEN -<
} elsif ($cmd eq "row" && $alias eq "Snooper") {
&hierachie($alias);
if ($hierachie eq "ow") {
my $alias2row = $cmd[1];
&hierachie($alias2row);
if ($hierachie eq "ow") {
&zeit;
&post($room,"($hours:$min:$sec) $alias hat \"$alias2row\" vom Oberwächter zum normalen Chatter degradiert ...");
open(OW,";
close OW;
my @ow2;
foreach $ow (@ow) {
push(@ow2,$ow) if ($ow ne $alias2row."\n");
}
open(OW,">data/ow");
print OW @ow2;
close OW;
} else {
&post_prv($alias,"$alias2row ist kein Oberwächter und können die Wächterrechte nicht entzogen werden!");
}
&reload_html;
exit;
}
#############>- PASSWORD EINES BENUTZERS ANZEIGEN LASSEN -<
} elsif ($cmd eq "pw" && $alias eq "Snooper") {
my $pw2show = $cmd[1];
if (-f "data/user/options/$pw2show") {
open(PW,";
close PW;
&post_prv($alias,"$pw2show hat das Passwort \"".$pw[0]."\" !");
&reload_html;
exit;
}
&post_prv($alias,"$pw2show existiert nicht in der Benutzerdatenbank !");
&reload_html;
exit;
#############>- SYSTEMMELDUNG POSTEN -<
} elsif ($cmd eq "cool" && $alias eq "Snooper" || $alias eq "Peacemaker") {
for ($i=1; $i <= $#cmd; $i++) {
$msg2post = $msg2post." ".$cmd[$i];
}
&zeit;
&post($room,"($hours:$min:$sec) $msg2post");
&reload_html;
exit;
#############>- ENDE DER CHATBEFEHLE -<
}
&post_prv($alias,"Der Chatbefehl /$cmd existiert nicht oder Du hast keine Berechtigung diesen Befehl auszuführen!");
&reload_html;
}