From fa89f864049ed0d1ca616ca0483544079b1278d6 Mon Sep 17 00:00:00 2001 From: Danny van Heumen Date: Fri, 25 Jul 2014 00:21:31 +0200 Subject: [PATCH] Implemented /me command. --- .../impl/protocol/irc/IrcStack.java | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 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 b5618ed65..bd7ef05c8 100644 --- a/src/net/java/sip/communicator/impl/protocol/irc/IrcStack.java +++ b/src/net/java/sip/communicator/impl/protocol/irc/IrcStack.java @@ -857,9 +857,10 @@ public void command(final ChatRoomIrcImpl chatroom, final String message) */ public void command(final Contact contact, final String message) { - // WARNING: This command method should not be used. - LOGGER.warn("Not handling IM message as commands, because of danger" - + "of corrupting plug-ins that hook into IM conversations."); + // OTR seems to be compatible with the command syntax (starts with '/') + // and there were no other obvious problems so we decided to implement + // IRC command support for IM infrastructure too. + this.command(contact.getAddress(), message); } /** @@ -870,27 +871,30 @@ public void command(final Contact contact, final String message) */ private void command(final String source, final String message) { - final String target; - final String command; - if (message.toLowerCase().startsWith("/msg ")) + final IRCApi irc = this.session.get(); + final String msg = message.toLowerCase(); + if (msg.startsWith("/msg ")) { - String part = message.substring(5); + final String part = message.substring(5); int endOfNick = part.indexOf(' '); if (endOfNick == -1) { throw new IllegalArgumentException("Invalid private message " + "format. Message was not sent."); } - target = part.substring(0, endOfNick); - command = part.substring(endOfNick + 1); + final String target = part.substring(0, endOfNick); + final String command = part.substring(endOfNick + 1); + irc.message(target, command); + } + else if (msg.startsWith("/me ")) + { + final String command = message.substring(4); + irc.act(source, command); } else { - target = source; - command = message; + irc.message(source, message); } - final IRCApi irc = this.session.get(); - irc.message(target, command); } /**