Войти или зарегистрироваться

Помогите Можно ли получить метод из приватного класса?

  • Автор темы Автор темы ItsWay
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

ItsWay

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
ItsWay
Всем привет! Проблема в том, я разрабатываю плагин, и в нём мне надо получить приватный метод из другого плагина который я подключил в библиотеке. Но я не могу получить нужный метод из класса, потому что он приватный, появился вопрос, можно ли получить метод, если он приватный?
 
видимо используемый метод это утилита, или что делает этот метод?
 
видимо используемый метод это утилита, или что делает этот метод?
Точнее это переменная, boolean. Вот код:

Код:
    private boolean checkDamager(final Player damager) {
        if (damager.hasPermission("taprelog.bypass.mode")) {
            return false;
        }
 
и что, ты не можешь просто скопировать его?
 
и что, ты не можешь просто скопировать его?
Ну хз, это всё построено на основе RwRelog, к тому же там есть и другие ещё ивенты, где могут они менять значение, а это юзаеться в другом плагине, по идеи можно разрешить получать информацию из метода boolean, но как я хз, кароч не будет функционалить как надо если создать такой же метод ток в моём плагине.
 
Ну хз, это всё построено на основе RwRelog, к тому же там есть и другие ещё ивенты, где могут они менять значение, а это юзаеться в другом плагине, по идеи можно разрешить получать информацию из метода boolean, но как я хз, кароч не будет функционалить как надо если создать такой же метод ток в моём плагине.
Что за бредятину ты несешь??

Просто сделай такой же метод у себя и не забивай голову хернёй

А если по сабжу - рефлексия твое спасение
 
Что за бредятину ты несешь??

Просто сделай такой же метод у себя и не забивай голову хернёй

А если по сабжу - рефлексия твое спасение
Смотри, там у меня два метода boolean, если я его добавлю у себя в плагине, то будет не синхронно работать что надо, потому что там есть моменты в плагине релога где они меняют это значение, а как они будут менять значение в другом плагине?
 
Смотри, там у меня два метода boolean, если я его добавлю у себя в плагине, то будет не синхронно работать что надо, потому что там есть моменты в плагине релога где они меняют это значение, а как они будут менять значение в другом плагине?
По личному опыту могу сказать, что пермишен меняют максимально редко (если вообще меняют), это не какая-то, например, механика, чтобы её постоянно "дёргать".

А даже если когда-то перм и поменяют, исправить это дело в твоём плагине буквально 1 минута.

Проверка пермишена не та вещь, ради которой стоит прибегать к рефлексии
 
Всем привет! Проблема в том, я разрабатываю плагин, и в нём мне надо получить приватный метод из другого плагина который я подключил в библиотеке. Но я не могу получить нужный метод из класса, потому что он приватный, появился вопрос, можно ли получить метод, если он приватный?
Можно с использованием Reflection API.
Целесообразно ли это - другой вопрос, соглашусь с комментатором выше.
 
Точнее это переменная, boolean. Вот код:

Код:
    private boolean checkDamager(final Player damager) {
        if (damager.hasPermission("taprelog.bypass.mode")) {
            return false;
        }
просто скопируй его себе, там нет ничего что зависело бы от какого-то класса в этом плагине
 
Не хочешь копировать тот метод?
Используй вот этот!
Он совершенно другой но будет работать также:lol:

Код:
    private boolean checkDamager(Player player){
        return !player.hasPermission("taprelog.bypass.mode");
    }
 
По личному опыту могу сказать, что пермишен меняют максимально редко (если вообще меняют), это не какая-то, например, механика, чтобы её постоянно "дёргать".

А даже если когда-то перм и поменяют, исправить это дело в твоём плагине буквально 1 минута.

Проверка пермишена не та вещь, ради которой стоит прибегать к рефлексии
Самый дельный совет, я понял, спасибо
 
Не хочешь копировать тот метод?
Используй вот этот!
Он совершенно другой но будет работать также:lol:

Код:
    private boolean checkDamager(Player player){
        return !player.hasPermission("taprelog.bypass.mode");
    }
Так-же только в коде только, спасибо
 
Последнее редактирование:
Есть ещё один дельный совет - запросить у разработчика нужный тебе функционал. Вернее сделать его публичным в твоём случае.
Достаточно просто создать issue в Гите и описать свою проблему - поможешь себе и другим людям с такой же ситуацией.
Можешь даже пуллреквест сразу предложить, чтобы ускорить процесс
 
Есть ещё один дельный совет - запросить у разработчика нужный тебе функционал. Вернее сделать его публичным в твоём случае.
Достаточно просто создать issue в Гите и описать свою проблему - поможешь себе и другим людям с такой же ситуацией.
Можешь даже пуллреквест сразу предложить, чтобы ускорить процесс
это приватный плагин, ну я забил болт на это, поэтому не буду это делать пока что) Спасибо всем кто откликнулся.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх