Вопрос EventManager error

Начинающий
Статус
Оффлайн
Регистрация
26 Янв 2023
Сообщения
44
Реакции[?]
0
Поинты[?]
0

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Здравствуйте, есть вопрос, делал EventManager вроде как всё нормально, но когда добавляю Event через call то вылазит ошибка, как её решить ?​
Код:
public class EventManager {

    public static Map<Class<? extends Event>, Map<Object, Method>> eventList;

    @SneakyThrows
    public EventManager () {
        eventList = new HashMap<>();
    }

    public static void register (Object object) {
        Class<? extends Event> classObject = (Class<? extends Event>) object.getClass();
        for (Method method : classObject.getDeclaredMethods()) {
            if (method.isAnnotationPresent( SubstribleEvent .class)) {
                Class<? extends Event>[] classParameter = (Class<? extends Event>[]) method.getParameterTypes();
                if (classParameter.length == 1) {
                    Class<? extends Event> eventType = classParameter[0];
                    eventList.computeIfAbsent(eventType, k -> new HashMap<>()).put(object, method);
                }
            }
        }
    }

    public static void unregister (Object object) {
        for (Map<Object, Method> mapList : eventList.values()) {
            eventList.remove(object);
        }
    }

    @SneakyThrows
    public static void call (Object object) {
        Class<? extends Event> classObject = (Class<? extends Event>) object.getClass();
        Map<Object, Method> mapList = eventList.get(classObject);
        if (mapList != null) {
            for (Method method : mapList.values()) {
                method.invoke(method.getDeclaringClass().getInterfaces(), object);
            }
        }
    }

}
image.png
 
Начинающий
Статус
Оффлайн
Регистрация
10 Сен 2023
Сообщения
15
Реакции[?]
0
Поинты[?]
0
Здравствуйте, есть вопрос, делал EventManager вроде как всё нормально, но когда добавляю Event через call то вылазит ошибка, как её решить ?​
Код:
public class EventManager {

    public static Map<Class<? extends Event>, Map<Object, Method>> eventList;

    @SneakyThrows
    public EventManager () {
        eventList = new HashMap<>();
    }

    public static void register (Object object) {
        Class<? extends Event> classObject = (Class<? extends Event>) object.getClass();
        for (Method method : classObject.getDeclaredMethods()) {
            if (method.isAnnotationPresent( SubstribleEvent .class)) {
                Class<? extends Event>[] classParameter = (Class<? extends Event>[]) method.getParameterTypes();
                if (classParameter.length == 1) {
                    Class<? extends Event> eventType = classParameter[0];
                    eventList.computeIfAbsent(eventType, k -> new HashMap<>()).put(object, method);
                }
            }
        }
    }

    public static void unregister (Object object) {
        for (Map<Object, Method> mapList : eventList.values()) {
            eventList.remove(object);
        }
    }

    @SneakyThrows
    public static void call (Object object) {
        Class<? extends Event> classObject = (Class<? extends Event>) object.getClass();
        Map<Object, Method> mapList = eventList.get(classObject);
        if (mapList != null) {
            for (Method method : mapList.values()) {
                method.invoke(method.getDeclaringClass().getInterfaces(), object);
            }
        }
    }

}
Вы наверное просто не объявили объект класса EventManager
 
Сверху Снизу