Essentials/EssentialsUpdate/src/f00f/net/irc/martyr/ClientStateMonitor.java

68 lines
1.5 KiB
Java

package f00f.net.irc.martyr;
import java.util.Observable;
import java.util.Observer;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* ClientStateMonitor asks commands to update the client state.
*/
public class ClientStateMonitor implements Observer
{
static Logger log = Logger.getLogger(ClientStateMonitor.class.getName());
private IRCConnection connection;
private boolean enabled = false;
/**
* This should only be called by the IRCConnection itself.
*
* @param connection Connection we are associated with
*/
ClientStateMonitor( IRCConnection connection )
{
this.connection = connection;
enable();
}
public void enable()
{
if( enabled )
return;
enabled = true;
connection.addCommandObserver( this );
}
public void disable()
{
if( !enabled )
return;
connection.removeCommandObserver( this );
enabled = false;
}
public void update( Observable observable, Object command_o )
{
InCommand command = (InCommand)command_o;
try
{
/*if( */command.updateClientState( connection.getClientState() );// )
//log.debug("ClientStateMonnitor: Client state updated");
}
catch( Throwable e )
{
log.log(Level.SEVERE,"ClientStateMonitor: Client state update failed.", e);
}
}
// ===== END ClientStateMonitor
}