Validate method parameters when registering events. Fixes BUKKIT-3779

By: feildmaster <admin@feildmaster.com>
This commit is contained in:
Bukkit/Spigot 2013-03-16 17:17:09 -05:00
parent 6e7076fd64
commit 50f297d941

View file

@ -380,8 +380,8 @@ public class JavaPluginLoader implements PluginLoader {
for (final Method method : methods) {
final EventHandler eh = method.getAnnotation(EventHandler.class);
if (eh == null) continue;
final Class<?> checkClass = method.getParameterTypes()[0];
if (!Event.class.isAssignableFrom(checkClass) || method.getParameterTypes().length != 1) {
final Class<?> checkClass;
if (method.getParameterTypes().length != 1 || !Event.class.isAssignableFrom(checkClass = method.getParameterTypes()[0])) {
plugin.getLogger().severe(plugin.getDescription().getFullName() + " attempted to register an invalid EventHandler method signature \"" + method.toGenericString() + "\" in " + listener.getClass());
continue;
}