public static enum ToolMaterial{
WOOD(0, 59, 2.0F, 0.0F, 15),
STONE(1, 131, 4.0F, 1.0F, 5),
IRON(2, 250, 6.0F, 2.0F, 14),
DIAMOND(3, 1561, 8.0F, 3.0F, 10),
GOLD(0, 32, 12.0F, 0.0F, 22);
/** The level of material this tool can harvest (3 = DIAMOND, 2 = IRON, 1 = STONE, 0 = WOOD/GOLD) */
private final int harvestLevel;
/** The number of uses this material allows. (wood = 59, stone = 131, iron = 250, diamond = 1561, gold = 32) */
private final int maxUses;
/** The strength of this tool material against blocks which it is effective against. */
private final float efficiencyOnProperMaterial;
/** Damage versus entities. */
private final float damageVsEntity;
/** Defines the natural enchantability factor of the material. */
private final int enchantability;
//Added by forge for custom Tool materials.
private ItemStack repairMaterial = ItemStack.EMPTY;
В чем проблема?Maxik001 написал(а):Вопрос лишь в том, что мне надо засовывать хук в конструктор
Конструктор есть всегда.Maxik001 написал(а):а без конструктора невозможно создать перечисление
Dahaka написал(а):В чем проблема?Maxik001 написал(а):Вопрос лишь в том, что мне надо засовывать хук в конструктор
Так статических констукторов не существует вовсе. лолMaxik001 написал(а):нельзя создать конструктор с модификаторами public static
Dahaka написал(а):public static конструктор? Тебе не помешало бы подучить java.
@Hook(targetMethod = "<init>")
public static void blockSandConstructor(BlockSand blockSand, int id){
System.out.println("Constructing BlockSand!");
}
Dahaka написал(а):Допустим, добавил поле в класс. А как его доставать? Рефлексией?
hohserg написал(а):Рефлексия медленная
hohserg написал(а):Не знаю, нужно ли тебе, или нет, но я нашел такой комментарий в hooklib.asm.SafeClassWriter:Agravaine написал(а):Странно, но если неявно трогать объект класса, то будет вываливаться ClassNotFoundException.
Кажется, из-за этого у тебя вываливался ClassNotFoundException.Код:/** * ClassWriter с другой реализацией метода getCommonSuperClass: при его использовании не происходит загрузки классов. * Однако, сама по себе загрузка классов редко является проблемой, потому что инициализация класса (вызов статических * блоков) происходит не при загрузке класса. Проблемы появляются, когда хуки вставляются в зависимые друг от друга * классы, тогда стандартная реализация отваливается с ClassCircularityError. */