X-Git-Url: https://git.pterodactylus.net/?p=xudocci.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Firc%2FConnection.java;h=6354c906403d0c2c0a3bc8ec233e5f9b5dd3a243;hp=cc1f9c8613b6cf5ccb0f90aea4ec685339ab1a7f;hb=c4867f883cce2d99972bb14dd5937c6348ff29f5;hpb=771a3d98fc5aa6f466145b2abf06c4a594d885a4 diff --git a/src/main/java/net/pterodactylus/irc/Connection.java b/src/main/java/net/pterodactylus/irc/Connection.java index cc1f9c8..6354c90 100644 --- a/src/main/java/net/pterodactylus/irc/Connection.java +++ b/src/main/java/net/pterodactylus/irc/Connection.java @@ -40,6 +40,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import javax.net.SocketFactory; +import net.pterodactylus.irc.connection.ChannelNotJoinedHandler; import net.pterodactylus.irc.connection.ConnectionEstablishHandler; import net.pterodactylus.irc.event.ChannelJoined; import net.pterodactylus.irc.event.ChannelLeft; @@ -382,6 +383,7 @@ public class Connection extends AbstractExecutionThreadService implements Servic Set channelTypes = Sets.newHashSet(); ConnectionEstablishHandler connectionEstablishHandler = new ConnectionEstablishHandler(eventBus, this); + ChannelNotJoinedHandler channelNotJoinedHandler = new ChannelNotJoinedHandler(eventBus, this); while (connected) { Reply reply = connectionHandler.readReply(); @@ -453,15 +455,8 @@ public class Connection extends AbstractExecutionThreadService implements Servic } else if (command.equalsIgnoreCase("QUIT")) { eventBus.post(new ClientQuit(this, reply.source().get(), parameters.get(0))); - /* common channel join errors. */ - } else if (command.equals("474")) { - eventBus.post(new ChannelNotJoined(this, parameters.get(1), Reason.banned)); - } else if (command.equals("473")) { - eventBus.post(new ChannelNotJoined(this, parameters.get(1), Reason.inviteOnly)); - } else if (command.equals("475")) { - eventBus.post(new ChannelNotJoined(this, parameters.get(1), Reason.badChannelKey)); - } else if (command.equals("477")) { - eventBus.post(new ChannelNotJoined(this, parameters.get(1), Reason.registeredNicknamesOnly)); + } else if (channelNotJoinedHandler.willHandle(reply)) { + channelNotJoinedHandler.handleReply(reply); /* basic connection housekeeping. */ } else if (command.equalsIgnoreCase("PING")) {