Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Leaderboard

Popular Content

Showing content with the highest reputation since 07/26/20 in all areas

  1. Don't tell ppl "do your research before posting here" as the README.txt file that comes with the MDK of Forge 1.13.2 25.0.9 and 25.0.10 says to use setupDecomWorkspace its obvious that the README.txt file was not updated but you don't have to be a dick.
    4 points
  2. The Forge Git repository only contains patches to the decompiled Minecraft source code. In very simplified terms this means "remove this line from this file" or "add this code here". It does not contain the decompiled game source code. When the Forge installer is built, these patch files are converted to binary patches to the compiled code, these binary patch files are then shipped with the installer. As such the installer again does not contain any Minecraft code. When you then run the installer it takes the vanilla Minecraft jar (or downloads it from Mojang's servers if you don't have i
    3 points
  3. I got into minecraft modding recently and was surprised by how hard it is to find useful up-to-date information. Because of that, I decided to document my learning journey and write a book about Minecraft modding for beginners. It applies to Minecraft 1.16.1 and the latest version of forge. Keep in mind it is still a work in progress. More chapters will be added in the coming days. Suggestions and questions also are welcomed. Link: https://thebookofmodding.ml/
    3 points
  4. There may be a primer for 1.15 -> 1.16.1; however, in the current state of 1.16.2 onwards and with the release of 1.16.4 coming soon, I doubt you will be able to find one. Not many people understand the new system of world generation through data driven systems, so a primer will probably not be out for a while. However, since I'm not a fan of leaving any post unanswered, I'll try and take a basic stab at it. - Blocks have been abstracted even more (AbstractBlock). You'll find that the properties have been turned into functions of some kind to allow for even fewer blocks. For ex
    3 points
  5. Currently Supported Versions: Latest: 1.17.X LTS: 1.16.X LTS(Grace Period): 1.15.X User Support FAQ Modder Support FAQ and Common Issues We do not currently provide support or updates for any other versions except in cases of severe security issues. On LTS's: Forge's support for Minecraft versions will try to follow a predictable cycle, assuming Mojang also follows a predictable cycle. We will always actively target the latest Minecraft version as ever, however we will also support the most recent non-latest version as an "LTS" version. An LTS version d
    3 points
  6. Forge Version: 34.1.0 Minecraft Version: 1.16.3 Downloads: Changelog: (Direct) Installer: (AdFocus) (Direct) MDK: (AdFocus) (Direct) Intro: Hello everyone, it's finally that time. A recommended 1.16 build is here. We had to wait longer then I wanted to because there were a lot of problems with the initial 1.16 release from Mojang, enough that it was obvious that a .1/.2 was needed. So we waited for Mojang to stabilize the 1.16 branch, out came .1, .2, and .3. Each one same with its own surprises, the main one we have to mention is 1.16.2's major re-write to b
    3 points
  7. No. Stop. writeToNbt and readFromNbt are for saving to disk. Server-side. If you want to sync stuff to the client (assuming you want to use the vanilla mechanic, which uses NBT), you need to override a couple of methods (warning, this is a giant mess): getUpdateTag - Returns the data that should be sent to the client on initial chunk load (i.e. when it gets into render distance, etc.). Call super here and put whatever data you need to have available on the client in the NBTTagCompound returned from super. Then return it. handleUpdateTag - Called on the client with whatever tag was
    3 points
  8. What is this? This is a collection of common issues and recommendations for the Modder Support subforum. Instead of repeating these things over and over again, a link to this thread can be used instead. This post will be updated as needed. Suggestions either via PM to me or in a separate thread to keep this topic clean.
    3 points
  9. Problematic Code Please use the registry events to register your blocks, items and other registry entries. Use ModelLoader.setCustomModelResourceLocation in ModelRegistryEvent to register your item models. Do not use the ItemModelMesher. Do not use methods that are deprecated in Forge or vanilla Minecraft. Usually there will be an explanatory method next to the method explaining what to use instead. There is an exception for methods in the Block class, these may be overridden. Instead of calling them, use the one in IBlockState resp. it's supertypes.
    3 points
  10. From what I can tell there is over 2 megabytes of advancement data being sent to the client. So far Forge only splits overly large recipe and tag packets, it seems the advancement packet needs to be added to this list as well. I will make a pull request to add it.
    2 points
  11. It looks like this may be an issue with Waila, since it is the last thing in the log mentioning networking ("syncing config"). Check with the Waila authors.
    2 points
  12. They are the same function. isRemote is MCP mappings, isClientSide is Official mappings, which are now the default shipped with the mdk.
    2 points
  13. use RenderTypeLookup#setRenderLayer in your FMLClientSetupEvent
    2 points
  14. I’m trying to install forge’s recommended version for 1.8.9 on windows 10 with Java 64bit latest version but it just absolutely will not open. Anytime I click the installer it just gives me a second icon as a notepad page but will not run the installer, I’ve tried reinstalling Java I’ve tried it all... any solutions or recommendations would be appreciated
    2 points
  15. 1.8 is no longer supported on this forum. Please update to a modern version of Minecraft to receive support.
    2 points
  16. You are still reaching across logical sides. Also, what you claim is impossible. It is literally impossible for the server to know that the client attacked before the client has pressed the mouse button. Unless of course Mojang has invented time travel technology.
    2 points
  17. *sigh* <people who know what they're talking about> have already spoken up and told you what you needed to know. You didn't like what they had to say and now you're just being rude. You had some very insightful responses from people. Bottom line, it really isn't done because it really isn't feasible or worth the time. Minecraft is written in Java. I get that that may not be your favorite language, but if you want to do MC in C#, there are no known projects that will let you do this, so you'll have to do it yourself. You do not have the Java chops to do it yet and since there are no proje
    2 points
  18. 1.12.2 is not supported anymore due to its age, but here's something for you to google: "minecraft launcher installation game directory"
    2 points
  19. You know how when you buy a pair of headphones, they come in a box? You have a box labeled "headphones" right now and you're trying to plug it into your computer, but it doesn't have an audio jack.
    2 points
  20. Vouch! I have worked on a lot of Minecraft and Discord servers over the past few years, but unfortunately I eventually started getting quite bored of Minecraft, I then discovered Verade's server which caught my eye, his ideas are interesting and have been helping him out with it since - working with him has been amazing, Verade is a good guy who is extremely dedicated to his server and always welcomes suggestions. He has also helped me gain a lot of crucial experience with moderation and planning.
    2 points
  21. Expanding on this: If you intend for your capability to ever be used by other mods (i.e. you're making it part of your mod's API) then using an interface is very strongly advised, simply as good programming practice (expose the interface, not the implementation). If you only ever intend for your capability to be used for storing data for your own purposes, an interface is very much optional. You might decide it's useful to have one, just for tidiness in your own code, but then again you're free just to use a class.
    2 points
  22. Call the WandererTradesEvent event and add your own custom ITrades to the list in the event.
    2 points
  23. With my system, each capability type that needs to be synced to the client has several sync-related classes: A single update network message (extending UpdateContainerCapabilityMessage) that syncs the capability data for a single slot of a Container. A bulk update network message (extending BulkUpdateContainerCapabilityMessage) that syncs the capability data for all slots of a Container. A "functions" class containing static methods used by both the single and bulk update messages. A container listener class (extending CapabilityContainerListener) that sends the singl
    2 points
  24. About Suppliers...https://www.geeksforgeeks.org/supplier-interface-in-java-with-examples/
    2 points
  25. A jar file in your gradle cache is corrupted. The easiest, but brute-force, method is to just delete .gradle in your user home folder. But that will mean you need to re-import any Gradle project.
    2 points
  26. A PR was just opened that should fix this: https://github.com/MinecraftForge/MinecraftForge/pull/7446 Keep an eye on that, and we'll let you know when the fix is pulled. Thanks to 7
    2 points
  27. You're trying to use the vanilla crafting GUI. The vanilla crafting gui checks to see if the block being accessed is The One And Only Vanilla Crafting Table. Your block is not The One And Only Vanilla Crafting Table. Therefor the use of that gui is invalid and thus closed.
    2 points
  28. Capabilities store "arbitrary data." If your magic system isn't "arbitrary data" then something is very wrong indeed.
    2 points
  29. Take a look at the EntityRenderer#renderName method...to draw an image instead of text you could just use a textured quad
    2 points
  30. If you only copied over the relevant files from a different project, then those source folders won't exist normally. You will need to create them manually and then rerun your gradle commands to tell everything that "hey, I exist now".
    2 points
  31. Yes, you need to subscribe to `GuiScreenEvent.InitGuiEvent.Pr e event)` in order to add widgets, the event itself has a method `addWidget`. Here's an example of how it could be used: @SubscribeEvent public void addCustomButtonToInventory(GuiScreenEvent.InitGuiEvent.Pre event) { if (event.getGui() instanceof InventoryScreen) { event.addWidget(new Button(x, y, width, height, text, button -> { Minecraft.getInstance().displayGuiScreen(new CustomGUI()); })); } } If you aren't familiar with the `button -> {...}` syntax, this Button constructor takes an Button.
    2 points
  32. You're misunderstanding the system. MCP itself is dead, we took the mappings and tweaked the format to make MCPConfig, which provides Forge's SRG->MCP names. mcpbot's purpose was to allow users to contribute to these MCPConfig mappings. Unfortunately, mcpbot is unmaintained, and with the huge amounts of technical debt acquired, plus the maintainer/creator going dark for a while, we're making a new system to replace it. That's what the Mod Mapping Management System is. It replaces mcpbot, which was designed to allow you to contribute to MCPConfig mappings. T
    2 points
  33. (And I assume that "commonnamespace" is not literally "commonnamespace" but something identifiable to your mod.)
    2 points
  34. double x = event.getPlayer().getPosX(); double y = event.getPlayer().getPosX <--------??? (); double z = event.getPlayer().getPosX <--------??? ();
    2 points
  35. First of all, the name you quoted is not something that comes from Mojang. It is Forge's intermediary mapping, called SRG names. It is used to (hopefully) stay the same between versions so that the already found mappings can be ported forward. In Mojang's release classes, fields and methods are just named after single letters, they have a tool that obfuscates the code. Parameter names (like the one you quoted) are like local variables and as such they are all called ☃. Yes, snowman.
    2 points
  36. Try deleting your build folder and %USERPROFILE%/.gradle/caches/forge_gradle/minecraft_user_repo/net/minecraftforge/forge/forge-1.15.2-31.2.0_mapped_snapshot_20200514-1.15.1
    2 points
  37. I'm not so sure about this either but when I last check the version with forge bot in discord it is 20200723-1.16.1
    2 points
  38. If blender is too hard for you, you may use Blockbench.
    2 points
  39. About Suppliers: https://thejavacult.com/supplier-interface-java-util-function/
    2 points
  40. Here, this may help you if you're familiar with 1.12, as a LOT of stuff has changed since then. https://gist.github.com/williewillus/353c872bcf1a6ace9921189f6100d09a
    2 points
  41. You put a `@ObjectHolder` annotation on `ItemInit.example_item` without specifying a modid in either the annotation on the field or on the class (through @Mod or @ObjectHolder). See the documentation on @ObjectHolder for its rules and examples. (ignore the 1.14.x version, it is the same up to 1.16.+)
    2 points
  42. You need to use the share tag (getShareTag, readShareTag).
    2 points
  43. My block class look like this: package ... import net.minecraft.block.Block; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraftforge.common.ToolType; public class MetalBlock extends Block { public MetalBlock() { super(Block.Properties .create(Material.IRON) .sound(SoundType.METAL) .hardnessAndResistance(5.0f, 6.0f) .harvestLevel(1) .harvestTool(ToolType.PICKAXE) .setRequiresTool() //or func_235861_h_() ); } } an
    2 points
  44. Those tutorials are bad then. Unfortunately most modding tutorials are written by amateurs, who don't even come here to ask for feedback before posting it as just "the way to do it" on Youtube, etc. Registration must happen exactly when Forge tells you. Forge does so by firing the registry event. If you use a static initializer you completely bypass this system. This prevents Forge from doing improvements in the future, such as reloading mods at runtime or even disabling/enabling them. Yes, it's fine now. However if you do write a tutorial I would recommend y
    2 points
  45. Forge Version: 31.2.0 Minecraft Version: 1.15.2 Downloads: Changelog: (Direct) Installer: (AdFocus) (Direct) MDK: (AdFocus) (Direct) Intro: Here we go again for 1.15.2, this has a ton of bug fixes, developer improvements, as well as preliminary support for Java 13+ so we'll see how that goes. Changelog: New: Added hook to allow customized overlays when swimming in custom fluids. Added support for suppliers in FoodItem, allow easier modder extension. Added model data to BlockModelRenderer Added system for global loot functions, allowing m
    2 points
  46. Finally. Give me a couple hours and I’ll have pushed my changes to ExampleMod and my tutorials that make all registration use DeferredRegisty.
    2 points
  47. Some recent version seems to have changed the default way IntelliJ compiles Gradle project. It used to be that it still used the IntelliJ build system, which puts resources and classes in one folder. Now "Delegate to gradle" seems to be the default, and gradle puts resources and classes in two separate folders. Make sure to set IntelliJ to not delegate to Gradle (https://www.jetbrains.com/help/idea/work-with-gradle-projects.html#delegate_build_actions).
    2 points


  • Newsletter

    Want to keep up to date with all our latest news and information?
    Sign Up
×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.