|
@@ -55,50 +55,42 @@ import com.dmdirc.events.UserErrorEvent;
|
55
|
55
|
import com.dmdirc.interfaces.Connection;
|
56
|
56
|
import com.dmdirc.logger.ErrorLevel;
|
57
|
57
|
import com.dmdirc.parser.common.AwayState;
|
58
|
|
-import com.dmdirc.parser.common.CallbackManager;
|
59
|
|
-import com.dmdirc.parser.common.ParserError;
|
60
|
|
-import com.dmdirc.parser.interfaces.ChannelInfo;
|
61
|
|
-import com.dmdirc.parser.interfaces.ClientInfo;
|
|
58
|
+import com.dmdirc.parser.events.AuthNoticeEvent;
|
|
59
|
+import com.dmdirc.parser.events.AwayStateEvent;
|
|
60
|
+import com.dmdirc.parser.events.ChannelSelfJoinEvent;
|
|
61
|
+import com.dmdirc.parser.events.ConnectErrorEvent;
|
|
62
|
+import com.dmdirc.parser.events.ErrorInfoEvent;
|
|
63
|
+import com.dmdirc.parser.events.InviteEvent;
|
|
64
|
+import com.dmdirc.parser.events.MOTDEndEvent;
|
|
65
|
+import com.dmdirc.parser.events.MOTDLineEvent;
|
|
66
|
+import com.dmdirc.parser.events.MOTDStartEvent;
|
|
67
|
+import com.dmdirc.parser.events.NickChangeEvent;
|
|
68
|
+import com.dmdirc.parser.events.NickInUseEvent;
|
|
69
|
+import com.dmdirc.parser.events.NumericEvent;
|
|
70
|
+import com.dmdirc.parser.events.PingFailureEvent;
|
|
71
|
+import com.dmdirc.parser.events.PingSentEvent;
|
|
72
|
+import com.dmdirc.parser.events.PingSuccessEvent;
|
|
73
|
+import com.dmdirc.parser.events.PrivateActionEvent;
|
|
74
|
+import com.dmdirc.parser.events.PrivateCTCPEvent;
|
|
75
|
+import com.dmdirc.parser.events.PrivateCTCPReplyEvent;
|
|
76
|
+import com.dmdirc.parser.events.PrivateMessageEvent;
|
|
77
|
+import com.dmdirc.parser.events.PrivateNoticeEvent;
|
|
78
|
+import com.dmdirc.parser.events.ServerReadyEvent;
|
|
79
|
+import com.dmdirc.parser.events.SocketCloseEvent;
|
|
80
|
+import com.dmdirc.parser.events.UnknownActionEvent;
|
|
81
|
+import com.dmdirc.parser.events.UnknownMessageEvent;
|
|
82
|
+import com.dmdirc.parser.events.UnknownNoticeEvent;
|
|
83
|
+import com.dmdirc.parser.events.UserModeChangeEvent;
|
|
84
|
+import com.dmdirc.parser.events.UserModeDiscoveryEvent;
|
|
85
|
+import com.dmdirc.parser.events.WallDesyncEvent;
|
|
86
|
+import com.dmdirc.parser.events.WallopEvent;
|
|
87
|
+import com.dmdirc.parser.events.WalluserEvent;
|
62
|
88
|
import com.dmdirc.parser.interfaces.Parser;
|
63
|
|
-import com.dmdirc.parser.interfaces.callbacks.AuthNoticeListener;
|
64
|
|
-import com.dmdirc.parser.interfaces.callbacks.AwayStateListener;
|
65
|
|
-import com.dmdirc.parser.interfaces.callbacks.CallbackInterface;
|
66
|
|
-import com.dmdirc.parser.interfaces.callbacks.ChannelSelfJoinListener;
|
67
|
|
-import com.dmdirc.parser.interfaces.callbacks.ConnectErrorListener;
|
68
|
|
-import com.dmdirc.parser.interfaces.callbacks.ErrorInfoListener;
|
69
|
|
-import com.dmdirc.parser.interfaces.callbacks.InviteListener;
|
70
|
|
-import com.dmdirc.parser.interfaces.callbacks.MotdEndListener;
|
71
|
|
-import com.dmdirc.parser.interfaces.callbacks.MotdLineListener;
|
72
|
|
-import com.dmdirc.parser.interfaces.callbacks.MotdStartListener;
|
73
|
|
-import com.dmdirc.parser.interfaces.callbacks.NickChangeListener;
|
74
|
|
-import com.dmdirc.parser.interfaces.callbacks.NickInUseListener;
|
75
|
|
-import com.dmdirc.parser.interfaces.callbacks.NumericListener;
|
76
|
|
-import com.dmdirc.parser.interfaces.callbacks.PingFailureListener;
|
77
|
|
-import com.dmdirc.parser.interfaces.callbacks.PingSentListener;
|
78
|
|
-import com.dmdirc.parser.interfaces.callbacks.PingSuccessListener;
|
79
|
|
-import com.dmdirc.parser.interfaces.callbacks.PrivateActionListener;
|
80
|
|
-import com.dmdirc.parser.interfaces.callbacks.PrivateCtcpListener;
|
81
|
|
-import com.dmdirc.parser.interfaces.callbacks.PrivateCtcpReplyListener;
|
82
|
|
-import com.dmdirc.parser.interfaces.callbacks.PrivateMessageListener;
|
83
|
|
-import com.dmdirc.parser.interfaces.callbacks.PrivateNoticeListener;
|
84
|
|
-import com.dmdirc.parser.interfaces.callbacks.ServerErrorListener;
|
85
|
|
-import com.dmdirc.parser.interfaces.callbacks.ServerNoticeListener;
|
86
|
|
-import com.dmdirc.parser.interfaces.callbacks.ServerReadyListener;
|
87
|
|
-import com.dmdirc.parser.interfaces.callbacks.SocketCloseListener;
|
88
|
|
-import com.dmdirc.parser.interfaces.callbacks.UnknownActionListener;
|
89
|
|
-import com.dmdirc.parser.interfaces.callbacks.UnknownMessageListener;
|
90
|
|
-import com.dmdirc.parser.interfaces.callbacks.UnknownNoticeListener;
|
91
|
|
-import com.dmdirc.parser.interfaces.callbacks.UserModeChangeListener;
|
92
|
|
-import com.dmdirc.parser.interfaces.callbacks.UserModeDiscoveryListener;
|
93
|
|
-import com.dmdirc.parser.interfaces.callbacks.WallDesyncListener;
|
94
|
|
-import com.dmdirc.parser.interfaces.callbacks.WallopListener;
|
95
|
|
-import com.dmdirc.parser.interfaces.callbacks.WalluserListener;
|
96
|
89
|
import com.dmdirc.ui.StatusMessage;
|
97
|
90
|
import com.dmdirc.util.EventUtils;
|
98
|
91
|
|
99
|
92
|
import com.google.common.base.Strings;
|
100
|
93
|
|
101
|
|
-import java.util.Date;
|
102
|
94
|
import java.util.List;
|
103
|
95
|
import java.util.Optional;
|
104
|
96
|
import java.util.Random;
|
|
@@ -108,22 +100,13 @@ import javax.annotation.Nonnull;
|
108
|
100
|
import org.slf4j.Logger;
|
109
|
101
|
import org.slf4j.LoggerFactory;
|
110
|
102
|
|
|
103
|
+import net.engio.mbassy.listener.Handler;
|
|
104
|
+
|
111
|
105
|
|
112
|
106
|
/**
|
113
|
107
|
* Handles parser events for a Server object.
|
114
|
108
|
*/
|
115
|
|
-public class ServerEventHandler extends EventHandler implements
|
116
|
|
- ChannelSelfJoinListener, PrivateMessageListener, PrivateActionListener,
|
117
|
|
- ErrorInfoListener, PrivateCtcpListener, PrivateCtcpReplyListener,
|
118
|
|
- SocketCloseListener, PrivateNoticeListener, MotdStartListener,
|
119
|
|
- MotdLineListener, MotdEndListener, NumericListener, PingFailureListener,
|
120
|
|
- PingSuccessListener, AwayStateListener, ConnectErrorListener,
|
121
|
|
- NickInUseListener, AuthNoticeListener, UnknownNoticeListener,
|
122
|
|
- UserModeChangeListener, InviteListener, WallopListener,
|
123
|
|
- WalluserListener, WallDesyncListener, NickChangeListener,
|
124
|
|
- ServerErrorListener, PingSentListener, UserModeDiscoveryListener,
|
125
|
|
- ServerNoticeListener, UnknownMessageListener, UnknownActionListener,
|
126
|
|
- ServerReadyListener {
|
|
109
|
+public class ServerEventHandler extends EventHandler {
|
127
|
110
|
|
128
|
111
|
private static final Logger LOG = LoggerFactory.getLogger(ServerEventHandler.class);
|
129
|
112
|
|
|
@@ -142,147 +125,135 @@ public class ServerEventHandler extends EventHandler implements
|
142
|
125
|
*/
|
143
|
126
|
public ServerEventHandler(final Server owner, final GroupChatManagerImpl groupChatManager,
|
144
|
127
|
final DMDircMBassador eventBus) {
|
145
|
|
- super(eventBus);
|
146
|
128
|
this.owner = owner;
|
147
|
129
|
this.groupChatManager = groupChatManager;
|
148
|
130
|
this.eventBus = eventBus;
|
149
|
131
|
}
|
150
|
132
|
|
151
|
|
- @Override
|
152
|
|
- @SuppressWarnings("unchecked")
|
153
|
|
- protected <T extends CallbackInterface> void addCallback(
|
154
|
|
- final CallbackManager cbm, final Class<T> type) {
|
155
|
|
- cbm.addCallback(type, (T) this);
|
156
|
|
- }
|
157
|
|
-
|
158
|
133
|
@Nonnull
|
159
|
134
|
@Override
|
160
|
135
|
protected Connection getConnection() {
|
161
|
136
|
return owner;
|
162
|
137
|
}
|
163
|
138
|
|
164
|
|
- @Override
|
165
|
|
- public void onChannelSelfJoin(final Parser parser, final Date date, final ChannelInfo channel) {
|
166
|
|
- checkParser(parser);
|
167
|
|
- groupChatManager.addChannel(channel);
|
|
139
|
+ @Handler
|
|
140
|
+ public void onChannelSelfJoin(final ChannelSelfJoinEvent event) {
|
|
141
|
+ checkParser(event.getParser());
|
|
142
|
+ groupChatManager.addChannel(event.getChannel());
|
168
|
143
|
}
|
169
|
144
|
|
170
|
|
- @Override
|
171
|
|
- public void onPrivateMessage(final Parser parser, final Date date, final String message,
|
172
|
|
- final String host) {
|
173
|
|
- checkParser(parser);
|
|
145
|
+ @Handler
|
|
146
|
+ public void onPrivateMessage(final PrivateMessageEvent event) {
|
|
147
|
+ checkParser(event.getParser());
|
174
|
148
|
|
175
|
|
- if (!owner.hasQuery(host)) {
|
176
|
|
- owner.getQuery(host).onPrivateMessage(parser, date, message, host);
|
|
149
|
+ if (!owner.hasQuery(event.getHost())) {
|
|
150
|
+ owner.getQuery(event.getHost()).onPrivateMessage(event);
|
177
|
151
|
}
|
178
|
152
|
}
|
179
|
153
|
|
180
|
|
- @Override
|
181
|
|
- public void onPrivateAction(final Parser parser, final Date date, final String message,
|
182
|
|
- final String host) {
|
183
|
|
- checkParser(parser);
|
|
154
|
+ @Handler
|
|
155
|
+ public void onPrivateAction(final PrivateActionEvent event) {
|
|
156
|
+ checkParser(event.getParser());
|
184
|
157
|
|
185
|
|
- if (!owner.hasQuery(host)) {
|
186
|
|
- owner.getQuery(host).onPrivateAction(parser, date, message, host);
|
|
158
|
+ if (!owner.hasQuery(event.getHost())) {
|
|
159
|
+ owner.getQuery(event.getHost()).onPrivateAction(event);
|
187
|
160
|
}
|
188
|
161
|
}
|
189
|
162
|
|
190
|
163
|
@SuppressWarnings("ThrowableResultOfMethodCallIgnored")
|
191
|
|
- @Override
|
192
|
|
- public void onErrorInfo(final Parser parser, final Date date, final ParserError errorInfo) {
|
|
164
|
+ @Handler
|
|
165
|
+ public void onErrorInfo(final ErrorInfoEvent event) {
|
193
|
166
|
|
194
|
167
|
final StringBuilder errorString = new StringBuilder();
|
195
|
168
|
errorString.append("Parser exception.\n\n");
|
196
|
169
|
|
197
|
170
|
errorString.append("\tLast line:\t");
|
198
|
|
- errorString.append(errorInfo.getLastLine()).append('\n');
|
|
171
|
+ errorString.append(event.getErrorInfo().getLastLine()).append('\n');
|
199
|
172
|
|
200
|
173
|
errorString.append("\tServer:\t");
|
201
|
174
|
errorString.append(owner.getAddress()).append('\n');
|
202
|
175
|
|
203
|
176
|
errorString.append("\tAdditional Information:\n");
|
204
|
|
- for (final String line : parser.getServerInformationLines()) {
|
|
177
|
+ for (final String line : event.getParser().getServerInformationLines()) {
|
205
|
178
|
errorString.append("\t\t").append(line).append('\n');
|
206
|
179
|
}
|
207
|
180
|
|
208
|
|
- final Exception ex = errorInfo.isException() ? errorInfo.getException()
|
|
181
|
+ final Exception ex = event.getErrorInfo().isException() ? event.getErrorInfo().getException()
|
209
|
182
|
: new Exception(errorString.toString()); // NOPMD
|
210
|
183
|
|
211
|
184
|
final ErrorLevel errorLevel = ErrorLevel.UNKNOWN;
|
212
|
|
- if (errorInfo.isUserError()) {
|
213
|
|
- eventBus.publishAsync(new UserErrorEvent(errorLevel, ex, errorInfo.getData(), ""));
|
|
185
|
+ if (event.getErrorInfo().isUserError()) {
|
|
186
|
+ eventBus.publishAsync(new UserErrorEvent(errorLevel, ex, event.getErrorInfo().getData(), ""));
|
214
|
187
|
} else {
|
215
|
|
- eventBus.publishAsync(new AppErrorEvent(errorLevel, ex, errorInfo.getData(), ""));
|
|
188
|
+ eventBus.publishAsync(new AppErrorEvent(errorLevel, ex, event.getErrorInfo().getData(), ""));
|
216
|
189
|
}
|
217
|
190
|
}
|
218
|
191
|
|
219
|
|
- @Override
|
220
|
|
- public void onPrivateCTCP(final Parser parser, final Date date, final String type,
|
221
|
|
- final String message, final String host) {
|
222
|
|
- checkParser(parser);
|
223
|
|
-
|
224
|
|
- final ServerCtcpEvent event = new ServerCtcpEvent(owner, owner.getUser(host),
|
225
|
|
- type, message);
|
226
|
|
- eventBus.publish(event);
|
227
|
|
- if (!event.isHandled()) {
|
228
|
|
- owner.sendCTCPReply(owner.getUser(host).getNickname(), type, message);
|
|
192
|
+ @Handler
|
|
193
|
+ public void onPrivateCTCP(final PrivateCTCPEvent event) {
|
|
194
|
+ checkParser(event.getParser());
|
|
195
|
+
|
|
196
|
+ final ServerCtcpEvent coreEvent = new ServerCtcpEvent(owner, owner.getUser(event.getHost()),
|
|
197
|
+ event.getType(), event.getMessage());
|
|
198
|
+ eventBus.publish(coreEvent);
|
|
199
|
+ if (!coreEvent.isHandled()) {
|
|
200
|
+ owner.sendCTCPReply(owner.getUser(event.getHost()).getNickname(), event.getType(),
|
|
201
|
+ event.getMessage());
|
229
|
202
|
}
|
230
|
203
|
}
|
231
|
204
|
|
232
|
|
- @Override
|
233
|
|
- public void onPrivateCTCPReply(final Parser parser, final Date date, final String type,
|
234
|
|
- final String message, final String host) {
|
235
|
|
- checkParser(parser);
|
236
|
|
- eventBus.publish(new ServerCtcpReplyEvent(owner, owner.getUser(host), type, message));
|
|
205
|
+ @Handler
|
|
206
|
+ public void onPrivateCTCPReply(final PrivateCTCPReplyEvent event) {
|
|
207
|
+ checkParser(event.getParser());
|
|
208
|
+ eventBus.publish(new ServerCtcpReplyEvent(owner, owner.getUser(event.getHost()),
|
|
209
|
+ event.getType(), event.getMessage()));
|
237
|
210
|
}
|
238
|
211
|
|
239
|
|
- @Override
|
240
|
|
- public void onSocketClosed(final Parser parser, final Date date) {
|
241
|
|
- if (owner.getParser().orElse(null) == parser) {
|
|
212
|
+ @Handler
|
|
213
|
+ public void onSocketClosed(final SocketCloseEvent event) {
|
|
214
|
+ if (owner.getParser().orElse(null) == event.getParser()) {
|
242
|
215
|
owner.onSocketClosed();
|
243
|
216
|
}
|
244
|
217
|
}
|
245
|
218
|
|
246
|
|
- @Override
|
247
|
|
- public void onPrivateNotice(final Parser parser, final Date date,
|
248
|
|
- final String message, final String host) {
|
249
|
|
- checkParser(parser);
|
250
|
|
- eventBus.publishAsync(new ServerNoticeEvent(owner, owner.getLocalUser().get(), message));
|
|
219
|
+ @Handler
|
|
220
|
+ public void onPrivateNotice(final PrivateNoticeEvent event) {
|
|
221
|
+ checkParser(event.getParser());
|
|
222
|
+ eventBus.publishAsync(new ServerNoticeEvent(owner, owner.getLocalUser().get(),
|
|
223
|
+ event.getMessage()));
|
251
|
224
|
}
|
252
|
225
|
|
253
|
|
- @Override
|
254
|
|
- public void onServerNotice(final Parser parser, final Date date,
|
255
|
|
- final String message, final String host) {
|
256
|
|
- checkParser(parser);
|
257
|
|
- eventBus.publishAsync(new ServerServerNoticeEvent(owner, owner.getLocalUser().get(),
|
258
|
|
- message));
|
|
226
|
+ @Handler
|
|
227
|
+ public void onServerNotice(final com.dmdirc.parser.events.ServerNoticeEvent event) {
|
|
228
|
+ checkParser(event.getParser());
|
|
229
|
+ eventBus.publishAsync(
|
|
230
|
+ new ServerServerNoticeEvent(owner, owner.getLocalUser().get(), event.getMessage()));
|
259
|
231
|
}
|
260
|
232
|
|
261
|
|
- @Override
|
262
|
|
- public void onMOTDStart(final Parser parser, final Date date, final String data) {
|
263
|
|
- checkParser(parser);
|
264
|
|
- eventBus.publishAsync(new ServerMotdStartEvent(owner, data));
|
|
233
|
+ @Handler
|
|
234
|
+ public void onMOTDStart(final MOTDStartEvent event) {
|
|
235
|
+ checkParser(event.getParser());
|
|
236
|
+ eventBus.publishAsync(new ServerMotdStartEvent(owner, event.getData()));
|
265
|
237
|
}
|
266
|
238
|
|
267
|
|
- @Override
|
268
|
|
- public void onMOTDLine(final Parser parser, final Date date, final String data) {
|
269
|
|
- checkParser(parser);
|
270
|
|
- eventBus.publishAsync(new ServerMotdLineEvent(owner, data));
|
|
239
|
+ @Handler
|
|
240
|
+ public void onMOTDLine(final MOTDLineEvent event) {
|
|
241
|
+ checkParser(event.getParser());
|
|
242
|
+ eventBus.publishAsync(new ServerMotdLineEvent(owner, event.getData()));
|
271
|
243
|
}
|
272
|
244
|
|
273
|
|
- @Override
|
274
|
|
- public void onMOTDEnd(final Parser parser, final Date date,
|
275
|
|
- final boolean noMOTD, final String data) {
|
276
|
|
- checkParser(parser);
|
277
|
|
- eventBus.publishAsync(new ServerMotdEndEvent(owner, data));
|
|
245
|
+ @Handler
|
|
246
|
+ public void onMOTDEnd(final MOTDEndEvent event) {
|
|
247
|
+ checkParser(event.getParser());
|
|
248
|
+ eventBus.publishAsync(new ServerMotdEndEvent(owner, event.getData()));
|
278
|
249
|
}
|
279
|
250
|
|
280
|
|
- @Override
|
281
|
|
- public void onNumeric(final Parser parser, final Date date, final int numeric,
|
282
|
|
- final String[] token) {
|
283
|
|
- checkParser(parser);
|
|
251
|
+ @Handler
|
|
252
|
+ public void onNumeric(final NumericEvent event) {
|
|
253
|
+ checkParser(event.getParser());
|
284
|
254
|
|
285
|
|
- final String sansIrcd = "numeric_" + Strings.padStart(String.valueOf(numeric), 3, '0');
|
|
255
|
+ final String sansIrcd = "numeric_" + Strings
|
|
256
|
+ .padStart(String.valueOf(event.getNumeric()), 3, '0');
|
286
|
257
|
String target = "";
|
287
|
258
|
|
288
|
259
|
if (owner.getConfigManager().hasOptionString("formatter", sansIrcd)) {
|
|
@@ -291,23 +262,24 @@ public class ServerEventHandler extends EventHandler implements
|
291
|
262
|
target = "numeric_unknown";
|
292
|
263
|
}
|
293
|
264
|
|
294
|
|
- final ServerNumericEvent event = new ServerNumericEvent(owner, numeric, token);
|
295
|
|
- final String format = EventUtils.postDisplayable(eventBus, event, target);
|
296
|
|
- owner.handleNotification(format, (Object[]) token);
|
|
265
|
+ final ServerNumericEvent coreEvent = new ServerNumericEvent(owner, event.getNumeric(),
|
|
266
|
+ event.getToken());
|
|
267
|
+ final String format = EventUtils.postDisplayable(eventBus, coreEvent, target);
|
|
268
|
+ owner.handleNotification(format, (Object[]) event.getToken());
|
297
|
269
|
}
|
298
|
270
|
|
299
|
|
- @Override
|
300
|
|
- public void onPingFailed(final Parser parser, final Date date) {
|
301
|
|
- checkParser(parser);
|
|
271
|
+ @Handler
|
|
272
|
+ public void onPingFailed(final PingFailureEvent event) {
|
|
273
|
+ checkParser(event.getParser());
|
302
|
274
|
|
303
|
275
|
eventBus.publishAsync(new StatusBarMessageEvent(new StatusMessage(
|
304
|
276
|
"No ping reply from " + owner.getName() + " for over " +
|
305
|
|
- (int) Math.floor(parser.getPingTime() / 1000.0) + " seconds.",
|
|
277
|
+ (int) Math.floor(event.getParser().getPingTime() / 1000.0) + " seconds.",
|
306
|
278
|
owner.getConfigManager())));
|
307
|
279
|
|
308
|
|
- eventBus.publishAsync(new ServerNoPingEvent(owner, parser.getPingTime()));
|
|
280
|
+ eventBus.publishAsync(new ServerNoPingEvent(owner, event.getParser().getPingTime()));
|
309
|
281
|
|
310
|
|
- if (parser.getPingTime()
|
|
282
|
+ if (event.getParser().getPingTime()
|
311
|
283
|
>= owner.getConfigManager().getOptionInt("server", "pingtimeout")) {
|
312
|
284
|
LOG.warn("Server appears to be stoned, reconnecting");
|
313
|
285
|
eventBus.publishAsync(new ServerStonedEvent(owner));
|
|
@@ -315,47 +287,47 @@ public class ServerEventHandler extends EventHandler implements
|
315
|
287
|
}
|
316
|
288
|
}
|
317
|
289
|
|
318
|
|
- @Override
|
319
|
|
- public void onPingSent(final Parser parser, final Date date) {
|
320
|
|
- checkParser(parser);
|
|
290
|
+ @Handler
|
|
291
|
+ public void onPingSent(final PingSentEvent event) {
|
|
292
|
+ checkParser(event.getParser());
|
321
|
293
|
eventBus.publishAsync(new ServerPingSentEvent(owner));
|
322
|
294
|
}
|
323
|
295
|
|
324
|
|
- @Override
|
325
|
|
- public void onPingSuccess(final Parser parser, final Date date) {
|
326
|
|
- checkParser(parser);
|
|
296
|
+ @Handler
|
|
297
|
+ public void onPingSuccess(final PingSuccessEvent event) {
|
|
298
|
+ checkParser(event.getParser());
|
327
|
299
|
eventBus.publishAsync(new ServerGotPingEvent(owner,
|
328
|
300
|
owner.getParser().get().getServerLatency()));
|
329
|
301
|
}
|
330
|
302
|
|
331
|
|
- @Override
|
332
|
|
- public void onAwayState(final Parser parser, final Date date, final AwayState oldState,
|
333
|
|
- final AwayState currentState, final String reason) {
|
334
|
|
- checkParser(parser);
|
|
303
|
+ @Handler
|
|
304
|
+ public void onAwayState(final AwayStateEvent event) {
|
|
305
|
+ checkParser(event.getParser());
|
335
|
306
|
|
336
|
|
- owner.updateAwayState(currentState == AwayState.AWAY ? Optional.of(reason) : Optional.empty());
|
|
307
|
+ owner.updateAwayState(event.getNewState() == AwayState.AWAY ?
|
|
308
|
+ Optional.of(event.getReason()) : Optional.empty());
|
337
|
309
|
|
338
|
|
- if (currentState == AwayState.AWAY) {
|
339
|
|
- eventBus.publishAsync(new ServerAwayEvent(owner, reason));
|
340
|
|
- } else if (oldState != AwayState.UNKNOWN) {
|
|
310
|
+ if (event.getNewState() == AwayState.AWAY) {
|
|
311
|
+ eventBus.publishAsync(new ServerAwayEvent(owner, event.getReason()));
|
|
312
|
+ } else if (event.getOldState() != AwayState.UNKNOWN) {
|
341
|
313
|
eventBus.publishAsync(new ServerBackEvent(owner));
|
342
|
314
|
}
|
343
|
315
|
}
|
344
|
316
|
|
345
|
|
- @Override
|
346
|
|
- public void onConnectError(final Parser parser, final Date date, final ParserError errorInfo) {
|
347
|
|
- checkParser(parser);
|
348
|
|
- owner.onConnectError(errorInfo);
|
|
317
|
+ @Handler
|
|
318
|
+ public void onConnectError(final ConnectErrorEvent event) {
|
|
319
|
+ checkParser(event.getParser());
|
|
320
|
+ owner.onConnectError(event.getErrorInfo());
|
349
|
321
|
}
|
350
|
322
|
|
351
|
|
- @Override
|
352
|
|
- public void onNickInUse(final Parser parser, final Date date, final String nickname) {
|
353
|
|
- checkParser(parser);
|
|
323
|
+ @Handler
|
|
324
|
+ public void onNickInUse(final NickInUseEvent event) {
|
|
325
|
+ checkParser(event.getParser());
|
354
|
326
|
|
355
|
|
- final String lastNick = parser.getLocalClient().getNickname();
|
|
327
|
+ final String lastNick = event.getParser().getLocalClient().getNickname();
|
356
|
328
|
|
357
|
329
|
// If our last nick is still valid, ignore the in use message
|
358
|
|
- if (!parser.getStringConverter().equalsIgnoreCase(lastNick, nickname)) {
|
|
330
|
+ if (!event.getParser().getStringConverter().equalsIgnoreCase(lastNick, event.getNickname())) {
|
359
|
331
|
return;
|
360
|
332
|
}
|
361
|
333
|
|
|
@@ -367,7 +339,7 @@ public class ServerEventHandler extends EventHandler implements
|
367
|
339
|
// Loop so we can check case sensitivity
|
368
|
340
|
for (String alt : alts) {
|
369
|
341
|
offset++;
|
370
|
|
- if (parser.getStringConverter().equalsIgnoreCase(alt, lastNick)) {
|
|
342
|
+ if (event.getParser().getStringConverter().equalsIgnoreCase(alt, lastNick)) {
|
371
|
343
|
break;
|
372
|
344
|
}
|
373
|
345
|
}
|
|
@@ -376,160 +348,154 @@ public class ServerEventHandler extends EventHandler implements
|
376
|
348
|
newNick = alts.get(offset);
|
377
|
349
|
}
|
378
|
350
|
|
379
|
|
- parser.getLocalClient().setNickname(newNick);
|
|
351
|
+ event.getParser().getLocalClient().setNickname(newNick);
|
380
|
352
|
}
|
381
|
353
|
|
382
|
|
- @Override
|
383
|
|
- public void onServerReady(final Parser parser, final Date date) {
|
384
|
|
- checkParser(parser);
|
|
354
|
+ @Handler
|
|
355
|
+ public void onServerReady(final ServerReadyEvent event) {
|
|
356
|
+ checkParser(event.getParser());
|
385
|
357
|
owner.onPost005();
|
386
|
358
|
}
|
387
|
359
|
|
388
|
|
- @Override
|
389
|
|
- public void onNoticeAuth(final Parser parser, final Date date, final String data) {
|
390
|
|
- checkParser(parser);
|
|
360
|
+ @Handler
|
|
361
|
+ public void onNoticeAuth(final AuthNoticeEvent event) {
|
|
362
|
+ checkParser(event.getParser());
|
391
|
363
|
|
392
|
|
- final ServerAuthNoticeEvent event = new ServerAuthNoticeEvent(owner, data);
|
393
|
|
- final String format = EventUtils.postDisplayable(eventBus, event, "authNotice");
|
394
|
|
- owner.doNotification(format, data);
|
|
364
|
+ final ServerAuthNoticeEvent coreEvent = new ServerAuthNoticeEvent(owner, event.getMessage());
|
|
365
|
+ final String format = EventUtils.postDisplayable(eventBus, coreEvent, "authNotice");
|
|
366
|
+ owner.doNotification(format, event.getDate());
|
395
|
367
|
}
|
396
|
368
|
|
397
|
|
- @Override
|
398
|
|
- public void onUnknownNotice(final Parser parser, final Date date, final String message,
|
399
|
|
- final String target, final String host) {
|
400
|
|
- checkParser(parser);
|
|
369
|
+ @Handler
|
|
370
|
+ public void onUnknownNotice(final UnknownNoticeEvent event) {
|
|
371
|
+ checkParser(event.getParser());
|
401
|
372
|
|
402
|
373
|
final ServerUnknownNoticeEvent
|
403
|
|
- event = new ServerUnknownNoticeEvent(owner, host, target, message);
|
404
|
|
- final String format = EventUtils.postDisplayable(eventBus, event, "unknownNotice");
|
405
|
|
- owner.doNotification(format, host, target, message);
|
|
374
|
+ coreEvent = new ServerUnknownNoticeEvent(owner, event.getHost(), event.getTarget(),
|
|
375
|
+ event.getMessage());
|
|
376
|
+ final String format = EventUtils.postDisplayable(eventBus, coreEvent, "unknownNotice");
|
|
377
|
+ owner.doNotification(format, event.getHost(), event.getTarget(), event.getMessage());
|
406
|
378
|
}
|
407
|
379
|
|
408
|
|
- @Override
|
409
|
|
- public void onUnknownMessage(final Parser parser, final Date date, final String message,
|
410
|
|
- final String target, final String host) {
|
411
|
|
- checkParser(parser);
|
|
380
|
+ @Handler
|
|
381
|
+ public void onUnknownMessage(final UnknownMessageEvent event) {
|
|
382
|
+ checkParser(event.getParser());
|
412
|
383
|
|
413
|
|
- if (parser.getLocalClient().equals(parser.getClient(host))) {
|
|
384
|
+ if (event.getParser().getLocalClient().equals(event.getParser().getClient(event.getHost()))) {
|
414
|
385
|
// Local client
|
415
|
|
- eventBus.publishAsync(new QuerySelfMessageEvent(owner.getQuery(target),
|
416
|
|
- owner.getLocalUser().get(), message));
|
|
386
|
+ eventBus.publishAsync(
|
|
387
|
+ new QuerySelfMessageEvent(owner.getQuery(event.getTarget()), owner.getLocalUser().get(),
|
|
388
|
+ event.getMessage()));
|
417
|
389
|
} else {
|
418
|
|
- final ServerUnknownMessageEvent event
|
419
|
|
- = new ServerUnknownMessageEvent(owner, host, target, message);
|
420
|
|
- final String format = EventUtils.postDisplayable(eventBus, event, "unknownMessage");
|
421
|
|
- owner.doNotification(format, host, target, message);
|
|
390
|
+ final ServerUnknownMessageEvent coreEvent
|
|
391
|
+ = new ServerUnknownMessageEvent(owner, event.getHost(), event.getTarget(), event.getMessage());
|
|
392
|
+ final String format = EventUtils.postDisplayable(eventBus, coreEvent, "unknownMessage");
|
|
393
|
+ owner.doNotification(format, event.getHost(), event.getTarget(), event.getMessage());
|
422
|
394
|
}
|
423
|
395
|
}
|
424
|
396
|
|
425
|
|
- @Override
|
426
|
|
- public void onUnknownAction(final Parser parser, final Date date, final String message,
|
427
|
|
- final String target, final String host) {
|
428
|
|
- checkParser(parser);
|
|
397
|
+ @Handler
|
|
398
|
+ public void onUnknownAction(final UnknownActionEvent event) {
|
|
399
|
+ checkParser(event.getParser());
|
429
|
400
|
|
430
|
|
- if (parser.getLocalClient().equals(parser.getClient(host))) {
|
|
401
|
+ if (event.getParser().getLocalClient().equals(event.getParser().getClient(event.getHost()))) {
|
431
|
402
|
// Local client
|
432
|
|
- eventBus.publishAsync(new QuerySelfActionEvent(owner.getQuery(target),
|
433
|
|
- owner.getLocalUser().get(), message));
|
|
403
|
+ eventBus.publishAsync(
|
|
404
|
+ new QuerySelfActionEvent(owner.getQuery(event.getTarget()), owner.getLocalUser().get(),
|
|
405
|
+ event.getMessage()));
|
434
|
406
|
} else {
|
435
|
|
- final ServerUnknownActionEvent event
|
436
|
|
- = new ServerUnknownActionEvent(owner, host, target, message);
|
437
|
|
- final String format = EventUtils.postDisplayable(eventBus, event, "unknownAction");
|
438
|
|
- owner.doNotification(format, host, target, message);
|
|
407
|
+ final ServerUnknownActionEvent coreEvent
|
|
408
|
+ = new ServerUnknownActionEvent(owner, event.getHost(), event.getTarget(), event.getMessage());
|
|
409
|
+ final String format = EventUtils.postDisplayable(eventBus, coreEvent, "unknownAction");
|
|
410
|
+ owner.doNotification(format, event.getHost(), event.getTarget(), event.getMessage());
|
439
|
411
|
}
|
440
|
412
|
}
|
441
|
413
|
|
442
|
|
- @Override
|
443
|
|
- public void onUserModeChanged(final Parser parser, final Date date,
|
444
|
|
- final ClientInfo client, final String host, final String modes) {
|
445
|
|
- checkParser(parser);
|
|
414
|
+ @Handler
|
|
415
|
+ public void onUserModeChanged(final UserModeChangeEvent event) {
|
|
416
|
+ checkParser(event.getParser());
|
446
|
417
|
|
447
|
|
- final ServerUserModesEvent event = new ServerUserModesEvent(owner,
|
448
|
|
- owner.getUser(client.getHostname()), modes);
|
449
|
|
- final String format = EventUtils.postDisplayable(eventBus, event, "userModeChanged");
|
450
|
|
- owner.doNotification(format, owner.getUser(client.getHostname()), modes);
|
|
418
|
+ final ServerUserModesEvent coreEvent = new ServerUserModesEvent(owner,
|
|
419
|
+ owner.getUser(event.getClient().getHostname()), event.getModes());
|
|
420
|
+ final String format = EventUtils.postDisplayable(eventBus, coreEvent, "userModeChanged");
|
|
421
|
+ owner.doNotification(format, owner.getUser(event.getClient().getHostname()), event.getModes());
|
451
|
422
|
}
|
452
|
423
|
|
453
|
|
- @Override
|
454
|
|
- public void onUserModeDiscovered(final Parser parser, final Date date,
|
455
|
|
- final ClientInfo client, final String modes) {
|
456
|
|
- checkParser(parser);
|
|
424
|
+ @Handler
|
|
425
|
+ public void onUserModeDiscovered(final UserModeDiscoveryEvent event) {
|
|
426
|
+ checkParser(event.getParser());
|
457
|
427
|
|
458
|
|
- final ServerUserModesEvent event = new ServerUserModesEvent(owner,
|
459
|
|
- owner.getUser(client.getHostname()), modes);
|
460
|
|
- final String format = EventUtils.postDisplayable(eventBus, event,
|
461
|
|
- modes.isEmpty() || "+".equals(modes) ? "userNoModes" : "userModeDiscovered");
|
462
|
|
- owner.doNotification(format, owner.getUser(client.getHostname()), modes);
|
|
428
|
+ final ServerUserModesEvent coreEvent = new ServerUserModesEvent(owner,
|
|
429
|
+ owner.getUser(event.getClient().getHostname()), event.getModes());
|
|
430
|
+ final String format = EventUtils.postDisplayable(eventBus, coreEvent,
|
|
431
|
+ event.getModes().isEmpty() || "+".equals(event.getModes()) ? "userNoModes" : "userModeDiscovered");
|
|
432
|
+ owner.doNotification(format, owner.getUser(event.getClient().getHostname()), event.getModes());
|
463
|
433
|
}
|
464
|
434
|
|
465
|
|
- @Override
|
466
|
|
- public void onInvite(final Parser parser, final Date date, final String userHost,
|
467
|
|
- final String channel) {
|
468
|
|
- checkParser(parser);
|
|
435
|
+ @Handler
|
|
436
|
+ public void onInvite(final InviteEvent event) {
|
|
437
|
+ checkParser(event.getParser());
|
469
|
438
|
|
470
|
|
- final Invite invite = new Invite(owner.getInviteManager(), channel, owner.getUser(userHost));
|
|
439
|
+ final Invite invite = new Invite(owner.getInviteManager(), event.getChannel(),
|
|
440
|
+ owner.getUser(event.getUserHost()));
|
471
|
441
|
owner.getInviteManager().addInvite(invite);
|
472
|
|
- final ServerInviteReceivedEvent event = new ServerInviteReceivedEvent(owner,
|
473
|
|
- owner.getUser(userHost), channel, invite);
|
474
|
|
- final String format = EventUtils.postDisplayable(eventBus, event, "inviteReceived");
|
475
|
|
- owner.doNotification(format, owner.getUser(userHost), channel);
|
|
442
|
+ final ServerInviteReceivedEvent coreEvent = new ServerInviteReceivedEvent(owner,
|
|
443
|
+ owner.getUser(event.getUserHost()), event.getChannel(), invite);
|
|
444
|
+ final String format = EventUtils.postDisplayable(eventBus, coreEvent, "inviteReceived");
|
|
445
|
+ owner.doNotification(format, owner.getUser(event.getUserHost()), event.getChannel());
|
476
|
446
|
}
|
477
|
447
|
|
478
|
|
- @Override
|
479
|
|
- public void onWallop(final Parser parser, final Date date, final String message,
|
480
|
|
- final String host) {
|
481
|
|
- checkParser(parser);
|
|
448
|
+ @Handler
|
|
449
|
+ public void onWallop(final WallopEvent event) {
|
|
450
|
+ checkParser(event.getParser());
|
482
|
451
|
|
483
|
|
- final ServerWallopsEvent event = new ServerWallopsEvent(owner,
|
484
|
|
- owner.getUser(host), message);
|
485
|
|
- final String format = EventUtils.postDisplayable(eventBus, event, "wallop");
|
486
|
|
- owner.doNotification(format, owner.getUser(host), message);
|
|
452
|
+ final ServerWallopsEvent coreEvent = new ServerWallopsEvent(owner,
|
|
453
|
+ owner.getUser(event.getHost()), event.getMessage());
|
|
454
|
+ final String format = EventUtils.postDisplayable(eventBus, coreEvent, "wallop");
|
|
455
|
+ owner.doNotification(format, owner.getUser(event.getHost()), event.getMessage());
|
487
|
456
|
|
488
|
457
|
}
|
489
|
458
|
|
490
|
|
- @Override
|
491
|
|
- public void onWalluser(final Parser parser, final Date date, final String message,
|
492
|
|
- final String host) {
|
493
|
|
- checkParser(parser);
|
|
459
|
+ @Handler
|
|
460
|
+ public void onWalluser(final WalluserEvent event) {
|
|
461
|
+ checkParser(event.getParser());
|
494
|
462
|
|
495
|
|
- final ServerWallusersEvent event = new ServerWallusersEvent(owner,
|
496
|
|
- owner.getLocalUser().get(), message);
|
497
|
|
- final String format = EventUtils.postDisplayable(eventBus, event, "walluser");
|
498
|
|
- owner.doNotification(format, owner.getUser(host), message);
|
|
463
|
+ final ServerWallusersEvent coreEvent = new ServerWallusersEvent(owner,
|
|
464
|
+ owner.getLocalUser().get(), event.getMessage());
|
|
465
|
+ final String format = EventUtils.postDisplayable(eventBus, coreEvent, "walluser");
|
|
466
|
+ owner.doNotification(format, owner.getUser(event.getHost()), event.getMessage());
|
499
|
467
|
}
|
500
|
468
|
|
501
|
|
- @Override
|
502
|
|
- public void onWallDesync(final Parser parser, final Date date, final String message,
|
503
|
|
- final String host) {
|
504
|
|
- checkParser(parser);
|
|
469
|
+ @Handler
|
|
470
|
+ public void onWallDesync(final WallDesyncEvent event) {
|
|
471
|
+ checkParser(event.getParser());
|
505
|
472
|
|
506
|
|
- final ServerWalldesyncEvent event = new ServerWalldesyncEvent(owner,
|
507
|
|
- owner.getLocalUser().get(), message);
|
508
|
|
- final String format = EventUtils.postDisplayable(eventBus, event, "walldesync");
|
509
|
|
- owner.doNotification(format, owner.getUser(host), message);
|
|
473
|
+ final ServerWalldesyncEvent coreEvent = new ServerWalldesyncEvent(owner,
|
|
474
|
+ owner.getLocalUser().get(), event.getMessage());
|
|
475
|
+ final String format = EventUtils.postDisplayable(eventBus, coreEvent, "walldesync");
|
|
476
|
+ owner.doNotification(format, owner.getUser(event.getHost()), event.getMessage());
|
510
|
477
|
}
|
511
|
478
|
|
512
|
|
- @Override
|
513
|
|
- public void onNickChanged(final Parser parser, final Date date, final ClientInfo client,
|
514
|
|
- final String oldNick) {
|
515
|
|
- checkParser(parser);
|
516
|
|
-
|
517
|
|
- if (client.equals(owner.getParser().get().getLocalClient())) {
|
518
|
|
- final ServerNickChangeEvent event = new ServerNickChangeEvent(owner, oldNick,
|
519
|
|
- client.getNickname());
|
520
|
|
- final String format = EventUtils.postDisplayable(eventBus, event, "selfNickChange");
|
521
|
|
- owner.doNotification(format, oldNick, client.getNickname());
|
|
479
|
+ @Handler
|
|
480
|
+ public void onNickChanged(final NickChangeEvent event) {
|
|
481
|
+ checkParser(event.getParser());
|
|
482
|
+
|
|
483
|
+ if (event.getClient().equals(owner.getParser().get().getLocalClient())) {
|
|
484
|
+ final ServerNickChangeEvent coreEvent = new ServerNickChangeEvent(owner,
|
|
485
|
+ event.getOldNick(), event.getClient().getNickname());
|
|
486
|
+ final String format = EventUtils.postDisplayable(eventBus, coreEvent, "selfNickChange");
|
|
487
|
+ owner.doNotification(format, event.getOldNick(), event.getClient().getNickname());
|
522
|
488
|
owner.updateTitle();
|
523
|
489
|
}
|
524
|
490
|
}
|
525
|
491
|
|
526
|
|
- @Override
|
527
|
|
- public void onServerError(final Parser parser, final Date date, final String message) {
|
528
|
|
- checkParser(parser);
|
|
492
|
+ @Handler
|
|
493
|
+ public void onServerError(final com.dmdirc.parser.events.ServerErrorEvent event) {
|
|
494
|
+ checkParser(event.getParser());
|
529
|
495
|
|
530
|
|
- final ServerErrorEvent event = new ServerErrorEvent(owner, message);
|
531
|
|
- final String format = EventUtils.postDisplayable(eventBus, event, "serverError");
|
532
|
|
- owner.doNotification(format, message);
|
|
496
|
+ final ServerErrorEvent coreEvent = new ServerErrorEvent(owner, event.getMessage());
|
|
497
|
+ final String format = EventUtils.postDisplayable(eventBus, coreEvent, "serverError");
|
|
498
|
+ owner.doNotification(format, event.getMessage());
|
533
|
499
|
}
|
534
|
500
|
|
535
|
501
|
@Override
|