diff options
Diffstat (limited to 'EssentialsUpdate/src/f00f/net/irc/martyr/ClientStateMonitor.java')
-rw-r--r-- | EssentialsUpdate/src/f00f/net/irc/martyr/ClientStateMonitor.java | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/EssentialsUpdate/src/f00f/net/irc/martyr/ClientStateMonitor.java b/EssentialsUpdate/src/f00f/net/irc/martyr/ClientStateMonitor.java new file mode 100644 index 000000000..0b7303956 --- /dev/null +++ b/EssentialsUpdate/src/f00f/net/irc/martyr/ClientStateMonitor.java @@ -0,0 +1,67 @@ +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 +} + |