1
2
3
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 }