|
@@ -22,13 +22,13 @@
|
22
|
22
|
|
23
|
23
|
package com.dmdirc.addons.channelwho;
|
24
|
24
|
|
|
25
|
+import com.dmdirc.DMDircMBassador;
|
25
|
26
|
import com.dmdirc.config.ConfigBinder;
|
26
|
27
|
import com.dmdirc.config.ConfigBinding;
|
27
|
28
|
import com.dmdirc.events.ChannelUserAwayEvent;
|
28
|
29
|
import com.dmdirc.events.DisplayProperty;
|
29
|
30
|
import com.dmdirc.events.ServerNumericEvent;
|
30
|
31
|
import com.dmdirc.interfaces.Connection;
|
31
|
|
-import com.dmdirc.interfaces.ConnectionManager;
|
32
|
32
|
import com.dmdirc.interfaces.GroupChat;
|
33
|
33
|
import com.dmdirc.interfaces.GroupChatUser;
|
34
|
34
|
import com.dmdirc.interfaces.config.AggregateConfigProvider;
|
|
@@ -51,22 +51,23 @@ import net.engio.mbassy.listener.Handler;
|
51
|
51
|
public class ConnectionHandler {
|
52
|
52
|
|
53
|
53
|
private final Multimap<String, GroupChatUser> users;
|
|
54
|
+ private final DMDircMBassador eventBus;
|
54
|
55
|
private final Connection connection;
|
55
|
56
|
private final String domain;
|
56
|
57
|
private final ScheduledExecutorService executorService;
|
57
|
|
- private final ConnectionManager connectionManager;
|
58
|
58
|
private final ConfigBinder configBinder;
|
59
|
59
|
private ScheduledFuture<?> future;
|
60
|
60
|
|
61
|
61
|
public ConnectionHandler(
|
62
|
62
|
final AggregateConfigProvider config,
|
63
|
63
|
final ScheduledExecutorService executorService,
|
64
|
|
- final ConnectionManager connectionManager, final String domain,
|
|
64
|
+ final DMDircMBassador eventBus,
|
|
65
|
+ final String domain,
|
65
|
66
|
final Connection connection) {
|
|
67
|
+ this.eventBus = eventBus;
|
66
|
68
|
this.connection = connection;
|
67
|
69
|
this.domain = domain;
|
68
|
70
|
this.executorService = executorService;
|
69
|
|
- this.connectionManager = connectionManager;
|
70
|
71
|
configBinder = config.getBinder().withDefaultDomain(domain);
|
71
|
72
|
users = HashMultimap.create();
|
72
|
73
|
}
|
|
@@ -125,9 +126,8 @@ public class ConnectionHandler {
|
125
|
126
|
if (event.getConnection().equals(connection) && event.getNumeric() == 301) {
|
126
|
127
|
final String nickname = event.getArgs()[3];
|
127
|
128
|
final String reason = event.getArgs()[4];
|
128
|
|
- users.removeAll(nickname).forEach(u -> u.getGroupChat().getEventBus()
|
129
|
|
- .publishAsync(new ChannelUserAwayEvent(u.getGroupChat(), u,
|
130
|
|
- Optional.ofNullable(reason))));
|
|
129
|
+ users.removeAll(nickname).forEach(u -> eventBus.publishAsync(
|
|
130
|
+ new ChannelUserAwayEvent(u.getGroupChat(), u, Optional.ofNullable(reason))));
|
131
|
131
|
}
|
132
|
132
|
}
|
133
|
133
|
}
|