|
@@ -24,6 +24,7 @@ package com.dmdirc.addons.relaybot;
|
24
|
24
|
|
25
|
25
|
import com.dmdirc.Channel;
|
26
|
26
|
import com.dmdirc.Server;
|
|
27
|
+import com.dmdirc.ServerManager;
|
27
|
28
|
import com.dmdirc.actions.ActionManager;
|
28
|
29
|
import com.dmdirc.actions.CoreActionType;
|
29
|
30
|
import com.dmdirc.addons.ui_swing.UIUtilities;
|
|
@@ -55,18 +56,21 @@ import java.util.concurrent.Callable;
|
55
|
56
|
public class RelayBotPlugin extends BasePlugin implements ActionListener, ConfigChangeListener {
|
56
|
57
|
|
57
|
58
|
/** Known RelayChannelHandlers. */
|
58
|
|
- private final Map<Channel, RelayChannelHandler> handlers = new HashMap<Channel, RelayChannelHandler>();
|
|
59
|
+ private final Map<Channel, RelayChannelHandler> handlers = new HashMap<>();
|
59
|
60
|
/** This plugin's plugin info. */
|
60
|
61
|
private final PluginInfo pluginInfo;
|
|
62
|
+ /** The server manager to use to iterate servers. */
|
|
63
|
+ private final ServerManager serverManager;
|
61
|
64
|
|
62
|
65
|
/**
|
63
|
66
|
* Creates a new instance of this plugin.
|
64
|
67
|
*
|
65
|
68
|
* @param pluginInfo This plugin's plugin info
|
|
69
|
+ * @param serverManager The manager to use to iterate servers.
|
66
|
70
|
*/
|
67
|
|
- public RelayBotPlugin(final PluginInfo pluginInfo) {
|
68
|
|
- super();
|
|
71
|
+ public RelayBotPlugin(final PluginInfo pluginInfo, final ServerManager serverManager) {
|
69
|
72
|
this.pluginInfo = pluginInfo;
|
|
73
|
+ this.serverManager = serverManager;
|
70
|
74
|
}
|
71
|
75
|
|
72
|
76
|
/** {@inheritDoc} */
|
|
@@ -87,7 +91,7 @@ public class RelayBotPlugin extends BasePlugin implements ActionListener, Config
|
87
|
91
|
|
88
|
92
|
// Add ourself to all currently known channels that we should be
|
89
|
93
|
// connected with.
|
90
|
|
- for (Server server : getPluginManager().getMain().getServerManager().getServers()) {
|
|
94
|
+ for (Server server : serverManager.getServers()) {
|
91
|
95
|
final Parser parser = server.getParser();
|
92
|
96
|
if (parser instanceof IRCParser && !(parser.getCallbackManager() instanceof RelayCallbackManager)) {
|
93
|
97
|
new RelayCallbackManager(this, (IRCParser) parser);
|
|
@@ -113,7 +117,7 @@ public class RelayBotPlugin extends BasePlugin implements ActionListener, Config
|
113
|
117
|
ActionManager.getActionManager().unregisterListener(this);
|
114
|
118
|
|
115
|
119
|
// Remove RelayCallbackManagers
|
116
|
|
- for (Server server : getPluginManager().getMain().getServerManager().getServers()) {
|
|
120
|
+ for (Server server : serverManager.getServers()) {
|
117
|
121
|
final Parser parser = server.getParser();
|
118
|
122
|
if (parser instanceof IRCParser && parser.getCallbackManager() instanceof RelayCallbackManager) {
|
119
|
123
|
((RelayCallbackManager) parser.getCallbackManager()).onSocketClosed(parser, new Date());
|
|
@@ -122,7 +126,7 @@ public class RelayBotPlugin extends BasePlugin implements ActionListener, Config
|
122
|
126
|
|
123
|
127
|
// Remove from all channels.
|
124
|
128
|
synchronized (handlers) {
|
125
|
|
- for (RelayChannelHandler handler : new ArrayList<RelayChannelHandler>(handlers.values())) {
|
|
129
|
+ for (RelayChannelHandler handler : new ArrayList<>(handlers.values())) {
|
126
|
130
|
handler.restoreCoreChannelHandler();
|
127
|
131
|
}
|
128
|
132
|
handlers.clear();
|
|
@@ -182,7 +186,7 @@ public class RelayBotPlugin extends BasePlugin implements ActionListener, Config
|
182
|
186
|
public void configChanged(final String domain, final String key) {
|
183
|
187
|
final boolean wasUnset = !IdentityManager.getIdentityManager().getGlobalConfiguration().hasOptionString(domain, key);
|
184
|
188
|
|
185
|
|
- for (Server server : getPluginManager().getMain().getServerManager().getServers()) {
|
|
189
|
+ for (Server server : serverManager.getServers()) {
|
186
|
190
|
if (server.hasChannel(key)) {
|
187
|
191
|
final Channel chan = server.getChannel(key);
|
188
|
192
|
if (wasUnset) {
|