package net.rizon.moo.plugin.mxbl;
+import com.google.inject.Inject;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import net.rizon.moo.Command;
import net.rizon.moo.CommandSource;
-import net.rizon.moo.Moo;
-import net.rizon.moo.Plugin;
+import net.rizon.moo.conf.Config;
import net.rizon.moo.plugin.mxbl.dns.NS;
import net.rizon.moo.plugin.mxbl.dns.RecordType;
*
* @author Orillion <orillion@rizon.net>
*/
-public class CommandBlacklist extends Command
+class CommandBlacklist extends Command
{
private final List<RecordType> MX_RECORDS = new ArrayList<>();
private final List<RecordType> IP_RECORDS = new ArrayList<>();
- public CommandBlacklist(Plugin pkg)
+ @Inject
+ public CommandBlacklist(Config conf)
{
- super(pkg, "!MXBL", "Modify or view MX blacklist.");
+ super("!MXBL", "Modify or view MX blacklist.");
MX_RECORDS.add(RecordType.MX);
IP_RECORDS.add(RecordType.A);
IP_RECORDS.add(RecordType.AAAA);
// TODO: Fill in correct channels.
- this.requiresChannel(Moo.conf.admin_channels);
+ this.requiresChannel(conf.admin_channels);
}
@Override
package net.rizon.moo.plugin.mxbl;
import com.google.common.eventbus.Subscribe;
+import com.google.inject.Inject;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.EventListener;
import java.util.HashMap;
import java.util.List;
import java.util.regex.Matcher;
import javax.naming.NamingException;
import net.rizon.moo.Event;
import net.rizon.moo.Moo;
+import net.rizon.moo.conf.Config;
import net.rizon.moo.events.EventPrivmsg;
+import net.rizon.moo.irc.Protocol;
import net.rizon.moo.plugin.mxbl.dns.NS;
import net.rizon.moo.plugin.mxbl.dns.RecordType;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
*
* @author Orillion <orillion@rizon.net>
*/
-public class EventRegister extends Event
+public class EventRegister extends Event implements EventListener
{
- private final static Logger logger = LoggerFactory.getLogger(EventRegister.class);
+ @Inject
+ private static Logger logger;
+
+ @Inject
+ private Config conf;
+
+ @Inject
+ private Protocol protocol;
+
// "%s: '%s' registered by %s@%s (e-mail: %s)", s_NickServ, u->nick, u->username, u->host, (email ? email : "none")
private final String nickServRegex = "NickServ";
// Assumes nicks are valid (else they can't connect to the server anyway)
return;
}
- for (String s : Moo.conf.log_channels)
+ for (String s : conf.log_channels)
{
if (evt.getChannel().equalsIgnoreCase(s))
{
*/
private void suspendNick(String nickname)
{
- Moo.privmsgAll(Moo.conf.moo_log_channels, "Suspended nick [" + nickname + "] because it was registered with a blacklisted mailhost");
- Moo.privmsg("NickServ", "SUSPEND " + nickname + " Registered using blacklisted mailhost");
+ protocol.privmsgAll(conf.moo_log_channels, "Suspended nick [" + nickname + "] because it was registered with a blacklisted mailhost");
+ protocol.privmsg("NickServ", "SUSPEND " + nickname + " Registered using blacklisted mailhost");
}
/**
package net.rizon.moo.plugin.mxbl;
+import com.google.inject.Inject;
+import com.google.inject.multibindings.Multibinder;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
+import java.util.Arrays;
+import java.util.EventListener;
+import java.util.List;
import net.rizon.moo.Command;
import net.rizon.moo.Event;
import net.rizon.moo.Moo;
*/
public class mxbl extends Plugin
{
- private Command blacklist;
- private Event register;
+ @Inject
+ private CommandBlacklist blacklist;
public mxbl() throws Exception
{
rs.close();
ps.close();
-
- blacklist = new CommandBlacklist(this);
- register = new EventRegister();
- Moo.getEventBus().register(register);
}
private void buildMailhosts(ResultSet rs, Mailhost mw) throws SQLException
@Override
public void stop()
{
- if (blacklist != null)
- {
- blacklist.remove();
- }
- if (register != null)
- {
- Moo.getEventBus().unregister(register);
- }
+ }
+
+ @Override
+ public List<Command> getCommands()
+ {
+ return Arrays.<Command>asList(blacklist);
+ }
+
+ @Override
+ protected void configure()
+ {
+ bind(mxbl.class).toInstance(this);
+
+
+ Multibinder<EventListener> eventListenerBinder = Multibinder.newSetBinder(binder(), EventListener.class);
+ eventListenerBinder.addBinding().to(EventRegister.class);
+
+ Multibinder<Command> commandBinder = Multibinder.newSetBinder(binder(), Command.class);
+ commandBinder.addBinding().to(CommandBlacklist.class);
}
}
<module>dnsblstats</module>
<module>fun</module>
<module>grapher</module>
- <module>logging</module><!--
- <module>mxbl</module>
+ <module>logging</module>
+ <module>mxbl</module><!--
<module>osflood</module>
<module>proxyscan</module>
<module>random</module>