Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
рефлектион
#11
Warencense Написал:Если не ошибаюсь, вызов Class<?> clazz = Class.forName("blablabla"); используется классов, которые компилируются и загружаются в память при запуске гса. То есть, если класс находится в скомпилированной сборке в виде скомпилированного класса (тобишь в jar-файлах) - используется обычный import, если же класс находится в виде исходника (в основном по пути gameserver/data/scripts/..), то используется создание объекта Class<?>.

Добавлено через 9 минут
Как-то так в общем:
[src='java']
import ... тут всякие импорты
import ru.catssoftware.gameserver.model.olympiad.Olympiad;

... какой-то код
else if(args[0].equals("noblese123")) {
if(!player.isNoble())
return "Вы не нублесс";
if(!checkMoney(player, _reload_pts)) // Проверяем Деньги
return "Вам необходимо иметь 5 Coin of Luck!";

try {
Olympiad oly;

StatsSet noble_char = (StatsSet) oly.getNobleStats(player.getObjectId);
noble_char.set("olympiad_points", 1337);
oly.updateNobleStats(player.getObjectId(), noble_char);

} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return "У Вас 18 очков, удачи! Пропишите /olympiadstat";
}
[/src]
public final class Olympiad
Ответ
#12
Прозевал значит, тогда видимо проблема в "olympiad_points"
Ответ
#13
Bend3r Написал:public final class Olympiad

А ничего что Olympiad является синглтоном и потому защищен от наследования?
getInstance не пробовали? Reflection здесь не нужен.

p.s А ещё вы вызываете Invoke на статических методах с указанием класса-экземпляра в виде класса Class что просто является абсурдом.
Ответ
#14
Код:
} catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            } catch (NoSuchMethodException e) {
                e.printStackTrace();
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
Это что за треш? Нельзя просто catch(Exception e)?
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ
#15
Проблема решена! Огромное спасибо Pointer*Rage.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)