Преглед на файлове

Merge pull request #88 from csmith/master

Use nifty separate handlers.
pull/89/head
Greg Holmes преди 9 години
родител
ревизия
1ca3d0ceda
променени са 1 файла, в които са добавени 45 реда и са изтрити 47 реда
  1. 45
    47
      irc/src/com/dmdirc/parser/irc/WhoisResponseHandler.java

+ 45
- 47
irc/src/com/dmdirc/parser/irc/WhoisResponseHandler.java Целия файл

@@ -61,60 +61,58 @@ public class WhoisResponseHandler {
61 61
         manager.unsubscribe(this);
62 62
     }
63 63
 
64
-    @Handler
65
-    void handleNumericEvent(final NumericEvent event) {
66
-        if (event.getNumeric() == 311) {
67
-            // RPL_WHOISUSER
68
-            client = event.getToken()[3];
69
-            info.clear();
70
-        }
64
+    @Handler(condition = "msg.numeric == 311")
65
+    void handleStartOfWhois(final NumericEvent event) {
66
+        client = event.getToken()[3];
67
+        info.clear();
68
+    }
71 69
 
72
-        if (event.getNumeric() == 318 && client != null) {
73
-            // RPL_ENDOFWHOIS
70
+    @Handler(condition = "msg.numeric == 318")
71
+    void handleEndOfWhois(final NumericEvent event) {
72
+        if (client != null) {
74 73
             sendEvent();
75 74
             client = null;
76 75
         }
76
+    }
77 77
 
78
-        if (client != null && event.getToken().length > 4 && event.getToken()[3].equals(client)) {
79
-            handleWhoisResponse(event.getNumeric(), event.getToken());
80
-        }
78
+    @Handler(condition = "msg.numeric == 301")
79
+    void handleAwayMessage(final NumericEvent event) {
80
+        // :server 301 DMDirc User :away message
81
+        info.put(UserInfoType.AWAY_MESSAGE, event.getToken()[4]);
81 82
     }
82 83
 
83
-    private void handleWhoisResponse(final int numeric, final String... tokens) {
84
-        switch (numeric) {
85
-            case 301:
86
-                // :server 301 DMDirc User :away message
87
-                info.put(UserInfoType.AWAY_MESSAGE, tokens[4]);
88
-                break;
89
-
90
-            case 311:
91
-                // :server 311 DMDirc User ~Ident host.dmdirc.com * :Real name
92
-                info.put(UserInfoType.ADDRESS, tokens[3] + '!' + tokens[4] + '@' + tokens[5]);
93
-                info.put(UserInfoType.REAL_NAME, tokens[7]);
94
-                break;
95
-
96
-            case 312:
97
-                // :server 312 DMDirc User *.quakenet.org :QuakeNet IRC Server
98
-                info.put(UserInfoType.SERVER_NAME, tokens[4]);
99
-                info.put(UserInfoType.SERVER_INFO, tokens[5]);
100
-                break;
101
-
102
-            case 319:
103
-                // :server 319 DMDirc User :@#channel1 +#channel2 ...
104
-                info.put(UserInfoType.GROUP_CHAT_LIST, tokens[4]);
105
-                break;
106
-
107
-            case 317:
108
-                // :server 317 DMDirc User 305 1422561556 :seconds idle, signon time
109
-                info.put(UserInfoType.IDLE_TIME, tokens[4]);
110
-                info.put(UserInfoType.CONNECTION_TIME, tokens[5]);
111
-                break;
112
-
113
-            case 330:
114
-                // :server 330 DMDirc User Account :is authed as
115
-                info.put(UserInfoType.ACCOUNT_NAME, tokens[4]);
116
-                break;
117
-        }
84
+    @Handler(condition = "msg.numeric == 311")
85
+    void handleUserInfo(final NumericEvent event) {
86
+        // :server 311 DMDirc User ~Ident host.dmdirc.com * :Real name
87
+        info.put(UserInfoType.ADDRESS,
88
+                event.getToken()[3] + '!' + event.getToken()[4] + '@' + event.getToken()[5]);
89
+        info.put(UserInfoType.REAL_NAME, event.getToken()[7]);
90
+    }
91
+
92
+    @Handler(condition = "msg.numeric == 312")
93
+    void handleServerInfo(final NumericEvent event) {
94
+        // :server 312 DMDirc User *.quakenet.org :QuakeNet IRC Server
95
+        info.put(UserInfoType.SERVER_NAME, event.getToken()[4]);
96
+        info.put(UserInfoType.SERVER_INFO, event.getToken()[5]);
97
+    }
98
+
99
+    @Handler(condition = "msg.numeric == 319")
100
+    void handleChannelList(final NumericEvent event) {
101
+        // :server 319 DMDirc User :@#channel1 +#channel2 ...
102
+        info.put(UserInfoType.GROUP_CHAT_LIST, event.getToken()[4]);
103
+    }
104
+
105
+    @Handler(condition = "msg.numeric == 317")
106
+    void handleIdleTime(final NumericEvent event) {
107
+        // :server 317 DMDirc User 305 1422561556 :seconds idle, signon time
108
+        info.put(UserInfoType.IDLE_TIME, event.getToken()[4]);
109
+        info.put(UserInfoType.CONNECTION_TIME, event.getToken()[5]);
110
+    }
111
+
112
+    @Handler(condition = "msg.numeric == 330")
113
+    void handleAccount(final NumericEvent event) {
114
+        // :server 330 DMDirc User Account :is authed as
115
+        info.put(UserInfoType.ACCOUNT_NAME, event.getToken()[4]);
118 116
     }
119 117
 
120 118
     private void sendEvent() {

Loading…
Отказ
Запис