Skip to content

Instantly share code, notes, and snippets.

@FinnT730
Last active July 15, 2020 20:47
Show Gist options
  • Save FinnT730/6efae25c393f30b456bacea50fe9bb9f to your computer and use it in GitHub Desktop.
Save FinnT730/6efae25c393f30b456bacea50fe9bb9f to your computer and use it in GitHub Desktop.

Fap 2020

Link to the Twitch Vod: https://www.twitch.tv/videos/656387778
  • LTS

    • Would forge consider a rolling style LTS? Say supporting one extra LTS version for critical bugs/security fixes only (no new features, no discord/forums support for users) while servers are in the process of updating to a fully supported version?

      • We nominated a version, and that is 1.14. And since 1.16 will be released soon, 1.15 will be out of support. The LTS version will be there for at least 2 Minecraft versions.
      • Seeing how things didn’t turn out as we expected with using 1.14 as LTS, we may mulligan this first iteration and name 1.15 the next LTS. the LTS will never be the latest Forge version.
    • Regarding LTS, if one wanted to support only one major MC version, which one is it recommended to support - LTS, or latest? Is it not determined (yet?)?

      • See previous
    • Given how MC modding actually seems to work in reality (RE: 1.7.10, 1.12.2), is there thought into whether a longer LTS time might be better?

    • What current plans/thoughts are there in regards to supporting custom dimensions in 1.16, now that MC has neutered the dimension class(s)?

      • See previous
  • MCPConfig

    • Status on the new mapping frontend? Did it die?

      • How will the new mappings project affect modders and people who contribute mappings? If it's dead, what can we expect to see differently from MCPConfig in the coming months/years?

        • New MCP mapping (MMMS, Mod Mapping Management System) is still alive. It is going fine, nothing to report as of right now.
    • Is it possible to reasonably fix those annoying edge cases where MCP can't name things? Like blit and its parameters, or lambda parameters.

      • Parameter naming will be difficult. Lambdas can already be renamed, but some of them are not getting a Unique ID number. It is being worked on.
    • Will there be a possibility to rename variables in a method for better readability. (For instance, world gen and similar stuff where it's just d0 to d20 and you waste hours just to name & understand them)

      • No, it is a lot to get working. The mappings between versions would be different, so the local variables could be gone when even 1 line has been changed.
    • There seems to be limits with how new an MCP mapping can be for a Minecraft version. Is there a way to bypass the limit and use more modern MCP mappings with Forgegradle versions that drop support for them or not?

      • It is a technicality, there is 1.15.1 but not for the 1.15.2 version. The people that are working on the McpBot don't have a lot of time on their hands. Between 1.15.1 and 1.15.2 there is not a lot different.
    • What is the update on the official mappings from Mojang? Is it still reference only?

      • Sadly, they were passed by lawyers but were not given the correct licensing for our use cases. So we can not use them. Don't read them if you are working on mappings, since you will take inspiration from it. And then the mappings will be messed up.
  • Mixins / Java agent

    • Not wanting to use a mixin/trait system for Forge's patches is understandable, as it makes viewing the source harder and has its own issues, but Forge's current source file patch system is debatably showing its flaws and age. As Mojang keeps its pace of updating more frequently, is there a risk that the patches are going to become a bigger burden? If so, are there any plans on improving this? Perhaps using JavaParser and/or Javassist to read, edit and patch dynamically?

      • We are going to keep using patches. If Mixins are going to be added to Forge, we might add some mixins to it. This might make it harder to understand what something does.
        If ForgeFlower ever gets to the point to decompile it good enough, we might not even need source patches anymore.
    • Mixin support? There are situations where a hook is too niche to be added to forge, but many people feel the JS ASM is clunky and error prone.

      • Cpw and Mumfry have been working on it for the past year, and it can be added, it is just a lib that needs to be added.
        The repo is open-source, you can make a PR to make it better. You are welcome to help out.

      • Adding examples and common Use Cases into the repo will greatly help increase the usability of the JS ASM system

    • It's been stated many times that Mumfrey can merge mixins into FML/Forge when they believe it is ready. Has anybody mentioned any kind of progress update on this?

  • Fabric / Yarn

    • Would forge ever consider switching to an open mapping set like yarn? Some people believe MCP names have had quality issues/low contribution rates and feel that they're legally encumbered.

      • We are going to get a Mapping System, known as the MMMS (Mod Mapping Management System). This can have Fabric in as well. It could export to other formats as well. The MMMS is going to replace the McpBot.
  • Mojang?? (Maybe remove it?)

    • Mojang appears to be maintaining its increased pace. What is forge doing to handle this? Should there be at least intermittent experimental/incremental updating to snapshots so changes can at least be scouted out? Right now many people are relying on fabric's live-updates channel to get news on technical changes in the game as they happen each week as they feel it's better to know what's coming rather than get all the changes dumped on you once the full release happens.

      • We don't know, we are not Mojang. We don't really know what they are going to do with future updates.
  • Docs

    • On the note of Forges RTD, has there been a list compiled of systems that should be documented or is it just based around "whatever system people feel to pr"?

      • If the thing you are making is not in the docs, BUT it is in the vanilla code, there is no need to create a Doc for everything. If you want a better doc, it is open on Github. Don't put copy-paste code, and make things clear. It is not a tutorial, it is a doc. It should be in English, and not trolling.
    • Current official Forge docs are almost always outdated, which is not helpful for beginners or professionals. Does the Forge team plan to rewrite documentation or to add links to McJty tutorials in the docs?

    • Has any thought gone into the possibility of requiring new feature PRs to include a documentation PR into the documentation repository?

      • That is a hard [HELL NO]{.underline}. Coders don't document things, code should be self explanatory.

      • Forcing coders to document their PRs would most likely reduce the number of PRs made, causing even more issues.

      • People can review it as well and if it looks good note their approval

  • Forge updating

    • With what seems like the ramping speed of Mojang updates, does the forge team foresee any changes that might need to be done to facilitate a more efficient and easy porting process for forge and its subsystems?

      • See previous
    • Forge seems to be accumulating problems trying to "keep up" with minecraft versions (e.g. IShearable or DeferredWorkQueue deprecated with no alternatives, HarvestDropsEvent alternatives took many months to arrive, there's still no config gui, looking at 1.16 dimension stuff may fall into this list). Is forge aware of this / thinks it's an issue? Are there things the community (or aspiring forge contributors) should do to help?

      • These classes were separate issues on Forge's end through different instances of Human Error
    • Will forge consider making alpha releases for release candidates in the future where features are known not to change, only bug fixes?

      • See previous
  • Tutorials

    • Any plans to make official tutorials for forge?

      • Any volunteers?
  • Custom Launcher

    • Will Forge be making its own launcher?

      • No, but cpw has some hacks up his sleeve that are independent from Forge
  • Custom things

    • If some people started an attempt on unofficially supporting 1.12.2 again, would they be able to use the existing MCP mappings and Forgegradle environment, or would they need to work from scratch?

      • As long as you stay within the terms of the license and don't slap Forge branding on it, feel free
  • Policy / strategy changes

    • Has there been any changes in terms of policy/strategy towards forge development since fap19?

      • Just trying to improve things
  • Changes

    • Will there be a more mod friendly alternative to registry replacement in forge?

      • What could be more mod friendly? If you have an idea, please tell us
    • What are the thoughts on the current system of registry sorting? (blocks -\ items -\ everything else in alphabetical order) Would a more advanced / dependency based system be considered or what are the reasons for keeping the current system?

      • This is not changing, you should be using suppliers
    • Is there a definitive list of features forge should/would like to have but nobody has gotten around to submitting a PR for?

      • Listen around the Discord and check out the submissions subforum
    • Would the Forge team consider providing some kind of official Kotlin support?

      • No, there are already community-created solutions, forge maintained solutions (such as scala support) cause more issues than good.
    • How are coremods going to work when the nashorn javascript engine is removed from the jdk?

      • It is known that Nashorn is getting removed. We have at least a year to work on this problem. As long as Minecraft is targeting Java 8, Forge is too. The solution technically already exists, just some features are wanted first.
    • How much effort will it be for mods to update from 1.15 to 1.16? What are the main challenges?

      • The Forge team is not sure yet. It does not look bad, they will know more when Minecraft 1.16 is released. If your mod does not touch the tree, world and dimensions, it should be easy to update.
  • Github / PR

    • Speaking of features, there seems to be a consensus in the community related to the fact that PRs to Forge need a long time to get reviewed. What is the stance of Forge on the topic? Is there something that should/could be done on the community side to streamline the process more, if so is needed? On the other hand, is the community feeling wrong and stuff gets done between the Forge team?

      • Previously discussed / More people are needed in the triage team. The more people the forge team has, the faster it can get done.
    • On a follow up note to that, people sometimes feel like there is often a lack of feedback on PRs.There have been quite a few times where changes Lex wanted made are told directly to his triage team, and then the PR is unassigned. Would it be possible for those requested changes to be more transparent? (Whether it is Lex mentioning them in the PR himself, or someone on the triage team making a comment on the PR to let the author know what things they need to change after Lex tells them what he wants done)

      • Previously discussed, feel free to help by reviewing PRs
    • There have now been multiple cases where PR's have been kind of lost due to the author no longer working on them and no one else can pick them because the requests for changes aren't discussed in public / not linked. Is there anything that can be done to address that?

      • You are free to pick up abandoned PRs, if the PR is open they have signed the CLR so Forge owns the code
    • Many PRs and issues on Forge GH go stale with no feedback from the team beyond labels. What should these people do to prevent this? Is a GH ping to a maintainer appropriate when conversation is sufficiently dead?

      • See previous
    • What is the state/retrospective of omnibus PRs? Can things like tag suggestions now be done as individual PRs?

      • We'll see, also tags aren't allowed because of vanilla client/server incompatibilities.
  • Data fix Upper

    • What is the opinion on the DFU?

      • It's not feasible for modders
  • ForgeGradle

    • What is the state of ForgeGradle? Is there anything concrete in fixing source attachment issues or pom.xml dependency pollution?

      • Further research required into pom.xml
    • Any chance that we will get something similar to jar embedding like in the past?

      • cpw (the library he chose to use specifically) fucked it, he's working on it.
    • Many people feel ForgeGradle is still not robust enough, especially when downloading the assets and libraries on bad internet connections.. Are there any plans to continue to update ForgeGradle for more recent Gradle versions?

      • There are things already in progress and on the way
  • License stuff

    • Is ForgeSPI (the Coremods repo as well) LGPL licensed, since the repo is missing a LICENSE file - but the Maven metadata does specify LGPL

      • This was an oversight and should be fixed shortly, everything Forge is LGPL
  • Configs / TOML stuff

    • Are there any thoughts on moving synced server configs to the normal config folder in 1.16+ and possibly creating an additional Type.WORLD instead to cover the current case?

      • No
    • Is there a reason why the TOML doesn't have a required side value for the mod itself similar to how the @Mod worked in the past?

      • It shouldn't need it, and the warning in multiplayer list will be redesigned to better indicate incompatibilities due to possibly server side mods
    • Will supporting other config formats other than toml be considered? NightConfig itself has support for others, but forge only includes the binaries for toml.

      • No, the point is to standardize, mods can add their own if they want to but it is not supported
  • Server Backend

    • Have you ever considered adding the CDN (e.g. Cloudflare ) to the files page(<https://files.minecraftforge.net/)?

      • It has been considered, it would cost an arm and a leg, plus it isn't needed
  • Optifine / Shaders

    • Does the Forge team think that an open- or visible-source version of Optifine could be community developed on top of Forge? If so, would it be possible to do that without having to resort to bytecode manipulation, possibly with a discussion with the team on how to approach certain changes?

      • No, but hooks for shader mods, YES PLEASE (As always, Make a PR)
  • API

    • Is there any current reason for the split between net.minecraftforge and net.minecraftforge.fml? There is a bunch of stuff in FML that seems like it would belong in the main minecraftforge package (RegistryObject, IEntityAdditionalSpawnData, networking hooks) for example. Also, I'm curious what the distinction between net.minecraftforge and net.minecraftforge.common is, because they both seem to contain things that are shared between the client and server.

      • Mostly organization
    • Would Forge be more open to making a more clear demarcation between internal and external APIs? Something like making .api and .impl subpackages, for example. Some classes like GameData have comments at the top saying that they are internal, but they're still in the same place as external API meaning that some mods like Quark end up using them anyways. Access modifiers can also be misleading because things need to be made public to be accessed from patches, even if they are internal.

      • It's not easy to do, read the code and javadocs

Thanks to anyone that asked the questions, and that were at the stream. ~ FinnT730

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment