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

Leaderboard

Popular Content

Showing content with the highest reputation since 09/21/20 in Posts

  1. Currently Supported Versions: Latest: 1.17.X LTS: 1.16.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 differs slightly from the latest version, in that any new features you may want to add to it, must target the latest version, only once it has been merged in, can it be backported. (The exception to this is if the feature is non-applicable to the latest version.) The Forge Team will also mostly be focusing on the latest. This is so the community has time to stabilize a bit and gives modpack developers some time to create something special. But still have Forge running full steam ahead. This thread is here as a landing page for the "Currently Supported" Announcement at the top of every forum page
    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 it) and then patches it, locally. As such, no Minecraft code is ever shipped by Forge. When you are making a mod using the MDK a similar thing happens. The MDK will download Minecraft and decompile it on your local machine. The MDK does not contain Minecraft's code, only the instructions for your computer to get to it. This is a very high level overview, there are a lot of intricacies to this process. This is inaccurate and has nothing to do with it.
    3 points
  3. 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 example, the blockstate can control how much light is emitted using a ToIntFunction. Also, for a tool to be required to mine a block, the setRequiresTool parameter must be set. - Block properties no longer have an interface IProperty. It has been relegated to just Property now. - Item properties have also been removed and isolated from the Item class. They are handled within ItemModelProperties and can be registered using the appropriately named methods there. - Rendering methods now take a MatrixStack parameter to correctly orientated it on the screen. If you find any unmapped methods, you will most likely need to stick a MatrixStack variable somewhere within there, nothing else. - Server reload listeners are added via AddReloadListenerEvent. Client reload listeners should still be handled either within your mod constructor or FMLConstructModEvent for better thread-safety. - DeferredWorkQueue is now officially deprecated. You should use the enqueueWork method provided in all parallel dispatch events. - Entities store attributes within GlobalEntityTypeAttributes. If your entity does not have a registered attribute within here, then it will most likely error. For reference, this is not thread-safe. - Models now take in a RenderType to define what layer they will render within. By default, they use a no cull cutout layer. - Every mods.toml must have a license entry. Otherwise, your mod will error and crash. - LazyOptionals have a few changes as defined in 33.0.21. LazyOptionals map to LazyOptionals now using lazyMap. map returns a regular Optional. Note that this Optional will throw an error if the map function somehow results in a null entry. filter also returns an Optional now. Finally, a new method called resolve has been added to convert to an Optional directly. - ExistingFileHelper is now required within tag providers. Existing mod resources can be attached using '--existing-mod <modid>' as of 35.1.3. - Finally, I will mention world generation. Currently, all of world gen has been delegated to a data driven system. This is a mixed point for some users. Currently, forge is working on a more dynamic system to allow all of world generation to be handled within JSON files; however, that is not completely possible yet. Therefore, there are a few workarounds to handle this via BiomeLoadingEvent. Here, you can add configured features and structures to already existing biomes along with some other details I'll let you explore for yourself. - Creating biomes can either be done one of two ways. You can either create one using BiomeMaker for the Biome builder itself in some fashion and register it using the RegistryEvent or you can initialize a dummy biome and create it via JSON. To get your biome to spawn in the world, this is still handled within BiomeManager instead taking a RegistryKey (a concatenation of the registry and the object name). To set it as a spawn biome, that is handled when you build the biome itself. - Features have been changed in an interesting way. Instead of having a Feature with a single Placement, features can now have multiple placements. This means a placement can determine the amount, the height, the spread, etc. The way placements are handled are similar to a stack. The first placement you attach will be the last to execute if you need an example. Therefore, when creating a ConfiguredFeature, things like a count placement should be handled as the last chained method. There are a few helper methods within that makes it easier to generate count placements, although they will most likely remain unmapped until the next mappings push. Cyborgmas pointed out something with registering these entries that non-registered ones causes an issue with the codec, so they should be handled and registered probably within your common setup or at the very earliest after placements have been registered. - If possible, you should try to create all your world generation edits within JSON files to better prepare yourself for when the system comes out of the experimental phase. However, that is currently optional until everything updates. Hopefully I covered the gist of the changes from 1.15 -> 1.16.3. There are definitely many more that I've missed such as background music or the brain system within entities. However, those topics are best explained in greater detail with more specific questions. Same goes for the information I missed within world generation JSONs. Good luck on your updates!
    3 points
  4. 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 biomes. Allowing them to now be data driven. This is a very powerful thing that moves Minecraft to a more flexible state, but it also meant all our old hooks had to be re-designed. Every Minecraft version moves towards a better engine, but unfortunately that means we have to work with the interim steps. So if there are any issues modders face with Biomes/Worlds now being mostly data driven, speak up an expect a few iterations of the tools Forge provides you for these things. But remember, now that we are in a Recommended Build it means Forge will stay stable API wise for the rest of the 1.16 lifecycle. Mod License: There has always been little skirmishes about what license a particular mod is released under. To try and help address that, we have now made it mandatory that mods specify a "license" value in their mods.toml. That is the text file containing metadata about the mod, such as version, name, author, etc. This is a simple text entry, it can be anything the modder wishes as long as it is present. The MDK ships with it filled in for you with "All Rights Reserved" which is the default copyright stance in almost every jurisdiction. I highly encourage modders to take a moment and think about how they want their mod to be used, modified, and distributed. And then pick a license that properly expresses their wishes. If you want a open source license https://choosealicense.com/ can help you pick. However, it is your mod, so whatever license you want is fine. Please do not take this as a push to one style or another. Simple as a reminder to choose something and let your users know. Support: With this being released, it officially triggers our support policies as described in the LTS post. This means that 1.14 is now EOL. It can still be used and developed for. It just means that we no longer provide active support for it. And we encourage all users/modders to update to a more modern version. Changelog: New: New model loading system with improved performance and functionality. Reorganized mod loading to increase loading speeds and better integrate with vanilla threading. New armor knockback resistance hooks Added custom item integration with Piglin trades. Added support for items to have pumpkin-enderman like behavior. Added build system verification tools. Added event for controlling data/asset reloading. Added hook to add modded Raid members. Added a dedicated event for registering commands. Added Mixin to the installer. Added event for entities leaving the world. Added IModBusEvent marker interface to all events that are fired on the ModEventBus vs the main Forge bus. Added mandatory (1.16.2+) license field in mods.toml Added support for modded elytra-like items. Added hook to allow Biomes to specify edges better. Added hook to allow better block control over tool-block interactions. Added hook for manipulating whether a fluid can create a source block. Added an EntitySizeEvent instead of EntityHeightEvent Added user friendly exceptions when config loading fails Added particle culling, which should increase performance by not rendering particles that are not on screen. Added better datagen validation for tags. Added dataprovider for global loot modifiers Added scaffolding movement hook Added support for custom tag types Added BiomeLoadingEvent, that allows for mods to edit biomes. Fixes: Fixed caching issue with mod manifest files. Improves starting times. Fixed vanilla models not correctly deferring to Forge's system. Fixed early load GUI showing when running data generators Fixed block update issues related to reverting with BlockSnapshot Fixed locate command patch. Fixed block drops not working in some cases. Fixed villager trades having non-applicable enchants Fixed tooltip rendering issues Fixed sneaking while swimming Fixed harvest level and harvest tool Fixed screen tooltip not displaying Fixed creative screen arrows Fixed attribute registration on modded entities Fixed block render types not being applied to block items Fixed swimming speed being too slow Fixed break speed event having null position Fixed tag issue when connect to vanilla server Fixed some classes being unsafe in concurrent loading Fixed capability data being null in player clone event Fixed double chests updating issues Fixed language parsing Fixed datagen crashing due to tags Fixed client chat received event not having the sender UUID Fixed loading screen color and text to match new Mojang Studio's colors. Fixed improper handling of baked lighting in forge light pipeline Fixed getQuads not having model data Fixed tooltip render events not having matrixstacks Fixed multi-layer item rendering Fixed stencil support initialization Fixed swap offhand keybinds not working in GUI Fixed null checks missing in ForgeIngameGUI Fixed incorrect keybind names Fixed LivingEquipmentChangeEvent not being posted Fixed canRepair not being true by default Fixed race condition for DeferredRegister with custom registries Fixed client world capabilities not being collected Fixed TagEmptyCondition using client tags and not server Fixed ExtendedButton using narrator text Fixed LivingJumpEvent for players on horses Fixed duplicate mod files from mod file scan causing objects to load twice. Fixed model & blockstate datagen inconsistencies Fixed datapacks being not loaded correctly in the Datapack menu screen Fixed soundloadevent being posted on the wrong bus Fixed chunkdataevents using different data tags Fixed patch for PlayerSetSpawnEvent Fixed custom burnable blocks. Fixed modded overworld biomes not generating Fixed ClimberPathNavigator spinning when mob width is small Fixed SleepingTimeCheckEvent not being fired in initial sleep test Fixed biome generation error Fixed cats not having the AnimalTameEvent fired Fixed rail rotations Fixed errors being hidden by mods not being shutdown Fixed rendertickevent using wrong partial ticks when game is paused Fixed missing outdated notification in the main menu “mod” button Fixed debug world not generating modded blocks Fixed hoes and new 1.16 blocks not having proper harvest levels Fixed dry farmland being destroyed even with crops into it Fixed handling of the ModelRegistryEvent Fixed InvalidModFileException not saying which mod was invalid Fixed the client rejecting the server, because of missing tags. Fixed config iteration order Fixed logging issues with pack.png loading for mod datapacks Fixed DelegatingResourcePack performance Fixed LazyOptional not being clear which operations were actually lazy. Fixed the HighlightEntity Event not being fired Fixed minor bugs with bamboos, enchantments, and conduits Fixed RenderNameplateEvent not having partial ticks Fixed duplicate tag wrappers causing a crash Fixed custom teleporters crashing Fixed zip paths crashes. Fixed modloading crash reports with QOL tweaks Fixed crashed with tile entities with no collision boxes Fixed forge tooltip util. Fixed model to baked model inconsistencies. Fixed json biomes not setting a registry name correctly. Fixed forge GuiUtils not using MatrixStacks Fixed fluid filling sounds Fixed some inner biome fields not being accessible Fixed world rendering potentially causing a crash Fixed CommandEvent’s result not being used Fixed container items being consumed in brewing stands Fixed forge light pipeline causing block offsets twice Fixed ToggleableKeyBinding’s differences with vanilla Fixed issues with custom tag types and optional tags. Fixed some inner biome fields still being immutable. Fixed grass disappearing when forge config alwaysSetupTerrainOffThread was true
    3 points
  5. 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 returned from getUpdateTag. By default this calls readFromNbt, which is a terrible default, but oh well. getUpdatePacket - Called to produce a subsequent update packet. You should return a SPacketUpdateTileEntity here if you need the data on the client to be updated from time to time. In theory you can return a partial update here, but usually it is best to just call getUpdateTag and pass that NBTTagCompound to the packet. The int parameter of the packet constructor can be set to whatever unsigned byte you like best. onDataPacket - Called on the client when the packet produced by getUpdatePacket is received. Usually you just need to call handleUpdateTag with the NBT data from the packet (SPacketUpdateTileEntity::getNbtCompound). getUpdateTag will always be called and it's data sent when the chunk is initially transferred to the client. You cannot stop this. If you need to update the client-side data later (i.e. you need the packet produced by getUpdatePacket to be sent), call World::notifyBlockUpdate on the server. You should care about when you call markDirty. You should not care when writeToNbt and readFromNbt are called. Remember, these are for saving the world to disk. Minecraft will do that when it sees fit. You need to call markDirty after doing the changes (so Minecraft knows to save to disk) and then call notifyBlockUpdate to notify the client of these changes (assuming you are using the syncing mechanism described above). Both happens server-side. That was in the context of "NBT is only used for saving to disk". ItemStacks have the terrible habit of using NBT for runtime storage, which is ugly, cumbersome and inefficient.
    3 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. Do not use ITileEntityProvider or BlockContainer. These classes are legacy vanilla code. To add a TileEntity to your Block, override hasTileEntity and createTileEntity in your Block class. Do not use IInventory. Use the capability API with IItemHandler. Do not reach across logical sides. This will cause subtle and not-so-subtle issues that may occur randomly and very rarely. Read and understand the documentation about sides to understand why this is a bad idea. Do not use the unlocalized names for things other than displaying the name of a block/item. If you want to access the registry name for a registry entry, use IForgeRegistryEntry::getRegistryName. Do not use numerical IDs for registry entries. They can and will change. Use the static references in e.g. the Items class or use textual IDs (e.g. minecraft:stone) if you need dynamic references. Any IForgeRegistryEntry (commonly items and blocks) is singleton-like. That means that there is only once instance of your block class. There is not a new Block instance for every position in the world and there is not a new Item instance for every ItemStack. This means that you cannot store position-related things as instance fields in your block class, etc. You must use a TileEntity resp. the NBT data on ItemStack. Unlocalized names, TileEntity registration names and enum entries added using EnumHelper should contain your ModID to avoid collisions between mods. Note: This also applies to the unlocalized name for entities (set by EntityEntryBuilder::name resp. the entityName parameter of EntityRegistry.registerModEntity). A TileEntity class must have a no-argument constructor. As a general recommendation a TileEntity should not have more than this one constructor, to avoid confusion. An ItemStack variable should never be null and all of vanilla and Forge code expects this to be the case. Use ItemStack.EMPTY instead of null and ItemStack::isEmpty to check for empty stacks. Do not compare against ItemStack.EMPTY. Registry names and asset file names must be completely lowercase. Do not create registry entries (anything implementing IForgeRegistryEntry, like blocks and items) in a static initializer. Use the proper events. Do not access client-only code from common code, use the @SidedProxy system. See the documentation about sides (in particular the section about @SidedProxy) for more information. Do not implement IMessage and IMessageHandler on the same class. It does not make logical sense and leads to confusion and hard to trace bugs. Handle exceptions properly. Do not avoid a game crash at all costs, sometimes it is okay to crash the game. Read this article for more information.
    3 points
  7. I am currently using 1.17.1 - 37.0.33. I built three different Wither Skeleton farms of different designs and could not get a single skeleton to spawn. So I wandered around half a dozen different Nether Fortresses and found not a single mob spawning, with the exception of Blazes but only from spawners. I never saw more that two Blaze spawn at the same time and anecdotally, the spawn rate seemed a bit slow. Mobs spawned in the biomes outside of the fortress' bounding box, but nothing spawned in the fortresses themselves. There were Striders and Magma Cubes in lava below the fortresses, but I am not certain if they spawned there or moved there. I came across a couple of Bastions in my travels and found Piglins and Piglin Brutes where they should be. My first step in troubleshooting was to load the Vanilla 1.17.1 installation and almost immediately had Wither Skeletons falling into the kill chamber of my last farm build. I had Xaero's Minimap and Xaero's World Map mods loaded originally and removed them as I continued troubleshooting. When I loaded my game up with only the Forge 1.17.1-forge-37.0.33 installation, no more Wither Skeletons. So I never tried either of those mods out by themselves loaded with Forge as the problem seemed to be with Forge itself. Finally, according to this post by @Amun_Fortex they are seeing the same problem but also with Guardians. I have not yet bothered with an Ocean Monument in 1.17.1, but will find one and update if I am seeing the same issue. Also, the http://vazkii.us/br101/ link in the Rules and EAQ is broken, returning a 404 error.
    2 points
  8. the commands are: !mcp -c moj <name> -> convert from mcp mappings to mojang mappings !moj -c mcp <name> -> convert from mojang mappings to mcp mappings replace '<name>' in your case with 'getHorizontalIndex'
    2 points
  9. its strength, you can use the forge bot on discord to convert the mapping names (mcp -> moj & moj -> mcp)
    2 points
  10. I've noticed a bug that seems to be preventing Wither Skeletons and Guardians from spawning with minecraft forge installed. I have tried every version of forge for 1.17.1 (37.0.0 to 37.0.27) with no mods installed. I located a nether fortress and state for 30min with each instances and the only mobs that would spawn would be Blazes from the spawner itself, no skeletons or Wither Skeletons would be present at all. I then loaded a vanilla minecraft without forge and went to a nether fortress and within 4 minutes of being at the fortress 8 withers and a few normal skeletons spawned. I then went back to the modded version and double checked with a new world and the same result of nothing spawning happened. I traveled to the Ocean Monument and searched around only to find the bosses and cod would spawn. I've also tried other version of java ranging from jre-8u301x64, openJDK16Ux64 and older versions. I'm unsure as to what could be causing this and I'm up for running some more tests if there is anything I can help with. I'm also using CurseForge for my modded minecraft.
    2 points
  11. Note that I am no expert on mappings, and I think generally it is best to use the same mappings as most other people use to make life easier for everybody. However, with that said, this should work: 1. Add this to your build.gradle to create a local maven repo on your computer: repositories { maven { url "file:///${project.projectDir}/mappings" } } 2. Change back the mappings channel (the mappings channel is hardcoded to use 'official', 'snapshot' and 'stable' so you have to use one of those): mappings channel: 'snapshot', version: 'vemerion-mappings' You can of course change 'vemerion-mappings' to something else but then you have to change it in the mappings repo as well in the next few steps 3. Create the file structure 'mappings/de/oceanlabs/mcp/mcp_snapshot/vemerion-mappings/' in your mod project folder 4. Inside the file structure you just created, create a zip file named 'mcp_snapshot-vemerion-mappings.zip', that should contain the fields.csv and methods.csv files etc 5. Run ./gradlew clean and ./gradlew cleanEclipse 6. Run ./gradlew genEclipseRuns and ./gradlew eclipse 7. If gradle complains about duplicate mappings then everything will probably fail and you have to update your mappings files and redo the process 8. Import the project into Eclipse 9. Your custom mappings should now work Hope this helps! As a last word of caution, I just want to reiterate that IMO it is probably best to stick with the normal MCP or Mojang mappings.
    2 points
  12. Hey guys, after some weeks of getting experienced with Minecraft modding, I want to submit an issue here that occurs when you use the IDE IntelliJ for your mods. I started with a very basic mod to implement my own items. Therefor, I had to learn about modding and first of all, gradle. Since I am no Java newbie, I know how projects were structured and how to handle with IDEs. I've always used IntelliJ. Eclipse is good and has a ton of features but I am still preferring IntelliJ. So here is the problem. There are several articles and forum topics mentioning the setup of workspaces for your mods in IntelliJ. This is also one of the topics in the official Minecraft Forge documentation. The steps to setup such a workspace aren't hard and were done very fast. But when I tried to test my mod, I ran into the first issues. The textures simply didn't load and I couldn't explain why this happens. I checked every file I wrote at least 10 times, I checked the textures, I copied whole repositories from people that offered Minecraft modding tutorials, I even forked famous mods just to see how they handle their item implementation and why my textures weren't working. Nothing worked. I always got the famous purple-black texture ingame and several errors about missing textures and models. Since I realized that not even my localization file was being loaded, my assumption was that the assets folder wasn't loaded at all and when I tested it with some log messages, my assumption was quickly confirmed. Nothing what I did seemed to fix this issue and I was about to give up but after some hours of searching through all the internet pages I've found about that issue or even about little keywords, I finally found a little post about IntelliJ messing around with the assets folder. There is a simple solution. You can put the following code at the end of your build.gradle and everything will work perfectly fine: sourceSets { main { output.resourcesDir = output.classesDir } } No errors, no warnings, all textures instantly loaded, all models loaded, everything was localized. So... why do I post this? There is still something wrong. Why does not a single post mention this code? Why is it marked as deprecated? Why do no popular mods use this code in their build.gradle? Well, most mod creators use Eclipse, that's for sure and Eclipse doesn't have this issue. Lucky for them but what about modders that actually use IntelliJ and don't have this issue? I quickly realized that this code might help with the local testing environment but you can't build your mod with it. It will give you an error. You can only build your mod when you remove it again but the local client instance doesn't work then. Interestingly when I build the mod, the assets are copied just fine and everything works in the real game when you load the mod. However, you can't get working textures in the IDE when you don't put this code in your build.gradle. So what is the solution of this? How do you get IntelliJ to run without problems if you want to test AND build within the same project. The only thing that comes to my mind would be a work around to load an artifact whenever you start your client which copies the assets manually but that sounds too difficult for making a Minecraft mod. I am open for suggestions, thanks for reading. Greetz, Relentless Solution for this problem:
    2 points
  13. 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
  14. 1.8 is no longer supported on this forum. Please update to a modern version of Minecraft to receive support.
    2 points
  15. 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
  16. *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 projects that will allow you to do it, your only choice is to learn to mod MC in Java until you are experienced enough to handle both the Java and C#(and possibly C++) stuff yourself. You do not sound experienced enough in any of those languages to pull it off. I've been around programmers my entire life (I'm almost 50) and experienced programmers...well, you can just tell when they are talking about what they're good at. Maybe I'm wrong(wouldn't be the first time) but my advice to you is to listen to the "elders" of the forum. It sounds like you do not want to do this anyway, so, *shrug* I guess that's that. And please don't take any of this as insult. It's not. It's just truth. Sometimes truth cuts deep. Life is like that.
    2 points
  17. Well, unfortunately, because of <thing you already know>, it isn't possible because <thing you already know.> As such what you want to do would require <doing things you don't want to do>.
    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. Why the fauk does your renderer change what blocks are in the world? That's not the job of a renderer.
    2 points
  20. GatherDataEvent only fires during data runs, not during client or server runs
    2 points
  21. Do not create a new LazyOptional every time. This defeats the entire purpose of LazyOptional.
    2 points
  22. 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
  23. 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/8cvJFVPN
    2 points
  24. 1.12 is no longer supported on this forum. Please update to a modern version of Minecraft to receive support.
    2 points
  25. 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
  26. About Suppliers...https://www.geeksforgeeks.org/supplier-interface-in-java-with-examples/
    2 points
  27. 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
  28. 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
  29. 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
  30. GOSH MAYBE THERE'S A METHOD CALLED "getPrivateValue" IN THE CLASS. HAVE YOU TRIED READING THE AVAILABLE METHODS?
    2 points
  31. 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 about this at all. [1:08] "I think it could be public, but we'll just make it protected" - He doesn't even know how Java visibility modifiers work himself. Great teacher for modding a game written in Java! (Side note here, this is just personal preference but god damn it TechnoVision, USE ALT-ENTER! Using the mouse is sooooo sloooooow). [1:49] Why using a Lazy? Instead of a Supplier? You get a Supplier out of the DeferredRegister anyways, no need to convert it to a Lazy. [1:55] He keeps calling "?" in a generic type "a generic". This is not the correct name. This is called a wildcard. [3:24] Him calling that super constructor with null as the type will result in a null key in SpawnEggItem#EGGS. That should be cleaned up. His explanation as to why it "doesn't matter" (it does...) is also not an explanation. He just mumbles a view techno-babble-esque words. [6:23] "This field is in SpawnEggItem and it's this map here" *highlights a local variable in a completely different class*. Yeah right. [7:05] Then he proceeds to type in and explain copy pasta code from vanilla as if it was his own creation. What the hell? [8:19] That is a terrible explanation of casting. [12:23] "We want this to be clear, every single time." In a method that is called once. Why? This is not an explanation. [13:11] "This is like a utility class". No. Not it is not. [13:56] Utterly broken. Why is this in a client-only event subscriber? This will make the mod not work on servers. [14:11] "Right when the entities have been registered" - No. That is not what this event does. This event fires when you should register your entities, not when they have already been registered. This event is also the wrong choice for most of what is done in the initSpawnEggs method. [17:05] Should be using data generators. [18:14] Again, should be using data generators. [18:30] "File > Save all" LOL this is not eclipse. On an overall note: This code is 1:1 the same crap that TurtyWurty showed in his video from a couple of days earlier. Oh but don't be fooled, he did not come up with it either. He copied it from Cadiboo, who I vaguely remember still spending the time (with me partly helping him if I remember correctly) to figure this crap out on the Forge discord and this forum. So. Question answered? That is the problem with TechnoVision, TurtyWurty, HarryTalks and all those "Modding tutorial" people on youtube (McJty specifically excluded!). They are unoriginal, unhelpful, promote bad coding practices and even outright broken code.
    2 points
  32. 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
  33. Capabilities store "arbitrary data." If your magic system isn't "arbitrary data" then something is very wrong indeed.
    2 points
  34. There's a BiMap you need to add your structure to within Structure along with registering it as a feature and structure.
    2 points
  35. Take a look at the EntityRenderer#renderName method...to draw an image instead of text you could just use a textured quad
    2 points
  36. 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
  37. "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
  38. You're rather rude... You could just help people...
    2 points
  39. For anyone who comes across this in the future, running with `--no-daemon` seems to solve it https://github.com/MinecraftForge/ForgeGradle/issues/563
    2 points
  40. IPacket is a vanilla class, do not use it. SimpleChannel no longer requires your packets to implement a certain interface. Instead you need to supply the following things: An encoder (BiConsumer<MSG, PacketBuffer>). This will be called with your packet instance and a PacketBuffer to write the packet data to the byte stream. This used to be toBytes in IMessage. A decoder (Function<PacketBuffer, MSG>). This will be called with the byte stream data and must decode it into an instance of your packet. This used to be done via a reflective constructor call and fromBytes. A handler (BiConsumer<MSG, Supplier<NetworkEvent.Context>>). This will be called to handle your message. This used to be IMessageHandler. Using method references for these makes your packet code very clean: class MyPacket { private final int data; MyPacket(PacketBuffer buf) { this.data = buf.readInt(); } MyPacket(int data) { this.data = data; } void encode(PacketBuffer buf) { buf.writeInt(data); } void handle(Supplier<NetworkEvent.Context> context) { } } channel.registerMessage(0, MyPacket.class, MyPacket::encode, MyPacket::new, MyPacket::handle);
    2 points
  41. Bit of follow up since I understand a bit more now.... To get extra data passed across to the client (like a TE blockpos, for example), Forge 26.0.16 adds an extra PacketBuffer parameter to the NetworkHooks.openGui() calls, and a corresponding parameter to the container factory constructor. Looks like NetworkHooks.openGui() remains the way to go for modded - I guess player.openContainer() is really for vanilla only? Update: player.openContainer() should be fine to use if you're just creating a GUI purely to display some container slots (and don't need direct access to the clientside tile entity), like a chest GUI for example. Typically, you'll have two or more constructors in your container objects - one "factory" constructor which is called by Minecraft client-side when a GUI is opened (and when the container type is registered during init), and one or more constructors of your choosing which create a container with any data you need to initialize them with. Those extra constructors would be called server-side from your INamedContainerProvider implementation, and client-side from your "factory" constructor, having extracted information from the extraData PacketBuffer.
    2 points
  42. 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.
    2 points
  43. 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.
    2 points
  44. 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.
    2 points
  45. Kill your .gradle folder in your home directory and try having ti download again, seems your internet derped and corrupted something. Else you can install gradle manually.
    2 points
  46. There is an installer for 1.6.x versions and above of Forge. USE IT, it will solve 80% of all your problems. Do not use the universal install. Failure to comply with the rules in this EAQ means your thread will be locked. DO NOT ask for help with any version besides the latest MC version. If you are using a modpack, please ask your modpack maker (FTB/Technic/whatever) No two problems are alike. DO NOT post in an existing thread if you have the same problem, make a new one. Support for legacy versions of MC and Forge will not be offered. Instructions in this thread is all you'll get, if not you're on your own. Support for "cracked" / "pirated" launchers will not be offered and you will be banned. Buy the game. Support with mods that edit base files ("drag this into the minecraft jar") will not be offered. Things to do before you post: THIS IS A SUPPORT FORUM FOR FML/FORGE, AND ONLY FML/FORGE. Go to a mod specific forum (whether on this site or another) to ask for help with a certain mod. If you are using MCPC+/Cauldron or any other Bukkit-API server software, do not post here, post in their forums. For help with Sponge, go here. DO NOT ASK FOR HELP WITH FORGE MULTIPART, IT IS NOT A COMPONENT OF FORGE. Go here for FMP help. This is a support forum for players, not for modders needing help with code. Modders go to the Modder Support forum. Search for your issue (the first line of the stack trace is a good start). Do not reply to threads you think are related to your issue. If you think you have found a bug, please retry with the latest forge build available from http://files.minecraftforge.net before posting here. Read the "Common Problems and Solutions" section below. If you need help writing a bug report/support request, go here: http://vazkii.us/br101/ Make sure you have not installed either ModLoader or MCPatcher (use Optifine instead). If the top line of your error log does not contain net.minecraftforge.whatever or cpw.mods.fml.something, the reason is most likely not Forge, it's an issue with the mod you're using. Make sure you have read the installation instructions for the mods you use. Mods often require certain other mods to function or require a specific version of Forge. Below is a list of things which you MUST include in your post. Be sure to include the entire logs/debug.log (logs/fml-{client/server}-latest.log for versions before 2629) found in your .minecraft folder / server root folder. Not including the log in no way helps us to help you and has a small chance of getting you banned. State what research you have already done (You should have done some, this forum is only for well-researched bugs!). Use the spoilers to enclose stack traces and other long information: Do not attach your logs to your post or use file-uploading services like Dropbox. Use Pastebin or Github Gists. In general give as much information as you can. "It does not work", "I get a black Screen", etc. in no way helps us to help you and will only cause you to get in trouble.
    2 points
×
×
  • Create New...

Important Information

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