- 235
- 3
- 21
добрый день
использую хук-либу от gloomyfolken
столкнулся с необходимостью хукнуть конструктор класса BiomeGenBase, нужно полностью его заменить, а не в начало или конец вставить код
мод вакумный и все нотации по типу "зачем так делать" мне не интересны
проблема в том, что я не очень понимаю, как правильно указывать все параметры в анотации и характерестики метода для хука(тип возвращаемоего значения)
при моем текущем варианте, проиходит краш при запуске
использую хук-либу от gloomyfolken
столкнулся с необходимостью хукнуть конструктор класса BiomeGenBase, нужно полностью его заменить, а не в начало или конец вставить код
мод вакумный и все нотации по типу "зачем так делать" мне не интересны
проблема в том, что я не очень понимаю, как правильно указывать все параметры в анотации и характерестики метода для хука(тип возвращаемоего значения)
при моем текущем варианте, проиходит краш при запуске
Код:
@Hook(createMethod = true, returnCondition = ReturnCondition.ALWAYS, targetMethod = "<init>")
public static void BiomeGenBase(BiomeGenBase biomeGenBase, int p_i1971_1_, boolean register)
{
biomeGenBase.topBlock = Blocks.grass;
biomeGenBase.field_150604_aj = 0;
biomeGenBase.fillerBlock = Blocks.dirt;
biomeGenBase.field_76754_C = 5169201;
biomeGenBase.rootHeight = biomeGenBase.height_Default.rootHeight;
biomeGenBase.heightVariation = biomeGenBase.height_Default.variation;
biomeGenBase.temperature = 0.5F;
biomeGenBase.rainfall = 0.5F;
biomeGenBase.waterColorMultiplier = 16777215;
biomeGenBase.spawnableMonsterList = new ArrayList();
biomeGenBase.spawnableCreatureList = new ArrayList();
biomeGenBase.spawnableWaterCreatureList = new ArrayList();
biomeGenBase.spawnableCaveCreatureList = new ArrayList();
biomeGenBase.enableRain = true;
biomeGenBase.worldGeneratorTrees = new WorldGenTrees(false);
biomeGenBase.worldGeneratorBigTree = new WorldGenBigTree(false);
biomeGenBase.worldGeneratorSwamp = new WorldGenSwamp();
biomeGenBase.biomeID = p_i1971_1_;
if (register)
biomeGenBase.biomeList[p_i1971_1_] = biomeGenBase;
biomeGenBase.theBiomeDecorator = biomeGenBase.createBiomeDecorator();
biomeGenBase.spawnableCreatureList.add(new BiomeGenBase.SpawnListEntry(EntitySheep.class, 12, 4, 4));
biomeGenBase.spawnableCreatureList.add(new BiomeGenBase.SpawnListEntry(EntityPig.class, 10, 4, 4));
biomeGenBase.spawnableCreatureList.add(new BiomeGenBase.SpawnListEntry(EntityChicken.class, 10, 4, 4));
biomeGenBase.spawnableCreatureList.add(new BiomeGenBase.SpawnListEntry(EntityCow.class, 8, 4, 4));
//biomeGenBase.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySpider.class, 100, 4, 4));
//biomeGenBase.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityZombie.class, 100, 4, 4));
//biomeGenBase.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySkeleton.class, 100, 4, 4));
//biomeGenBase.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityCreeper.class, 100, 4, 4));
biomeGenBase.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySlime.class, 100, 4, 4));
//biomeGenBase.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityEnderman.class, 10, 1, 4));
biomeGenBase.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityWitch.class, 5, 1, 1));
//biomeGenBase.spawnableWaterCreatureList.add(new BiomeGenBase.SpawnListEntry(EntitySquid.class, 10, 4, 4));
biomeGenBase.spawnableCaveCreatureList.add(new BiomeGenBase.SpawnListEntry(EntityBat.class, 10, 8, 8));
biomeGenBase.addDefaultFlowers();
}
Код:
java.lang.ExceptionInInitializerError
at net.minecraftforge.common.BiomeDictionary.<clinit>(BiomeDictionary.java:113)
at net.minecraftforge.common.ForgeModContainer.postInit(ForgeModContainer.java:290)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
at cpw.mods.fml.common.Loader.initializeMods(Loader.java:742)
at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311)
at net.minecraft.client.Minecraft.startGame(Minecraft.java:597)
at net.minecraft.client.Minecraft.run(Minecraft.java:942)
at net.minecraft.client.main.Main.main(Main.java:164)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
at GradleStart.main(Unknown Source)
Caused by: java.lang.NullPointerException
at net.minecraft.world.biome.BiomeGenBase.addDefaultFlowers(BiomeGenBase.java:642)
at ru.Pa4ok.mod.core.hooks.BiomeGenBaseHook.BiomeGenBase(BiomeGenBaseHook.java:65)
at net.minecraft.world.biome.BiomeGenBase.<init>(BiomeGenBase.java:170)
at net.minecraft.world.biome.BiomeGenBase.<init>(BiomeGenBase.java:167)
at net.minecraft.world.biome.BiomeGenOcean.<init>(BiomeGenOcean.java:13)
at net.minecraft.world.biome.BiomeGenBase.<clinit>(BiomeGenBase.java:67)
... 36 more