Handle CTCP in notices, too.
[xudocci.git] / src / main / java / net / pterodactylus / irc / Connection.java
index bf6065f..530b0c7 100644 (file)
@@ -44,6 +44,7 @@ import net.pterodactylus.irc.event.ChannelMessageReceived;
 import net.pterodactylus.irc.event.ChannelNicknames;
 import net.pterodactylus.irc.event.ChannelNotJoined;
 import net.pterodactylus.irc.event.ChannelNotJoined.Reason;
+import net.pterodactylus.irc.event.ChannelNoticeReceived;
 import net.pterodactylus.irc.event.ChannelTopic;
 import net.pterodactylus.irc.event.ClientQuit;
 import net.pterodactylus.irc.event.ConnectionClosed;
@@ -56,6 +57,7 @@ import net.pterodactylus.irc.event.NicknameChanged;
 import net.pterodactylus.irc.event.NicknameInUseReceived;
 import net.pterodactylus.irc.event.NoNicknameGivenReceived;
 import net.pterodactylus.irc.event.PrivateMessageReceived;
+import net.pterodactylus.irc.event.PrivateNoticeReceived;
 import net.pterodactylus.irc.event.UnknownReplyReceived;
 import net.pterodactylus.irc.util.RandomNickname;
 
@@ -339,6 +341,16 @@ public class Connection extends AbstractExecutionThreadService implements Servic
                                                eventBus.post(new ChannelMessageReceived(this, recipient, reply.source().get(), message));
                                        }
 
+                               } else if (command.equalsIgnoreCase("NOTICE")) {
+                                       String recipient = parameters.get(0);
+                                       String message = parameters.get(1);
+                                       if (message.startsWith("\u0001") && message.endsWith("\u0001")) {
+                                               /* CTCP! */
+                                               handleCtcp(reply.source().get(), message);
+                                       } else if (!channelTypes.contains(recipient.charAt(0))) {
+                                               eventBus.post(new PrivateNoticeReceived(this, reply));
+                                       } else {
+                                               eventBus.post(new ChannelNoticeReceived(this, reply.source().get(), recipient, message));
                                        }
 
                                /* 43x replies are for nick change errors. */