From 80a5e56294465b206c84d1e4384d0f485d1cb12b Mon Sep 17 00:00:00 2001 From: Sebastian Kaspari Date: Sat, 13 Mar 2010 15:17:32 +0100 Subject: [PATCH] Use realname of identity (Workaround for PircBot handling version as real name) --- src/org/yaaic/irc/IRCBinder.java | 17 ++++++++++++++--- src/org/yaaic/irc/IRCConnection.java | 22 +++++++++++++++++++++- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/org/yaaic/irc/IRCBinder.java b/src/org/yaaic/irc/IRCBinder.java index bd499d6..16603de 100644 --- a/src/org/yaaic/irc/IRCBinder.java +++ b/src/org/yaaic/irc/IRCBinder.java @@ -20,6 +20,10 @@ along with Yaaic. If not, see . */ package org.yaaic.irc; +import java.io.IOException; + +import org.jibble.pircbot.IrcException; +import org.jibble.pircbot.NickAlreadyInUseException; import org.yaaic.model.Server; import android.os.Binder; @@ -62,11 +66,18 @@ public class IRCBinder extends Binder connection.setNickname(server.getIdentity().getNickname()); connection.setIdent(server.getIdentity().getIdent()); + connection.setRealName(server.getIdentity().getRealName()); - connection.connect(server.getHost()); + connection.connect(server.getHost(), server.getPort()); } - catch (Exception e) { - Log.d(TAG, "Exception: " + e.getMessage()); + catch (NickAlreadyInUseException e) { + Log.d(TAG, "NickAlreadyInUseException: " + e.getMessage()); + } + catch (IrcException e) { + Log.d(TAG, "IrcException: " + e.getMessage()); + } + catch (IOException e) { + Log.d(TAG, "IOException: " + e.getMessage()); } } }.start(); diff --git a/src/org/yaaic/irc/IRCConnection.java b/src/org/yaaic/irc/IRCConnection.java index c7e52f4..0c55e52 100644 --- a/src/org/yaaic/irc/IRCConnection.java +++ b/src/org/yaaic/irc/IRCConnection.java @@ -61,7 +61,6 @@ public class IRCConnection extends PircBot this.service = service; this.setAutoNickChange(true); - this.setVersion("Yaaic - Yet another Android IRC client - http://www.yaaic.org"); } /** @@ -73,6 +72,27 @@ public class IRCConnection extends PircBot { this.setName(nickname); } + + public void setRealName(String realname) + { + // XXX: Pircbot uses the version for "real name" and "version". + // The real "version" value is provided by onVersion() + this.setVersion(realname); + } + + /** + * On version (CTCP version) + * + * This is a fix for pircbot as pircbot uses the version as "real name" and as "version" + */ + @Override + protected void onVersion(String sourceNick, String sourceLogin, String sourceHostname, String target) { + this.sendRawLine( + "NOTICE " + sourceNick + " :\u0001VERSION " + + "Yaaic - Yet another Android IRC client - http://www.yaaic.org" + + "\u0001" + ); + } /** * Set the ident of the user