View Javadoc

1   /* Copyright 2006 The JA-SIG Collaborative.  All rights reserved.
2   *  See license distributed with this file and
3   *  available online at http://www.uportal.org/license.html
4   */
5   
6   package org.jasig.irclog;
7   
8   import org.apache.commons.logging.Log;
9   import org.apache.commons.logging.LogFactory;
10  import org.jasig.irclog.events.ActionEvent;
11  import org.jasig.irclog.events.ConnectEvent;
12  import org.jasig.irclog.events.DisconnectEvent;
13  import org.jasig.irclog.events.JoinEvent;
14  import org.jasig.irclog.events.KickEvent;
15  import org.jasig.irclog.events.MessageEvent;
16  import org.jasig.irclog.events.ModeEvent;
17  import org.jasig.irclog.events.NickChangeEvent;
18  import org.jasig.irclog.events.NoticeEvent;
19  import org.jasig.irclog.events.PartEvent;
20  import org.jasig.irclog.events.PingEvent;
21  import org.jasig.irclog.events.PrivateMessageEvent;
22  import org.jasig.irclog.events.QuitEvent;
23  import org.jasig.irclog.events.TimeEvent;
24  import org.jasig.irclog.events.TopicEvent;
25  import org.jasig.irclog.events.VersionEvent;
26  import org.jasig.irclog.events.handlers.IrcEventHandler;
27  import org.jibble.pircbot.Colors;
28  import org.jibble.pircbot.PircBot;
29  
30  /***
31   * @author Eric Dalquist <a href="mailto:eric.dalquist@doit.wisc.edu">eric.dalquist@doit.wisc.edu</a>
32   * @version $Revision$
33   */
34  public class EventLogBot extends PircBot {
35      protected final Log logger = LogFactory.getLog(this.getClass());
36  
37      private IrcEventHandler eventHandler = null;
38      private boolean stripFormatting = true;
39      
40      /***
41       * @return the eventHandler
42       */
43      public IrcEventHandler getEventHandler() {
44          return this.eventHandler;
45      }
46      /***
47       * @param eventHandler the eventHandler to set
48       */
49      public void setEventHandler(IrcEventHandler eventHandler) {
50          this.eventHandler = eventHandler;
51      }
52      
53      /***
54       * @return the stripFormatting
55       */
56      public boolean isStripFormatting() {
57          return this.stripFormatting;
58      }
59      /***
60       * @param stripFormatting the stripFormatting to set
61       */
62      public void setStripFormatting(boolean stripColors) {
63          this.stripFormatting = stripColors;
64      }
65      
66      
67      /***
68       * @see #setName(String) 
69       */
70      public void setBotName(String name) {
71          this.setName(name);
72      }
73  
74      
75      /***
76       * @see org.jibble.pircbot.PircBot#onConnect()
77       */
78      @Override
79      protected void onConnect() {
80          final ConnectEvent event = new ConnectEvent(this);
81          this.eventHandler.handleEvent(event);
82      }
83  
84      /***
85       * @see org.jibble.pircbot.PircBot#onAction(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
86       */
87      @Override
88      protected void onAction(String sender, String login, String hostname, String target, String action) {
89          final ActionEvent event = new ActionEvent(this, sender, login, hostname, target, action);
90          this.eventHandler.handleEvent(event);
91      }
92      
93      /***
94       * @see org.jibble.pircbot.PircBot#onJoin(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
95       */
96      @Override
97      protected void onJoin(String channel, String sender, String login, String hostname) {
98          final JoinEvent event = new JoinEvent(this, channel, sender, login, hostname);
99          this.eventHandler.handleEvent(event);
100     }
101     
102     /***
103      * @see org.jibble.pircbot.PircBot#onMessage(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
104      */
105     @Override
106     protected void onMessage(String channel, String sender, String login, String hostname, String message) {
107         if (this.stripFormatting) {
108             message = Colors.removeFormattingAndColors(message);
109         }
110         
111         final MessageEvent event = new MessageEvent(this, channel, sender, login, hostname, message);
112         this.eventHandler.handleEvent(event);
113     }
114     
115     /***
116      * @see org.jibble.pircbot.PircBot#onMode(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
117      */
118     @Override
119     protected void onMode(String channel, String sourceNick, String sourceLogin, String sourceHostname, String mode) {
120         final ModeEvent event = new ModeEvent(this, channel, sourceNick, sourceLogin, sourceHostname, mode);
121         this.eventHandler.handleEvent(event);
122     }
123     
124     /***
125      * @see org.jibble.pircbot.PircBot#onNickChange(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
126      */
127     @Override
128     protected void onNickChange(String oldNick, String login, String hostname, String newNick) {
129         final NickChangeEvent event = new NickChangeEvent(this, oldNick, login, hostname, newNick);
130         this.eventHandler.handleEvent(event);
131     }
132     
133     /***
134      * @see org.jibble.pircbot.PircBot#onNotice(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
135      */
136     @Override
137     protected void onNotice(String sourceNick, String sourceLogin, String sourceHostname, String target, String notice) {
138         final NoticeEvent event = new NoticeEvent(this, sourceNick, sourceLogin, sourceHostname, target, notice);
139         this.eventHandler.handleEvent(event);
140     }
141     
142     /***
143      * @see org.jibble.pircbot.PircBot#onPart(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
144      */
145     @Override
146     protected void onPart(String channel, String sender, String login, String hostname) {
147         final PartEvent event = new PartEvent(this, channel, sender, login, hostname);
148         this.eventHandler.handleEvent(event);
149     }
150     
151     /***
152      * @see org.jibble.pircbot.PircBot#onPing(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
153      */
154     @Override
155     protected void onPing(String sourceNick, String sourceLogin, String sourceHostname, String target, String pingValue) {
156         final PingEvent event = new PingEvent(this, sourceNick, sourceLogin, sourceHostname, target, pingValue);
157         this.eventHandler.handleEvent(event);
158     }
159     
160     /***
161      * @see org.jibble.pircbot.PircBot#onPrivateMessage(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
162      */
163     @Override
164     protected void onPrivateMessage(String sender, String login, String hostname, String message) {
165         if (this.stripFormatting) {
166             message = Colors.removeFormattingAndColors(message);
167         }
168         
169         final PrivateMessageEvent event = new PrivateMessageEvent(this, sender, login, hostname, message);
170         this.eventHandler.handleEvent(event);
171     }
172     
173     /***
174      * @see org.jibble.pircbot.PircBot#onQuit(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
175      */
176     @Override
177     protected void onQuit(String sourceNick, String sourceLogin, String sourceHostname, String reason) {
178         final QuitEvent event = new QuitEvent(this, sourceNick, sourceLogin, sourceHostname, reason);
179         this.eventHandler.handleEvent(event);
180     }
181     
182     /***
183      * @see org.jibble.pircbot.PircBot#onTime(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
184      */
185     @Override
186     protected void onTime(String sourceNick, String sourceLogin, String sourceHostname, String target) {
187         final TimeEvent event = new TimeEvent(this, sourceNick, sourceLogin, sourceHostname, target);
188         this.eventHandler.handleEvent(event);
189     }
190     
191     /***
192      * @see org.jibble.pircbot.PircBot#onTopic(java.lang.String, java.lang.String, java.lang.String, long, boolean)
193      */
194     @Override
195     protected void onTopic(String channel, String topic, String setBy, long date, boolean changed) {
196         final TopicEvent event = new TopicEvent(this, channel, topic, setBy, date, changed);
197         this.eventHandler.handleEvent(event);
198     }
199     
200     /***
201      * @see org.jibble.pircbot.PircBot#onVersion(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
202      */
203     @Override
204     protected void onVersion(String sourceNick, String sourceLogin, String sourceHostname, String target) {
205         final VersionEvent event = new VersionEvent(this, sourceNick, sourceLogin, sourceHostname, target);
206         this.eventHandler.handleEvent(event);
207     }
208     
209     /***
210      * @see org.jibble.pircbot.PircBot#onKick(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
211      */
212     @Override
213     protected void onKick(String channel, String kickerNick, String kickerLogin, String kickerHostname, String recipientNick, String reason) {
214         final KickEvent event = new KickEvent(this, channel, kickerNick, kickerLogin, kickerHostname, recipientNick, reason);
215         this.eventHandler.handleEvent(event);
216     }
217     
218     /***
219      * @see org.jibble.pircbot.PircBot#onDisconnect()
220      */
221     @Override
222     protected void onDisconnect() {
223         final DisconnectEvent event = new DisconnectEvent(this);
224         this.eventHandler.handleEvent(event);
225     }
226 }