From 50a6047eddc3da194792218835c1d8033732f0de Mon Sep 17 00:00:00 2001 From: Sebastian Kaspari Date: Fri, 15 Apr 2011 20:30:41 +0200 Subject: [PATCH] On own nick change: Display message in server info window (Your are now known as ...). Fixes #51. --- application/res/values/strings.xml | 1 + .../src/org/jibble/pircbot/PircBot.java | 23 ++++++++++++++----- .../src/org/yaaic/irc/IRCConnection.java | 13 +++++++++++ 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/application/res/values/strings.xml b/application/res/values/strings.xml index 7caf54a..366112c 100644 --- a/application/res/values/strings.xml +++ b/application/res/values/strings.xml @@ -124,6 +124,7 @@ %1$s joins %1$s kicks %2$s %1$s is now known as %2$s + You are now known as %1$s %1$s ops %2$s %1$s parts %1$s quits (%2$s) diff --git a/application/src/org/jibble/pircbot/PircBot.java b/application/src/org/jibble/pircbot/PircBot.java index 3e36d1b..e1f1d27 100644 --- a/application/src/org/jibble/pircbot/PircBot.java +++ b/application/src/org/jibble/pircbot/PircBot.java @@ -877,14 +877,27 @@ public abstract class PircBot implements ReplyConstants { String errorStr = token; String response = line.substring(line.indexOf(errorStr, senderInfo.length()) + 4, line.length()); + this.processServerResponse(code, response); + if (code == 433 && !_registered) { if (_autoNickChange) { + String oldNick = _nick; + List aliases = getAliases(); _autoNickTries++; - _nick = ((_autoNickTries - 1) <= aliases.size()) ? - aliases.get(_autoNickTries - 2) : - getName() + (_autoNickTries - aliases.size()); - this.sendRawLineViaQueue("NICK " + _nick); + + if (_autoNickTries - 1 <= aliases.size()) { + // Try next alias + _nick = aliases.get(_autoNickTries - 2); + } else { + // Append a number to the nickname + _nick = getName() + (_autoNickTries - aliases.size()); + } + + // Notify ourself about the change + this.onNickChange(oldNick, getLogin(), "", _nick); + + this.sendRawLineViaQueue("NICK " + _nick); } else { _socket.close(); @@ -893,8 +906,6 @@ public abstract class PircBot implements ReplyConstants { } } - this.processServerResponse(code, response); - // Return from the method. return; } else { diff --git a/application/src/org/yaaic/irc/IRCConnection.java b/application/src/org/yaaic/irc/IRCConnection.java index 573d0e4..667c329 100644 --- a/application/src/org/yaaic/irc/IRCConnection.java +++ b/application/src/org/yaaic/irc/IRCConnection.java @@ -455,6 +455,19 @@ public class IRCConnection extends PircBot { if (getNick().equalsIgnoreCase(newNick)) { this.updateNickMatchPattern(); + + // Send message about own change to server info window + Message message = new Message(service.getString(R.string.message_self_rename, newNick)); + message.setColor(Message.COLOR_GREEN); + server.getConversation(ServerInfo.DEFAULT_NAME).addMessage(message); + + Intent intent = Broadcast.createConversationIntent( + Broadcast.CONVERSATION_MESSAGE, + server.getId(), + ServerInfo.DEFAULT_NAME + ); + + service.sendBroadcast(intent); } Vector channels = getChannelsByNickname(newNick);