From 52ba98ccd18634092a44b91d45424ad695ee91b8 Mon Sep 17 00:00:00 2001 From: Danny van Heumen Date: Fri, 28 Mar 2014 20:49:14 +0100 Subject: [PATCH] Added support for handling ban messages. --- .../impl/protocol/irc/IrcStack.java | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/net/java/sip/communicator/impl/protocol/irc/IrcStack.java b/src/net/java/sip/communicator/impl/protocol/irc/IrcStack.java index eaace7212..5fbc07456 100644 --- a/src/net/java/sip/communicator/impl/protocol/irc/IrcStack.java +++ b/src/net/java/sip/communicator/impl/protocol/irc/IrcStack.java @@ -1241,8 +1241,6 @@ private void leaveChatRoom() */ private void processModeMessage(ChannelModeMessage msg) { - // TODO Handle or ignore ban channel mode (MODE STRING: +b - // *!*@some-ip.dynamicIP.provider.net) ChatRoomMemberIrcImpl sourceMember = extractChatRoomMember(msg); ModeParser parser = new ModeParser(msg.getModeStr()); @@ -1376,12 +1374,12 @@ private void processModeMessage(ChannelModeMessage msg) } break; case LIMIT: - MessageIrcImpl message; + MessageIrcImpl limitMessage; if (mode.isAdded()) { try { - message = + limitMessage = new MessageIrcImpl("channel limit set to " + Integer.parseInt(mode.getParams()[0]) + " by " @@ -1403,7 +1401,7 @@ private void processModeMessage(ChannelModeMessage msg) // calls himself server. There should be some other way // to represent the server if a message comes from // something other than a normal chat room member. - message = + limitMessage = new MessageIrcImpl( "channel limit removed by " + (sourceMember.getContactAddress() @@ -1411,7 +1409,23 @@ private void processModeMessage(ChannelModeMessage msg) : sourceMember.getContactAddress()), "text/plain", "UTF-8", null); } - this.chatroom.fireMessageReceivedEvent(message, + this.chatroom.fireMessageReceivedEvent(limitMessage, + sourceMember, new Date(), + ChatRoomMessageReceivedEvent.SYSTEM_MESSAGE_RECEIVED); + break; + case BAN: + MessageIrcImpl banMessage = + new MessageIrcImpl( + "channel ban mask was " + + (mode.isAdded() ? "added" : "removed") + + ": " + + mode.getParams()[0] + + " by " + + (sourceMember.getContactAddress() + .length() == 0 ? "server" + : sourceMember.getContactAddress()), + "text/plain", "UTF-8", null); + this.chatroom.fireMessageReceivedEvent(banMessage, sourceMember, new Date(), ChatRoomMessageReceivedEvent.SYSTEM_MESSAGE_RECEIVED); break;