From: David ‘Bombe’ Roden Date: Tue, 16 Apr 2013 18:01:04 +0000 (+0200) Subject: Move CTCP handling into its own method. X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;h=201341daa514e5c54e832d2372c65fd65bcb6ebb;p=xudocci.git Move CTCP handling into its own method. --- diff --git a/src/main/java/net/pterodactylus/irc/Connection.java b/src/main/java/net/pterodactylus/irc/Connection.java index 58e5365..bf6065f 100644 --- a/src/main/java/net/pterodactylus/irc/Connection.java +++ b/src/main/java/net/pterodactylus/irc/Connection.java @@ -332,28 +332,7 @@ public class Connection extends AbstractExecutionThreadService implements Servic String message = parameters.get(1); if (message.startsWith("\u0001") && message.endsWith("\u0001")) { /* CTCP! */ - String[] messageWords = message.substring(1, message.length() - 1).split(" +"); - String ctcpCommand = messageWords[0]; - if (ctcpCommand.equalsIgnoreCase("DCC")) { - if (messageWords[1].equalsIgnoreCase("SEND")) { - Optional inetAddress = parseInetAddress(messageWords[3]); - Optional port = Optional.fromNullable(Ints.tryParse(messageWords[4])); - long fileSize = Optional.fromNullable(Longs.tryParse(messageWords[5])).or(-1L); - if (inetAddress.isPresent() && port.isPresent()) { - eventBus.post(new DccSendReceived(this, reply.source().get(), messageWords[2], inetAddress.get(), port.get(), fileSize)); - } else { - logger.warning(String.format("Received malformed DCC SEND: “%s”", message)); - } - } else if (messageWords[1].equalsIgnoreCase("ACCEPT")) { - Optional port = Optional.fromNullable(Ints.tryParse(messageWords[3])); - long position = Optional.fromNullable(Longs.tryParse(messageWords[4])).or(-1L); - if (port.isPresent()) { - eventBus.post(new DccAcceptReceived(this, reply.source().get(), messageWords[2], port.get(), position)); - } else { - logger.warning(String.format("Received malformed DCC ACCEPT: “%s”", message)); - } - } - } + handleCtcp(reply.source().get(), message); } else if (!channelTypes.contains(recipient.charAt(0))) { eventBus.post(new PrivateMessageReceived(this, reply.source().get(), message)); } else { @@ -488,6 +467,39 @@ public class Connection extends AbstractExecutionThreadService implements Servic // /** + * Handles a CTCP message. + * + * @param client + * The client sending the message + * @param message + * The message + */ + private void handleCtcp(Source client, String message) { + String[] messageWords = message.substring(1, message.length() - 1).split(" +"); + String ctcpCommand = messageWords[0]; + if (ctcpCommand.equalsIgnoreCase("DCC")) { + if (messageWords[1].equalsIgnoreCase("SEND")) { + Optional inetAddress = parseInetAddress(messageWords[3]); + Optional port = Optional.fromNullable(Ints.tryParse(messageWords[4])); + long fileSize = Optional.fromNullable(Longs.tryParse(messageWords[5])).or(-1L); + if (inetAddress.isPresent() && port.isPresent()) { + eventBus.post(new DccSendReceived(this, client, messageWords[2], inetAddress.get(), port.get(), fileSize)); + } else { + logger.warning(String.format("Received malformed DCC SEND: “%s”", message)); + } + } else if (messageWords[1].equalsIgnoreCase("ACCEPT")) { + Optional port = Optional.fromNullable(Ints.tryParse(messageWords[3])); + long position = Optional.fromNullable(Longs.tryParse(messageWords[4])).or(-1L); + if (port.isPresent()) { + eventBus.post(new DccAcceptReceived(this, client, messageWords[2], port.get(), position)); + } else { + logger.warning(String.format("Received malformed DCC ACCEPT: “%s”", message)); + } + } + } + } + + /** * Returns an item from the list, or {@link Optional#absent()} if the list is * shorter than required for the given index. *