Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Choonster

Moderators
  • Joined

  • Last visited

Everything posted by Choonster

  1. Add the individual name parts to your language files, translate each part individually and then combine them into the full name. The argument of StatCollector.translateToLocal is the full translation key to translate, it doesn't have to end in .name .
  2. Currently, you don't. This Pull Request will add a way for mods to use vanilla's new loot system, but it's still a preliminary draft.
  3. The Modder Support section is for seeking help with mod development. The Support section is for seeking help with mod use. Your thread should be moved there soon. The ATLauncher has a button for each pack in the Packs menu to create a server of that pack. Create a server using this button and then either copy the new server's files into your existing server or copy your save to the new server.
  4. You haven't followed diesieben07's instructions: Your class doesn't extend EntityZombie You can't call methods directly in the body of a class You've typed the name of the method you need to call, but you're not actually calling it Do you actually know Java? You can't make a mod until you have a solid understanding of Java. In future, please use Gist or Pastebin to post logs/crash reports (if applicable) and code with syntax highlighting. To get syntax highlighting on Gist, give each file the appropriate extension (.java for Java code). To get syntax highlighting on Pastebin, select the language from the dropdown at the bottom of the page. It's much easier to read code with proper formatting and syntax highlighting.
  5. The root object of the list file can contain three properties: repositoryRoot (string) - The root directory. All mod paths are relative to this. modRef (array of strings) - An array of mod references to load. parentList (optional string) - The path of the parent list, if any. If specified, FML will load this list as well as the current one. This can be chained (e.g. list A inherits from list B, which inherits from list C), but not looped (e.g. list A inherits from list B, which inherits from list A). Each mod reference is a string in the following format: "<group>:<name>:<version>[:<classifier>]" The path of the mod JAR is built from these components in the following format: <repositoryRoot>/<group>/<name>/<version>/<name>-<version>[-<classifier>].jar The square brackets denote an optional part; if no classifier is specified, it won't be used in the path. Any period ( . ) in the group will be replaced with a directory separator.
  6. Better Sprinting needs to updated to work with Forge 1.9-12.16.0.1805-1.9 and newer.
  7. If you're interested in the technical details: The GuiOpenEvent#gui field was previously public, but it was changed to a private field with a public getter method in Forge 1.9-12.16.0.1805-1.9. Since the field is private, it can no longer be accessed directly; the getter method must be used instead.
  8. Use RenderingRegistry#registerEntityRenderingHandler(Class<T>, IRenderFactory<? super T>) in preInit to register your renderer. To implement IRenderFactory , I suggest using an anonymous class (if you're targeting Java 6/7) or a constructor method reference (if you're targeting Java [nobbc][/nobbc]. The deprecated RenderingRegistry#registerEntityRenderingHandler(Class<? extends Entity>, Render<? extends Entity>) overload will probably be removed in a future version of Forge, likely one for 1.9 or 1.9.1.
  9. Thanks for this great adivce but I want to use it in multiplayer and server-side only... Forge mods can be client-only or server-only. If your mod only needs to be installed on one side, set the acceptableRemoteVersions property of your @Mod annotation to "*" (i.e. accept any version, including none). In 1.8+, you can also set either the clientSideOnly or serverSideOnly property to true (but not both) to prevent the mod from loading on the wrong side.
  10. Xaero's Minimap needs to be updated to work with Forge 1.9-12.16.0.1805-1.9 and newer.
  11. ForgeGradle for 1.8.8+ requires at least 2 GB of memory to decompile Minecraft. I believe this is due to Mojang's obfuscation process leaving generics intact instead of stripping them. This tutorial explains how to give ForgeGradle more memory.
  12. Upload your @Mod class, your item registration class and your recipe registration class to Gist or Pastebin with syntax highlighting and link them here. To get syntax highlighting on Gist, give each file the appropriate extension (.java for Java code). To get syntax highlighting on Pastebin, select the language from the dropdown at the bottom of the page.
  13. The issue is with Minecraft itself, not MCP. MCP is only used by Forge for deobfuscation data, i.e. mapping names like aa to World . The code itself is decompiled from the Minecraft JAR, deobfuscated with the MCP data and patched by Forge. ItemAxe will only work for mods when someone submits a PR to Forge with a patch that fixes it (and the PR is accepted) or Mojang changes it in a future version of Minecraft.
  14. Use ISmartItemModel to generate models on demand. I can't help you with it much myself, but it's been discussed before on this site and others. You can also look at Forge's implementation of it in ModelDynBucket .
  15. I'm first registering the recipe in both client and server side and then items/blocks. Don't do that. Items/blocks should be registered in the preInit phase. Recipes should be registered in the init phase.
  16. Create a model that inherits from builtin/generated and set the layerN textures (where N is an integer >= 0). Look at assets/minecraft/models/item/spawn_egg.json to see how vanilla uses two layers for the spawn egg model.
  17. You tried to use a biome ID of 3663, but BiomeGenBase.biomeList (an array of biomes with their ID as the index) is only 256 long. This means the maximum biome ID is 255.
  18. java.util.Optional was added in Java 8. If you're targeting an earlier version of Java (the default set by ForgeGradle is Java 6, the same as Minecraft), you can't use it since it won't be present in that version. You could use com.google.common.base.Optional (from Guava) as an alternative, but my updated bow doesn't actually use Optional at all. nockArrow now returns an ActionResult<ItemStack> like Item#onItemRightClick . You can see the updated code here, but the bows and other projectile launchers are still a WIP.
  19. Always post the crash report when asking for help with a crash.
  20. Override Item#getColorFromItemStack . If your model inherits from builtin/generated , the renderPass argument of this method is the texture index (i.e. the layer0 texture is renderPass 0). If your model inherits from a different model or manually specifies its elements, the renderPass argument is the tintindex property of an element's face (look at assets/minecraft/models/block/grass.json to see how it specifies the tintindex property for the face that uses a greyscale texture).
  21. This is not true. When called on the server side, EntityPlayer#openGUI sends a packet to the player's client that opens the appropriate GuiScreen . Calling it on the client side will open the GuiScreen , but this will be replaced as soon as the packet is received from the server.
  22. Ok, so is better if inside Container#detectAndSendChanges I get the message from the tile (if it is changed) and send it to crafter (checking if is a player) ? Yes, that should work.
  23. Container#crafters is a list of ICrafting objects, it may contain implementations of ICrafting other than EntityPlayerMP . It's not safe to cast to EntityPlayerMP without checking. Every player with the GUI open will have their own Container on the client and server, so Container#crafters will usually contain 0 players on the client and 1 player on the server. Your TileEntity shouldn't interact with your Container directly, it certainly shouldn't be storing an instance of it.
  24. This should probably be done from your override of Container#detectAndSendChanges . Look at how ContainerFurnace uses this to send progress updates for the burn/cook time.
  25. Pull Request. You can see the guidelines for contributing to Forge here. It looks like Lex just made this change himself, so there's no need for a PR now.

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.