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

Leaderboard

Popular Content

Showing content with the highest reputation since 04/18/20 in Posts

  1. Forge for 1.16.1 The first Forge build for 1.16.1 is now live thanks to the hard work of: covers, illy, jd, garrett, giga, and the rest of the forge crew. With their help we were also able to release the updates to MCPConfig for 1.16 and 1.16.1 the same day that vanilla did. The Nether Update has brought a lot of changes to many systems, and as with any update there are likely to be bugs. We are still evaluating and working on some of the systems like dimensions and trees to come up with the best system to allow for modders to integrate with vanilla’s new dimension system. We are also expect
    9 points
  2. Update Regarding LTS System: Please read The Big Forge Update Earlier this year, 1.13 was announced and the snapshots started coming out, the update was relatively small, but enough to be a hurdle for mod developers. This combined with 1.12 stabilizing, and a few fundamental Java changes that broke modding in general, made the Forge team decide to use this opportunity and work on cleaning the years of technical debt that Forge had accrued. During this time, it was discovered that a lot of things needed updating. In fact, well, everything did. And so, it was done, a
    7 points
  3. 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.
    6 points
  4. 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/
    5 points
  5. Thanks for the amazing work, it was such a fast release!
    4 points
  6. 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.
    4 points
  7. 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
  8. 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
  9. and because you use MCreator you got this far and are now bitching because you can't get something to work and you feel we should just do the work for you when you haven't even put in the effort to learn Java. There is a reason we dislike MCreator and you are only reinforcing that opinion. Learn Java.
    3 points
  10. 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
    3 points
  11. I know this topic is a bit old, but I just had the same issue and a Google search points here. If your packet is working correctly, and its just the warning in the log, you've likely made the same mistake as me. Inside the "messageConsumer" you provided when registering your packet, you need to set the packet handled flag to true. "context.get().setPacketHandled(true);" If it isn't set to true, NetworkHooks.onCustomPayload will return false, and ClientPlayNetHandler.handleCustomPayload will post the warning
    3 points
  12. 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.
    3 points
  13. 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
  14. General issues Do not use the "export" or "create jar file" functionalities of your IDE or other means to create your final mod file. You must use the Gradle build task. See the documentation for more info. When creating a Git repository for your mod, the repository root should be where your build.gradle file is. The MDK ships with a default .gitignore file so that only the necessary files will be added to version control.
    3 points
  15. 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
  16. So I just recently wiped my hard drive and I wanted to re-install forge to run wynntils on the wynncraft server but everytime I try to install it it always gives this error: https://imgur.com/CswUiZi I've already tried to restart my pc and disabling the firewall, though it seems other versions (1.16.4) work so I don't know what I'm doing wrong. I did play once on the 1.12.2 version and Java should be the latest version since I just downloaded it off of their site (windows offline 64bit one) so I don't know what I'm doing wrong. Here's the link to the log: https://pastebin.com/8cvJFVP
    2 points
  17. 1.12 is no longer supported on this forum. Please update to a modern version of Minecraft to receive support.
    2 points
  18. 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
  19. 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
  20. Your answer ("please learn basic Java programming before making a mod.") was of no help at all either way. This question wasn't even about basic Java--the RegistryObject class and all of its methods are part of Minecraft Forge, and so it is completely reasonable not to know a specific function from it. Moomallowz, I appreciate your attitude and I hope your mod is going well! You are not a dunce, those are understandable and clear questions, and you are working to improve.
    2 points
  21. Call the WandererTradesEvent event and add your own custom ITrades to the list in the event.
    2 points
  22. 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
  23. About Suppliers...https://www.geeksforgeeks.org/supplier-interface-in-java-with-examples/
    2 points
  24. 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
  25. TIL DataParameter's are DataManagers.... Seriously, this is just a giant thread of you messing up basic java systems, not listening to people who are trying to help you, and having no idea what you're doing...
    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. GOSH MAYBE THERE'S A METHOD CALLED "getPrivateValue" IN THE CLASS. HAVE YOU TRIED READING THE AVAILABLE METHODS?
    2 points
  28. Alright, occasionally I get bored and I do one of these posts. I looked at their latest (as of the time of this post) video: https://youtu.be/F79DNgi5d_o. Here is what I found: [0:40] "Call this calls ModSpawnEggItem" - completely irrelevant how you call this class. [1:00] "Click here, to add constructor matching super" - why? How is this relevant to modding? This is basic Java knowledge. Either you explain what you do here (which means you need to explain what constructors are and what inheritance is) or you assume this knowledge, which means you don't need to talk a
    2 points
  29. 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
  30. Capabilities store "arbitrary data." If your magic system isn't "arbitrary data" then something is very wrong indeed.
    2 points
  31. "Sometimes solving the issue is more important than what originated it." Jesus Christ! Do you have any basic programming knowledge?
    2 points
  32. Bear in mind that more players use metric systems than imperial (according to minecraft server statistics, and the fact that there are few countries which still use the imperial system). It is far easier for users to understand that half a bucket is 500mb, than it is for them to see 648 "atoms" (If that is the approach, I would prefer to use something like "voxellites" which has no real-world bearing than "atoms" which could cause huge confusion for users of chemical mods). And to the next argument that you would just display it as "3 1/2 buckets" or 3 1/1296 buckets", that is hugely
    2 points
  33. You use @CapabilityInject to inject the other mod's capability. You can put this annotation on a method too (see the javadocs) and that method will then only be called if the other mod is present. In that method you can then enable your mod's compatibility features. If you put this method in a separate class that class will never load unless the other mod is present.
    2 points
  34. With the migration the WYSIWYG editor no longer has a button for in-line code (teletype). Several other buttons may have also been lost, but TT was the only one I used regularly. Example (link preview doesn't display it, but LootModifierManager is formatted as inline code):
    2 points
  35. You're not a modder, you're someone who used a cookie-cutter mod builder who now has an ego as a result. Learn Java.
    2 points
  36. Use Entity#getEntityId and World#getEntityByID instead of UUIDs for syncing.
    2 points
  37. Howdy I think capability is great for items, entities, etc where 1) you're attaching the same general capability to a variety of different object types or a variety of different capabilities that you're adding to multiple objects ("composition" instead of inheritance/interfaces); or 2) you want vanilla or other mods to be able to interact with your objects in a general way; or 3) you want to attach information to vanilla objects For example - the capability to store items CapabilityItemHandler.ITEM_HANDLER_CAPABILITY is very useful because other mods and
    2 points
  38. The method is called Minecraft#getInstance.
    2 points
  39. Ah sorry! I somehow forgot to push to remote for quite a while. Anyways, here is the blockstate file. (Note that by item_pipe I meant the model of the pipe that transfers item, as opposed to the item model of a pipe) In addition, SixWayBlock can handles almost everything about the blockstate and collision boxes of a block that can connect to 6 directions (i.e. pipes). Check out the vanilla chorus plant for usage.
    2 points
  40. "Please do your research before posting here." is rude. The OP's question in itself is an act of research. "Please do your research before posting here" is not a fact. It's an imperative. The OP comes here asking for help and he is being told to "do your research." Get over yourselves. If you don't want to be helpful then what are you doing here besides berating people? Or is this forum only for the "elite"?
    2 points
  41. SlotItemHandler#isItemValid already calls IItemHandler#isItemValid. No need to duplicate the logic and no need for a custom slot class. You can just put the logic in IItemHandler and the slot will respect it.
    2 points
  42. What is the best method for overriding a vanilla blocks class? Is there a way to modify a vanilla class to add or change functionality?
    2 points
  43. Few things to add: 1. You might want to check out SpriteUploader. 2. Check out AbstractGui::blit. It is the built-in method of rendering sprites with UV coords. 3. You won't need to check on for the rendering thread if you are rendering in the Screen code (in the appropriate method). On an irrelevant note, almost everything in BufferBuilder as well as AtlasTexture (and a few other mentioned classes) has been deobfuscated on recent MCP mappings. You should consider updating your mappings if you find them obfuscated on your setup.
    2 points
  44. No that is not what you're wanting to do. You just need to use registry replacements. Just register your block, using vanilla's name. And it'll be overriden in the game.
    2 points
  45. There is no reason to use the marker. It does not save you from accessing client only code. Take the following scenario: Class A accesses Minecraft (a client only class). So you mark Class A with @OnlyIn. But now Class A is client only as well, and you have just pushed the problem to a different place. The proper way to access dist-only classes is (imho) @EventBusSubscriber with a Dist parameter. There is DistExecutor, but it's usage requires intricate knowledge of how javac compiles lambdas, how the JDK runtime loads them and it relies on an optimization implementation detail in the byte
    2 points
  46. Its exactly as useful as the normal Java Optional. isPresent replaces the null check if you just want to check if something is present. It also doesn't call the resolve function so that's where the Lazy part comes in. Your examples are also pretty bad. The way you would want to do it is like: cap.map(e -> e.amount() * e.amountMultiplier()).orElse(0) But ya the point is that LazyOptional gives you metadata about if it's present if all you care about is if it exists and delays the actual creation of the object you want until someone actually wants it.
    2 points
  47. My recommendation would be to use World#isRaining in conjunction with Biome#getTemperature (with the biome obtained via World#getBiome). Though, it sounds like you're already doing that; why won't getBiome work for you? Edit: My bad, I was a little too hasty; I've edited my answer.
    2 points
  48. Yes, that's all you need to do. It won't affect any of the game's normal behaviors, aside from what you change (i.e. the stack size). I recommend adding an option in your mod's config to disable this feature if desired by users, but that's up to you. You may also want to use a different event priority for registering your replaced item to make it harder/easier for other mods to override your replacement by default.
    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.