From ea192ddd6d5b538e0bd0f6f1721890eb3c25de30 Mon Sep 17 00:00:00 2001 From: snowleo Date: Wed, 12 Oct 2011 03:14:07 +0200 Subject: EssentialsUpdate WIP --- .../f00f/net/irc/martyr/ClientStateMonitor.java | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 EssentialsUpdate/src/f00f/net/irc/martyr/ClientStateMonitor.java (limited to 'EssentialsUpdate/src/f00f/net/irc/martyr/ClientStateMonitor.java') 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 +} + -- cgit v1.2.3