Помогите Рефлексия [Решено(Оооо дааа)]

Exception_Prototype

Активный участник
Пользователь
Баллы
96
Впервые работаю с рефлексией. Взрыв.
Java:
            try {
              Class  clazz = Class.forName("co.uk.flansmods.common.guns.EntityBullet");
            } catch (ClassNotFoundException | SecurityException ex) {
                Logger.getLogger(EntityDamageByEntity.class.getName()).log(Level.SEVERE, null, ex);
            }
Класс получен. Всё ок.

Java:
            try {
                field = clazz.getField("owner");
            } catch (NoSuchFieldException | SecurityException ex) {
                Logger.getLogger(EntityDamageByEntity.class.getName()).log(Level.SEVERE, null, ex);
            }
Поле получено. Всё ок.

Java:
            try {
                field.get(clazz); //Это была последняя попытка, попытался никуда не присваивая получить объект. А до этого пытался и в оригинальный Entity, в CraftEntity, BukkitEntity.
            } catch (IllegalArgumentException | IllegalAccessException ex) {
                Logger.getLogger(EntityDamageByEntity.class.getName()).log(Level.SEVERE, null, ex);
            }
В этом поле сидит следующие: http://joxi.ru/KAx9lykCMbDa7r
Ошибки:
java.lang.IllegalArgumentException: Can not set net.minecraft.entity.Entity field co.uk.flansmods.common.guns.EntityBullet.owner to java.lang.Class
Я не понимаю в чём ошибка. Прошу помощи.
 
Последнее редактирование:
Цель задачи. Получить овнера выпущенной пули. Далее сделать с овнером всё что нужно.
Как в примере
Java:
Class c = obj.getClass(); 
Field field = c.getField("name"); 
String nameValue = (String) field.get(obj)
Но у меня способ построения другой. Я хз...
 
Цель задачи. Получить овнера выпущенной пули. Далее сделать с овнером всё что нужно.
Как в примере
Java:
Class c = obj.getClass();
Field field = c.getField("name");
String nameValue = (String) field.get(obj)
Но у меня способ построения другой. Я хз...
гетшотер епти.
 
Посмотри скрин, пуля не наследует снаряд(

Пробовал, неа.
А создать медод религия не позволяет? Там же почти исходники. А лучше сразу ивент рисуй там в свою прожектилю.
И потом у тебя мод какой то древний. 4.10.0 же последний для 1.7.10.
 
А создать медод религия не позволяет? Там же почти исходники. А лучше сразу ивент рисуй там в свою прожектилю.
Мод редактировать не вариант.
Понимаешь в чём прекол, я не могу из обычно EventEntityDamageByEntity получить того, кто выпустил пулю.
Я не понял твоего предложения.
А создать медод религия не позволяет? Там же почти исходники. А лучше сразу ивент рисуй там в свою прожектилю.
И потом у тебя мод какой то древний. 4.10.0 же последний для 1.7.10.
Сервак 1.6.4
 
Мод редактировать не вариант.
Понимаешь в чём прекол, я не могу из обычно EventEntityDamageByEntity получить того, кто выпустил пулю.
Я не понял твоего предложения.

Сервак 1.6.4
Ну дык и не смогешь, если ивент не бросается пулей.
 
Без понятия, да и шотер там может быть пустым.
Скинь мне свой мод.
По идее не может быть пустым. Даже если и пустой, что за ошибка такая.
Это не прям моя, у меня прост 4.1.0
Прост моей версии нет с серверой частью, ибо ориентируюсь только на клиенский вариант.
 

Вложения

Вот где то тут ивент вставляй
brRdK1VuJV7Pv2.jpg
 
Вот где то тут ивент вставляй
brRdK1VuJV7Pv2.jpg
У меня нет возможности редактировать мод...
Да данный момент админы не будут уже ворошить старый сервер и тестировать исправления в моде, ибо занимаются новым. А я для практики решил пофиксить там всякую дичь пока не вышла новая версия.
 
У меня нет возможности редактировать мод...
Да данный момент админы не будут уже ворошить старый сервер и тестировать исправления в моде, ибо занимаются новым. А я для практики решил пофиксить там всякую дичь пока не вышла новая версия.
Ну и забей. Жди обновы.
 
Да там все неправильно, забей.
Потратив столько времени? Забить?
Вы можете указать конкретно на ошибку, чтобы я знал в каком направлении рыть.
---
Вообще как бы суть в том, что WG не может контролировать атаку с ноу пвп. Т.е. урон от пуль наносится, когда игрок стреляет с зоны ноу пвп в пвп. Я хотел это пофиксить определяя местоположение шутера и регион в котором он стоит. Изначально я пытался запретить взаимодействие с оружием вообще в ноу пвп зоне, как бы всё работало, но пока отмена взаимодействия сработает - оружие успевает выстрелить. Мне что его забирать на секунду, а потом тыкать обратно в слот, чтобы оно не успело выстрелить?
 
Потратив столько времени? Забить?
Вы можете указать конкретно на ошибку, чтобы я знал в каком направлении рыть.
---
Вообще как бы суть в том, что WG не может контролировать атаку с ноу пвп. Т.е. урон от пуль наносится, когда игрок стреляет с зоны ноу пвп в пвп. Я хотел это пофиксить определяя местоположение шутера и регион в котором он стоит.
В самом начале у тебя уже фейл. Ты просто грузишь класс, это новый объект да еще и с пустым конструктором и он не принадлежит какой либо запущенной пули. Ты просто потратил свое время впустую. Ну и все фиелды там нулл, которые задает конструктор.
Как минимум тебе нужно ведро.гетсервер.генентитиес(выбрать пули и дальше с ними что то делать) Но и это тебя не спасет, ты только сервак повесишь.
 
Назад
Верх