#!/usr/bin/perl
# Sets up a log session, which logs everything that goes on, even after
# the avatar logs out.
#use Mooix::Thing;
#use Mooix::Root;
run sub {
	my $this=shift;
	%_=@_;

	# Make sure that this command is not spoofed, just in case.
        if ($_{avatar} != $this) {
		fail "No!"; 
	}
	
	my $state = $_{preposition};
	my $log=$this->log;

	if ($state eq 'on') {
		if (! $log) {
			# Make new log session.
			$log = $this->create(owner => $this, id => "log",
			                     parent => $Mooix::Root->sessions->log);
		}
		if (! grep { $_ == $log } $this->sessions->list) {
			# Add to sessions list, which enables logging.
			$this->sessions->add(object => $log);
			$_{session}->write("Logging turned on.");
		}
		else {
			fail "Logging is already turned on.";
		}
	}
	elsif ($state eq 'off') {
		if ($log && grep { $_ == $log } $this->sessions->list) {
			# Removing it from the sessions list disables
			# logging.
			$this->sessions->remove(object => $log);
			$_{session}->write("Logging turned off.");
		}
		else {
			fail "Logging is already turned off.";
		}
	}
	else {
		# Display log.
		if (! $log || ! grep { $_ == $log } $this->sessions->list) {
			fail "Logging is off.";
		}
		$_{session}->page($log->display(reset => 1));
	}
}

