Explorar el Código

Fix issue 1044: If a client is kicked before we get a names reply we create a fake channelClient (if getCreateFake is true) before calling onChannelKick


git-svn-id: http://svn.dmdirc.com/trunk@3858 00569f92-eb28-0410-84fd-f71c24880f
tags/0.6
Shane Mc Cormack hace 16 años
padre
commit
70a1590f02

+ 3
- 0
src/com/dmdirc/parser/ProcessKick.java Ver fichero

@@ -63,6 +63,9 @@ public class ProcessKick extends IRCProcessor {
63 63
 		} else {
64 64
 			if (token.length > 4) { sReason = token[token.length-1]; }
65 65
 			iChannelClient = iChannel.getUser(iClient);
66
+			if (iChannelClient == null && myParser.getCreateFake()) {
67
+				iChannelClient = new ChannelClientInfo(iChannel.getParser(), iClient, iChannel);
68
+			}
66 69
 			iChannelKicker = iChannel.getUser(token[0]);
67 70
 			if (myParser.removeAfterCallback) { callChannelKick(iChannel,iChannelClient,iChannelKicker,sReason,token[0]); }
68 71
 			iChannel.delClient(iClient);

+ 1
- 1
src/com/dmdirc/parser/callbacks/CallbackOnChannelKick.java Ver fichero

@@ -56,7 +56,7 @@ public final class CallbackOnChannelKick extends CallbackObjectSpecific {
56 56
 	 * @return true if a callback was called, else false
57 57
 	 */
58 58
 	public boolean call(final ChannelInfo cChannel, final ChannelClientInfo cKickedClient, final ChannelClientInfo myKickedByClient, final String sReason, final String sKickedByHost) {
59
-		ChannelClientInfo cKickedByClient;
59
+		final ChannelClientInfo cKickedByClient;
60 60
 		if (myKickedByClient == null && myParser.getCreateFake()) {
61 61
 			cKickedByClient = new ChannelClientInfo(cChannel.getParser(), new ClientInfo(cChannel.getParser(), sKickedByHost).setFake(true) ,cChannel);
62 62
 		} else {

Loading…
Cancelar
Guardar