X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Firc%2FConnection.java;h=0e7495530ebff5efae4d7bc8c7107f1bcb69db35;hb=4c0282c38d7959ae8060a5603a8fa66eb6aa7fd7;hp=45795f33e039a15d61ec3151e9779f5f4059e3bf;hpb=1dfa1a9060f24cf3d12e2f99461cfcc8914b1af7;p=xudocci.git diff --git a/src/main/java/net/pterodactylus/irc/Connection.java b/src/main/java/net/pterodactylus/irc/Connection.java index 45795f3..0e74955 100644 --- a/src/main/java/net/pterodactylus/irc/Connection.java +++ b/src/main/java/net/pterodactylus/irc/Connection.java @@ -45,6 +45,7 @@ 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.ChannelTopic; @@ -368,6 +369,29 @@ public class Connection extends AbstractExecutionThreadService implements Servic new MessageHandler(eventBus, this, prefixHandler), new CtcpHandler(eventBus, this), new ChannelNickHandler(eventBus, this, prefixHandler), + new SimpleCommandHandler(eventBus) + .addCommand("431", + (s, p) -> new NoNicknameGivenReceived( + this)) + .addCommand("NICK", + (s, p) -> new NicknameChanged(this, + s.get(), p.get(0))) + .addCommand("JOIN", + (s, p) -> new ChannelJoined(this, + p.get(0), s.get())) + .addCommand("332", + (s, p) -> new ChannelTopic(this, p.get(1), + p.get(2))) + .addCommand("PART", + (s, p) -> new ChannelLeft(this, p.get(0), + s.get(), getOptional(p, 1))) + .addCommand("QUIT", + (s, p) -> new ClientQuit(this, s.get(), + p.get(0))) + .addCommand("KICK", + (s, p) -> new KickedFromChannel(this, + p.get(0), s.get(), p.get(1), + getOptional(p, 2))), new MotdHandler(eventBus, this), new ChannelNotJoinedHandler(eventBus, this), new ConnectionEstablishHandler(eventBus, this), @@ -389,9 +413,7 @@ public class Connection extends AbstractExecutionThreadService implements Servic } /* 43x replies are for nick change errors. */ - if (command.equals("431")) { - eventBus.post(new NoNicknameGivenReceived(this)); - } else if (command.equals("433")) { + if (command.equals("433")) { if (!established.get()) { nickname = nicknameChooser.getNickname(); connectionHandler.sendCommand("NICK", nickname); @@ -399,29 +421,14 @@ 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())); } else if (command.equals("331")) { /* no topic is set. */ - } else if (command.equals("332")) { - eventBus.post(new ChannelTopic(this, parameters.get(1), parameters.get(2))); - } else if (command.equalsIgnoreCase("PART")) { - eventBus.post(new ChannelLeft(this, parameters.get(0), reply.source().get(), getOptional(parameters, 1))); - } else if (command.equalsIgnoreCase("QUIT")) { - eventBus.post(new ClientQuit(this, reply.source().get(), parameters.get(0))); /* basic connection housekeeping. */ } else if (command.equalsIgnoreCase("PING")) { connectionHandler.sendCommand("PONG", getOptional(parameters, 0), getOptional(parameters, 1)); - } else if (command.equalsIgnoreCase("KICK")) { - eventBus.post(new KickedFromChannel(this, parameters.get(0), reply.source().get(), parameters.get(1), getOptional(parameters, 2))); - /* okay, everything else. */ } else { eventBus.post(new UnknownReplyReceived(this, reply));