Browse Source

Fix specific callbacks.

pull/47/head
Chris Smith 9 years ago
parent
commit
6b1aa652b5

+ 2
- 1
common/src/com/dmdirc/parser/common/CallbackObject.java View File

@@ -31,6 +31,7 @@ import java.lang.annotation.Annotation;
31 31
 import java.lang.reflect.Constructor;
32 32
 import java.lang.reflect.InvocationTargetException;
33 33
 import java.lang.reflect.Method;
34
+import java.util.Date;
34 35
 import java.util.HashMap;
35 36
 import java.util.List;
36 37
 import java.util.Map;
@@ -102,7 +103,7 @@ public class CallbackObject {
102 103
      * @param errorInfo ParserError object to pass as error.
103 104
      */
104 105
     protected final void callErrorInfo(final ParserError errorInfo) {
105
-        myManager.getCallback(ErrorInfoListener.class).onErrorInfo(null, null, errorInfo);
106
+        myManager.getCallback(ErrorInfoListener.class).onErrorInfo(myParser, new Date(), errorInfo);
106 107
     }
107 108
 
108 109
     /**

+ 8
- 8
common/src/com/dmdirc/parser/common/CallbackObjectSpecific.java View File

@@ -140,14 +140,14 @@ public class CallbackObjectSpecific extends CallbackObject {
140 140
 
141 141
         for (CallbackInterface iface : new ArrayList<>(callbackInfo)) {
142 142
             if (type.isAnnotationPresent(SpecificCallback.class)
143
-                    && ((args[0] instanceof ClientInfo
144
-                    && !isValidUser(iface, ((ClientInfo) args[0]).getHostname()))
145
-                    || (args[0] instanceof ChannelInfo
146
-                    && !isValidChan(iface, (ChannelInfo) args[0]))
147
-                    || (!(args[0] instanceof ClientInfo
148
-                    || args[0] instanceof ChannelInfo)
143
+                    && (args[2] instanceof ClientInfo
144
+                    && !isValidUser(iface, ((ClientInfo) args[2]).getHostname())
145
+                    || args[2] instanceof ChannelInfo
146
+                    && !isValidChan(iface, (ChannelInfo) args[2])
147
+                    || !(args[2] instanceof ClientInfo
148
+                    || args[2] instanceof ChannelInfo)
149 149
                     && args[args.length - 1] instanceof String
150
-                    && !isValidUser(iface, (String) args[args.length - 1])))) {
150
+                    && !isValidUser(iface, (String) args[args.length - 1]))) {
151 151
                 continue;
152 152
             }
153 153
 
@@ -155,7 +155,7 @@ public class CallbackObjectSpecific extends CallbackObject {
155 155
                 type.getMethods()[0].invoke(iface, args);
156 156
             } catch (ReflectiveOperationException e) {
157 157
                 final ParserError ei = new ParserError(ParserError.ERROR_ERROR,
158
-                        "Exception in callback (" + e.getMessage() + ")",
158
+                        "Exception in callback (" + e.getMessage() + ')',
159 159
                         myParser.getLastLine());
160 160
                 ei.setException(e);
161 161
                 callErrorInfo(ei);

Loading…
Cancel
Save