Jump to content

Enderlook

Members
  • Posts

    45
  • Joined

  • Last visited

Everything posted by Enderlook

  1. Ok, I've changed just to try: baseName = 'extracraftcore-1.0' baseName = 'extracraft-1.0' And when I run "gradlew.bat build fullBuild" I get this error: FAILURE: Build failed with an exception. * What went wrong: Failed to create MD5 hash for file C:\Juegos\Minecraft\Codding\forge-1.12.2-14.23.4.2705-mdk\.gradle\2.14\taskArtifacts\cache.properties.lock. And then it says in Spanish something like "The process doesn't have access to the file because another process has blocked a part of the file". I don't know what to do
  2. I've tried to do the same as you but it isn't working:: version = "1.0" group = "net.enderlook.extracraftcore" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "extracraftcore" // [...] task extracraftcore(type: Jar) { baseName = 'extracraftcore' from('etc/extracraftcore') { include '*.info','pack.mcmeta' expand 'version': '1.0', 'mcversion': project.minecraft.version } from zipTree(jar.outputs.getFiles().getSingleFile()).matching { include 'net/enderlook/extracraftcore/**', 'assets/extracraftcore/**' exclude '**.xcf', 'net/enderlook/extracraft/**', 'assets/extracraft/**' } } task extracraft(type: Jar) { baseName = 'extracraft' from('etc/extracraft') { include '*.info','pack.mcmeta' expand 'version': '1.0', 'mcversion': project.minecraft.version } from zipTree(jar.outputs.getFiles().getSingleFile()).matching { include 'net/enderlook/extracraft/**', 'assets/extracraft/**' exclude '**.xcf', 'net/enderlook/extracraftcore/**', 'assets/extracraftcore/**' } } extracraft.dependsOn('extracraftcore') task releaseJars(type: Copy) { from extracraftcore from extracraft //one of these lines crashes it? rename '-(.*)jar', '.jar' rename '-(.*)zip', '.zip' into '.' } task fullBuild(type: Delete) { delete jar } fullBuild.dependsOn('releaseJars') Also, I've noted something strange on your mod that I don't understand: Your "mcmod.info" is the default of forge (examplemod) (In my mcmod.info I've two dictionaries {}, one for extracraft and another for extracraftcore ).
  3. I've made two mods: Extracraft Core: this mod has my custom classes which inherit from Item and Block. Extracraft: This mod import that classes and with them creates items and blocks. I made this because I've planned in the future to make several mods and I don't want in each one have to make that classes, so I want to have a "core" mod which is used by all of them. The strange this is that when I try to compile the mods it produces to jars: Extracraft-1.0.jar Extracraft-1.0-sources.jar And if I drag the first file in the mod folder, both mods appear in Minecraft, so: It seems that the second file is useless. "Physically" in the mod folder there is only 1 jar, but "virtually" in the Minecraft mod button you can see 2 mods. So it seems that both mods get fussed in the same jar file. I compile them using "gradle.bat build" and in the build.gradle I wrote: version = "1.0" group = "net.enderlook.extracrafcore" archivesBaseName = "extracraftcore" If I let the values as default (com.example.modid) it also works but the file change of name... So my questions are: Is fine my idea of split the "common" code between my mods into a "core/lib/whatever" mod? Or is it a bit stupid/lazy? How can I split that .jar into two .jar (one for each mod)? What is the usage of Extracraft-1.0-sources.jar? If when I use "gradle.bat build" gradle compile all my mods, What would happen if I have a lot of mods? Is there a way to as gradle to only compile an specific mod? Thanks in advance!
  4. Ups, I've forgotten that. And which method is better? Register them like I do, or in the other way?
  5. ... isn't "@SubscribeEvent" the way to register the event? I've another event registered in that way (for another enchantment) and they work. All of them are registered in the same class under the "@EventBusSubscriber(modid=ExtraCraft.MOD_ID)"
  6. Ok, I've tried with this code (and the same with LivingDamageEvent) but it seems don't work: @SubscribeEvent public void vampire(LivingAttackEvent event) { Object attacker = event.getSource().getTrueSource(); if (attacker instanceof EntityLivingBase) { EntityLivingBase entityAttacker = (EntityLivingBase)attacker; if(!entityAttacker.getEntityWorld().isRemote) { int level = EnchantmentHelper.getEnchantmentLevel(ENCHANTEMNT_VAMPIRISM, entityAttacker.getHeldItemMainhand()); entityAttacker.heal(event.getAmount() * (level / 5)); } } } What am I doing wrong?
  7. Actually, I have done one: @Override public void onEntityDamaged (EntityLivingBase user, Entity target, int level) { user.heal(1 + level); } ... But I have a problem, this heals the player a flat amount. My idea is to heal the player a percentage of the damage dealt to the target. How can I get the amount of damaged provoked to the enemy in order to calculate my life steal?
  8. You have right, the registry name was different from the @ObjectHolder, I didn't know that. Thank you!
  9. I'm not sure what you mean with "try using the player", but note that if I replace my block ModBlocks.PETRIFY_OBSIDIAN_BLOCK to Blocks.OBSIDIAN (I mean, a vanilla block) it works fine. That is why I think it may be a problem with the block. I'm sorry but I don't know how to use that IDE's tools, so I'll do my best. I've set a breakpoint in that line and open debug mode. It says: event LivingEvent$LivingUpdateEvent (id=419) level 1 entity EntityPlayerMP (id=424) entityLiving EntityPlayerMP (id=424) world WorldServer (id=431) r 3 pos BlockPos (id=436) x -1 z -2 blockpos BlockPos (id=697) iblockstate BlockStateContainer$StateImplementation (id=440) It seems that there isn't any null in that variables. But... If I add this line before the breakpoint: BlockPetrifyObsidian a = ModBlocks.BLOCK_PETRIFY_OBSIDIAN; I can see: getMaterial() returned MaterialLogic (id=462) event LivingEvent$LivingUpdateEvent (id=418) level 1 entity EntityPlayerMP (id=423) entityLiving EntityPlayerMP (id=423) world WorldServer (id=430) r 3 pos BlockPos (id=435) x -2 z -2 blockpos BlockPos (id=438) iblockstate BlockStateContainer$StateImplementation (id=439) a null That "a" ---> my custom block, is null. So, if both things (the block and the event) are registered automatically with "@SubscribeEvent", how can I ask Minecraft/Forge to initialize first the block and then the event? Or I don't know, whatever it must be done.
  10. I know, the line 69 is: if (iblockstate.getMaterial() == Material.LAVA && (iblockstate.getBlock() == Blocks.LAVA || iblockstate.getBlock() == Blocks.FLOWING_LAVA) && world.mayPlace(ModBlocks.BLOCK_PETRIFY_OBSIDIAN, blockpos, false, EnumFacing.DOWN, (Entity)null)) { I'm quite sure the null may be `ModBlocks.BLOCK_PETRIFY_OBSIDIAN`, that is why I'm asking how can I fix it. That block is initialized automatically by Minecraft: @EventBusSubscriber(modid = ExtraCraft.MOD_ID) public class ModBlocks { // [...] @ObjectHolder(ExtraCraft.MOD_ID + ":petrify_obsidian_block") public static final BlockPetrifyObsidian BLOCK_PETRIFY_OBSIDIAN = null; // [...] } And also the enchantment is initialized by Minecraft: @EventBusSubscriber(modid=ExtraCraft.MOD_ID) public class ModEnchantments { // [...] @SubscribeEvent public static void stonewalker(LivingUpdateEvent event) { // [...] } } So I don't know how to fix it.
  11. I've made a custom block, called `petrify_obsidian` (just a basic block) in order to spawn it with my "stone_walker". But each time I try to use my enchantment it crashes the game, and if I replace it with normal obsidian, it doesn't. What am I doing wrong? I just changed `Blocks.OBSIDIAN` to `ModBlocks.PETRIFY_OBSIDIAN_BLOCK`. I think the problem may be with the way I register it, but not sure. @EventBusSubscriber(modid = ExtraCraft.MOD_ID) public class ModBlocks { @ObjectHolder(ExtraCraft.MOD_ID + ":petrify_obsidian_block") public static final BlockPetrifyObsidian BLOCK_PETRIFY_OBSIDIAN = null; private static CBlockBasic[] BLOCK_BASIC; public static void init() { BLOCK_BASIC = new CBlockBasic[] { new BlockPetrifyObsidian() }; } @SideOnly(Side.CLIENT) public static void initializeBlockModels() { for (CBlockBasic block : BLOCK_BASIC) { block.initializeModel(); } }; @SubscribeEvent public static void registerBlocks(final RegistryEvent.Register<Block> event) { final IForgeRegistry<Block> registry = event.getRegistry(); registry.registerAll(BLOCK_BASIC); }; @SubscribeEvent public static void registerItemBlocks(final RegistryEvent.Register<Item> event) { for (CBlockBasic block : BLOCK_BASIC) { block.registerItemBlock(event); } } } Init is called on: @Mod(modid = ExtraCraft.MOD_ID, name = ExtraCraft.NAME, version = ExtraCraft.VERSION) @EventBusSubscriber(modid = ExtraCraft.MOD_ID) public class ExtraCraft implements IProxy { // [...] @Override @EventHandler public void preInitializationEvent(FMLPreInitializationEvent event) { ModBlocks.init(); } // [...] } I think that the registration of my enchantment event is being done before my block initialization (null exception), but I don't know how to change the order. Description: Ticking player java.lang.NullPointerException: Ticking player at net.minecraft.world.World.mayPlace(World.java:3435) at net.enderlook.extracraft.init.ModEnchantments.stonewalker(ModEnchantments.java:69) at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_8_ModEnchantments_stonewalker_LivingUpdateEvent.invoke(.dynamic) at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182) at net.minecraftforge.common.ForgeHooks.onLivingUpdate(ForgeHooks.java:566) at net.minecraft.entity.EntityLivingBase.onUpdate(EntityLivingBase.java:2312) at net.minecraft.entity.player.EntityPlayer.onUpdate(EntityPlayer.java:272) at net.minecraft.entity.player.EntityPlayerMP.onUpdateEntity(EntityPlayerMP.java:423) at net.minecraft.network.NetHandlerPlayServer.update(NetHandlerPlayServer.java:185) at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher$1.update(NetworkDispatcher.java:212) at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:307) at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:197) at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:865) at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:743) at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:592) at java.lang.Thread.run(Unknown Source) What can I do?
  12. Oh, I was looking in blocks. That is why I haven't found it!
  13. Any idea of where can I get the source code of Frosted Ice? I would like to see it but I can't find it.
  14. You have right: https://minecraft.gamepedia.com/Frosted_Ice So, what is the purpose of?: world.scheduleUpdate(blockpos.toImmutable(), Blocks.COBBLESTONE, MathHelper.getInt(entityLiving.getRNG(), 60, 120));
  15. I'm trying to make a custom Frost Walker that instead of turn water into ice it will turn lava sources into obsidian and lava flows into cobblestone. Also, I want that after some time, that cobblestone and obsidian turns into lava again like in Frost walker. My problems are two: It isn't able to turn lava flows. It only works in sources (Pseudo-fixed below). It doesn't turn back blocks after a while. Here is my code: @SubscribeEvent public static void stonewalker(LivingUpdateEvent event) { int level = EnchantmentHelper.getMaxEnchantmentLevel(ENCHANTMENT_STONE_WALKER, event.getEntityLiving()); if(level > 0) { Entity entity = event.getEntity(); EntityLivingBase entityLiving = event.getEntityLiving(); World world = entity.world; if(!world.isRemote && entityLiving.onGround) { int r = level + 2; BlockPos pos = entity.getPosition(); for (int x = -r; x <= r; x++) { for (int z = -r; z <= r; z++) { BlockPos blockpos = pos.add(x,-1,z); if(blockpos.distanceSq(pos.getX(), pos.getY(), pos.getZ()) > r*r) { continue; } IBlockState iblockstate = world.getBlockState(blockpos); if (iblockstate.getMaterial() == Material.LAVA && (iblockstate.getBlock() == Blocks.LAVA || iblockstate.getBlock() == Blocks.FLOWING_LAVA) && ((Integer)iblockstate.getValue(BlockLiquid.LEVEL)).intValue() == 0 && world.mayPlace(Blocks.OBSIDIAN, blockpos, false, EnumFacing.DOWN, (Entity)null)) { world.setBlockState(blockpos, Blocks.OBSIDIAN.getDefaultState()); world.scheduleUpdate(blockpos.toImmutable(), Blocks.OBSIDIAN, MathHelper.getInt(entityLiving.getRNG(), 60, 120)); } } } } } }; I think the problems may be in the last if block statement. This: `iblockstate.getMaterial() == Material.LAVA && (iblockstate.getBlock() == Blocks.LAVA || iblockstate.getBlock() == Blocks.FLOWING_LAVA) && ((Integer)iblockstate.getValue(BlockLiquid.LEVEL)).intValue() == 0 && world.mayPlace(Blocks.COBBLESTONE, blockpos, false, EnumFacing.DOWN, (Entity)null)`. I'm not sure how works this part `((Integer)iblockstate.getValue(BlockLiquid.LEVEL)).intValue()`. I noted that if I delete that part, it's able to turn lava flows, but I was wondering why Minecraft has that in Frost Walker enchantment. Also, I think this line make the timer: `world.scheduleUpdate(blockpos.toImmutable(), Blocks.OBSIDIAN, MathHelper.getInt(entityLiving.getRNG(), 60, 120));` but I am not sure how to ask to "world" turn back the block after the time expires. The first problem can be fixed in this way: if (iblockstate.getMaterial() == Material.LAVA && (iblockstate.getBlock() == Blocks.LAVA || iblockstate.getBlock() == Blocks.FLOWING_LAVA) && world.mayPlace(Blocks.OBSIDIAN, blockpos, false, EnumFacing.DOWN, (Entity)null)) { if (((Integer)iblockstate.getValue(BlockLiquid.LEVEL)).intValue() == 0) { world.setBlockState(blockpos, Blocks.OBSIDIAN.getDefaultState()); world.scheduleUpdate(blockpos.toImmutable(), Blocks.OBSIDIAN, MathHelper.getInt(entityLiving.getRNG(), 60, 120)); } else { world.setBlockState(blockpos, Blocks.COBBLESTONE.getDefaultState()); world.scheduleUpdate(blockpos.toImmutable(), Blocks.COBBLESTONE, MathHelper.getInt(entityLiving.getRNG(), 60, 120)); } } Not sure the second one.
  16. ...mmm... each item class has its own ´setRegistryName()´ with a value, do you mean that?
  17. Ok, and it's fine using ´new´ for the items? Or I should do something especial? ITEMS_FOOD = new CItemFood[] { new ItemCandy(), new ItemDiamondApple() };
  18. Are you talking about the first example or the second one? Because I'm using right now the first for items and it works perfectly. Also, I'm using something similar to the second one for blocks and also work, that is why I'm asking about it.
  19. Also, I've another question. In my class when I register all the items or all the blocks, should I declare each variable (item or block) as null and then in a method (init) give them values? I mean, instead of (a piece of my class): @EventBusSubscriber(modid = ExtraCraft.MOD_ID) public class ModItems { public static final ToolMaterial EMERALD_MATERIAL_TOOL = EnumHelper.addToolMaterial("Emerald", 3, 1200, 9f, 3f, 22).setRepairItem(new ItemStack(Items.EMERALD)); @ObjectHolder(ExtraCraft.MOD_ID + ":candy") public static final ItemCandy ITEM_CANDY = new ItemCandy(); @ObjectHolder(ExtraCraft.MOD_ID + ":diamond_apple") public static final ItemDiamondApple ITEM_DIAMOND_APPLE = new ItemDiamondApple(); @ObjectHolder(ExtraCraft.MOD_ID + ":emerald_axe") public static final ItemEmeraldAxe ITEM_EMERALD_AXE = new ItemEmeraldAxe(); public static final CItemFood[] ITEMS_FOOD = new CItemFood[] { ITEM_CANDY, ITEM_DIAMOND_APPLE }; public static final CItemToolAxe[] ITEMS_TOOL_AXE = new CItemToolAxe[] { ITEM_EMERALD_AXE }; [...] } Or use an init method: @EventBusSubscriber(modid = ExtraCraft.MOD_ID) public class ModItems { public static ToolMaterial EMERALD_MATERIAL_TOOL = null; @ObjectHolder(ExtraCraft.MOD_ID + ":candy") public static ItemCandy ITEM_CANDY = null; @ObjectHolder(ExtraCraft.MOD_ID + ":diamond_apple") public static ItemDiamondApple ITEM_DIAMOND_APPLE = null; @ObjectHolder(ExtraCraft.MOD_ID + ":emerald_axe") public static ItemEmeraldAxe ITEM_EMERALD_AXE = null; public static CItemFood[] ITEMS_FOOD; public static CItemToolAxe[] ITEMS_TOOL_AXE; public static void init() { EMERALD_MATERIAL_TOOL = EnumHelper.addToolMaterial("Emerald", 3, 1200, 9f, 3f, 22).setRepairItem(new ItemStack(Items.EMERALD)); ITEMS_FOOD = new CItemFood[] { new ItemCandy(), new ItemDiamondApple() }; ITEMS_TOOL_AXE;= new CItemToolAxe[] { new ItemEmeraldAxe() }; } [...] } Or even maybe I should instead of use "new ItemCandy(), new ItemDiamondApple()" etc use "ITEM_CANDY, ITEM_DIAMON_APPLE" etc in the array? But in order to do that I won't be able to "ModItems.init()" on "preInitializationEvent" in ExtraCraft because items will be null...
  20. Ok, I'm quite new in Java and its the first programming language I see with interfaces (I also now just a bit of Python, JS and VBA).
  21. A variable with a value of the interface itself? It works... but I don't understand its usage...thanks
  22. Oh, before the "update" I had: private static CommonProxy proxy; But now I don't use a CommonProxy, so, what should I write? ClientProxy, ServerProxy or make both proxies?
  23. I've tried to remove the inheritance from ExtraCraft making an interface but it produces a crash: Description: There was a severe problem during mod loading that has caused the game to fail net.minecraftforge.fml.common.LoaderException: net.minecraftforge.fml.common.LoaderException: Attempted to load a proxy type net.enderlook.extracraft.proxy.ClientProxy into net.enderlook.extracraft.ExtraCraft.instance, but the types don't match at net.minecraftforge.fml.common.ProxyInjector.inject(ProxyInjector.java:102) at net.minecraftforge.fml.common.FMLModContainer.constructMod(FMLModContainer.java:603) 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.Subscriber.invokeSubscriberMethod(Subscriber.java:91) at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150) at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76) at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399) at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71) at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116) at com.google.common.eventbus.EventBus.post(EventBus.java:217) at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:218) at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:196) 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.Subscriber.invokeSubscriberMethod(Subscriber.java:91) at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150) at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76) at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399) at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71) at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116) at com.google.common.eventbus.EventBus.post(EventBus.java:217) at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:135) at net.minecraftforge.fml.common.Loader.loadMods(Loader.java:593) at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:225) at net.minecraft.client.Minecraft.init(Minecraft.java:513) at net.minecraft.client.Minecraft.run(Minecraft.java:421) at net.minecraft.client.main.Main.main(Main.java:118) 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 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.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) at GradleStart.main(GradleStart.java:25) Caused by: net.minecraftforge.fml.common.LoaderException: Attempted to load a proxy type net.enderlook.extracraft.proxy.ClientProxy into net.enderlook.extracraft.ExtraCraft.instance, but the types don't match at net.minecraftforge.fml.common.ProxyInjector.inject(ProxyInjector.java:95) ... 43 more Not sure why. I've done this interface: public interface IProxy { public void preInitializationEvent(FMLPreInitializationEvent event); public void initializationEvent(FMLInitializationEvent event); public void postInitializationEvent(FMLPostInitializationEvent event); } @Mod(modid = ExtraCraft.MOD_ID, name = ExtraCraft.NAME, version = ExtraCraft.VERSION) @Mod.EventBusSubscriber(modid = ExtraCraft.MOD_ID) public class ExtraCraft implements IProxy { public static final String MOD_ID = "extracraft"; public static final String NAME = "ExtraCraft Mod"; public static final String VERSION = "0.1.0.0"; public static Configuration config; static Logger logger; @SidedProxy(clientSide = "net.enderlook.extracraft.proxy.ClientProxy", serverSide = "net.enderlook.extracraft.proxy.ServerProxy") @Mod.Instance private static ExtraCraft instance; @Mod.EventHandler public void preInitializationEvent(FMLPreInitializationEvent event) { logger = event.getModLog(); File directory = event.getModConfigurationDirectory(); config = new Configuration(new File(directory.getPath(), "modtut.cfg")); Config.readConfig(); ModBlocks.init();; } @Mod.EventHandler public void initializationEvent(FMLInitializationEvent event) { ModRecipes.init(); } @Mod.EventHandler public void postInitializationEvent(FMLPostInitializationEvent event) { if (config.hasChanged()) { config.save(); } } public static String appendModID(String value) { return MOD_ID + ":" + value; } /*public void registerRenderers() {}*/ } @Mod.EventBusSubscriber(modid = ExtraCraft.MOD_ID, value = Side.CLIENT) public class ClientProxy implements IProxy { @Override public void preInitializationEvent(FMLPreInitializationEvent event) {} @Override public void initializationEvent(FMLInitializationEvent event) {} @Override public void postInitializationEvent(FMLPostInitializationEvent event) {} @SubscribeEvent public static void registerModels(ModelRegistryEvent event) { ModItems.initializeItemsModels(); ModBlocks.initializeBlockModels(); } /*public void registerRenderers() {}*/ } @Mod.EventBusSubscriber(modid = ExtraCraft.MOD_ID, value = Side.SERVER) public class ServerProxy implements IProxy { @Override public void preInitializationEvent(FMLPreInitializationEvent event) {} @Override public void initializationEvent(FMLInitializationEvent event) {} @Override public void postInitializationEvent(FMLPostInitializationEvent event) {} }
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.