X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Firc%2FConnection.java;h=30344be9b2c831023ce74edf1a2b8e7e0446d0fd;hb=1aa7f843043b8723a02b4bbd88eb21ae8b7db881;hp=6bb747a970e1e26c904b97603f962aaeaf565e81;hpb=fdebd77c3b0096f0db76d1d075e55fef350e7304;p=xudocci.git diff --git a/src/main/java/net/pterodactylus/irc/Connection.java b/src/main/java/net/pterodactylus/irc/Connection.java index 6bb747a..30344be 100644 --- a/src/main/java/net/pterodactylus/irc/Connection.java +++ b/src/main/java/net/pterodactylus/irc/Connection.java @@ -32,12 +32,12 @@ import java.io.UnsupportedEncodingException; import java.net.Socket; import java.util.ArrayList; import java.util.List; -import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import javax.net.SocketFactory; +import net.pterodactylus.irc.connection.ChannelNickHandler; import net.pterodactylus.irc.connection.ChannelNotJoinedHandler; import net.pterodactylus.irc.connection.ConnectionEstablishHandler; import net.pterodactylus.irc.connection.CtcpHandler; @@ -45,9 +45,9 @@ import net.pterodactylus.irc.connection.Handler; import net.pterodactylus.irc.connection.MessageHandler; import net.pterodactylus.irc.connection.MotdHandler; import net.pterodactylus.irc.connection.PrefixHandler; +import net.pterodactylus.irc.connection.SimpleCommandHandler; import net.pterodactylus.irc.event.ChannelJoined; import net.pterodactylus.irc.event.ChannelLeft; -import net.pterodactylus.irc.event.ChannelNicknames; import net.pterodactylus.irc.event.ChannelTopic; import net.pterodactylus.irc.event.ClientQuit; import net.pterodactylus.irc.event.ConnectionClosed; @@ -64,7 +64,6 @@ import net.pterodactylus.xdcc.util.io.BandwidthCountingInputStream; import net.pterodactylus.xdcc.util.io.BandwidthCountingOutputStream; import com.google.common.base.Optional; -import com.google.common.collect.Sets; import com.google.common.eventbus.EventBus; import com.google.common.eventbus.Subscribe; import com.google.common.io.Closeables; @@ -364,12 +363,18 @@ public class Connection extends AbstractExecutionThreadService implements Servic try { /* some status variables. */ boolean connected = true; - Set nicks = Sets.newHashSet(); PrefixHandler prefixHandler = new PrefixHandler(); List handlers = asList( new MessageHandler(eventBus, this, prefixHandler), new CtcpHandler(eventBus, this), + new ChannelNickHandler(eventBus, this, prefixHandler), + new SimpleCommandHandler() + .addCommand("431", (s, p) -> eventBus.post( + new NoNicknameGivenReceived(this))) + .addCommand("NICK", (s, p) -> eventBus.post( + new NicknameChanged(this, s.get(), + p.get(0)))), new MotdHandler(eventBus, this), new ChannelNotJoinedHandler(eventBus, this), new ConnectionEstablishHandler(eventBus, this), @@ -391,9 +396,7 @@ public class Connection extends AbstractExecutionThreadService implements Servic } /* 43x replies are for nick change errors. */ - if (command.equals("431")) { - eventBus.post(new NoNicknameGivenReceived(this, reply)); - } else if (command.equals("433")) { + if (command.equals("433")) { if (!established.get()) { nickname = nicknameChooser.getNickname(); connectionHandler.sendCommand("NICK", nickname); @@ -401,10 +404,6 @@ public class Connection extends AbstractExecutionThreadService implements Servic eventBus.post(new NicknameInUseReceived(this, reply)); } - /* client stuff. */ - } else if (command.equalsIgnoreCase("NICK")) { - eventBus.post(new NicknameChanged(this, reply.source().get(), parameters.get(0))); - /* channel stuff. */ } else if (command.equalsIgnoreCase("JOIN")) { eventBus.post(new ChannelJoined(this, parameters.get(0), reply.source().get())); @@ -412,17 +411,6 @@ public class Connection extends AbstractExecutionThreadService implements Servic /* no topic is set. */ } else if (command.equals("332")) { eventBus.post(new ChannelTopic(this, parameters.get(1), parameters.get(2))); - } else if (command.equals("353")) { - for (String nickname : parameters.get(3).split(" ")) { - if (prefixHandler.isNickPrefixed(nickname)) { - nicks.add(new Nickname(nickname.substring(1), nickname.substring(0, 1))); - } else { - nicks.add(new Nickname(nickname, "")); - } - } - } else if (command.equals("366")) { - eventBus.post(new ChannelNicknames(this, parameters.get(1), nicks)); - nicks.clear(); } else if (command.equalsIgnoreCase("PART")) { eventBus.post(new ChannelLeft(this, parameters.get(0), reply.source().get(), getOptional(parameters, 1))); } else if (command.equalsIgnoreCase("QUIT")) {