瀏覽代碼

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 16 年之前
父節點
當前提交
70a1590f02
共有 2 個檔案被更改,包括 4 行新增1 行删除
  1. 3
    0
      src/com/dmdirc/parser/ProcessKick.java
  2. 1
    1
      src/com/dmdirc/parser/callbacks/CallbackOnChannelKick.java

+ 3
- 0
src/com/dmdirc/parser/ProcessKick.java 查看文件

@@ -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 查看文件

@@ -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…
取消
儲存