Jump to content

Recommended Posts

Posted

Forge version: 50.1.0
Minecraft version: 1.20.6

Downloads:

Intro:

Continuing the strong cadence of solid improvements on 1.20.x versions, we focused especially on the developer experience for 1.20.6. We've delivered a new decompiler, unified official MojMap mappings everywhere, cleaned up more patches and worked with devs to make our networking APIs better support multiplatform mods and Vanilla's latest features.

The new decompiler has improved formatting and much better support for newer Java features. This took weeks worth of effort from multiple team members to redo all the patches to support this (albeit, we still did this much faster than the competition), but we believe it was worth it in the end. Additionally, by having the same official MojMap mappings everywhere, mod devs have less required steps to build their mods and troubleshooting crash reports in production is easier.

Setting 1.20.6 aside for a moment, we haven't forgotten about older versions! We continue to actively backport new features and make fixes for older versions where possible - meaning you can adopt some breaking changes incrementally instead of being forced to deal with all of them lumped in with an MC port, and you don't need to chase the latest MC or go out of your way to manually backport things yourself to take advantage of some of the things we're doing on newer versions. More than ever, Forge remains an excellent choice for devs who want to focus on their mods.

New:

  • New decompiler
    • Supports newer Java features and has improved formatting
  • Runtime official mappings
    • Better troubleshooting experience as logs and crash reports now have human-readable names in production
    • No need to reobf your mod as a developer. Mixin refmaps are also unnecessary.
  • New AccessTransformers
    • Much simpler implementation, no longer relies on ANTLR
    • Significant performance improvements
  • Add ModelLayers patch back (#9962)
  • Update SimpleChannel to make StreamCodecs easier (#9959)
    • Rework networking so that RegistryFriendlyByteBuf is useable for modders
    • Simple support for StreamCodec in SimpleChannel
    • Codecify all Forge packets
    • Make simpler builder pattern for SimpleChannel. Will eventually deprecate the old MessageBuilder as it's verbose and poorly written.
  • Implement entity-aware armor model and texture hooks. Closes #9960
  • Remove ICustomPacket and add PayloadChannel. (#9972)
    • New PayloadChannel that uses the vanilla payload Type for packet distinction
    • Implement the minecraft:register/unregister channels using the new PayloadChannel
    • New generic channel builder function allowing people to implement channels however they want.
  • Add GatherComponentsEvent (#9944)

Fixed:

  • Fix custom payloads not being handled on the server in the game state. Closes #9948
  • Fix villagers not opening trade GUIs. Closes #9946
  • Fix MDK by bumping FG and disabling reobf tasks
  • Fix LAN server IPs being duplicated
  • Fix connecting to vanilla servers due to misapplied patch.
  • Fix canApplyAtEnchantingTable null pointer. Closes #9956
  • Bump SecureModules for package info and multi-release jar fixes.
  • Fix RenderTarget stencil patch location. Fixes #9965
  • Fix shields not working correctly. Fixes #9966
  • Filter paths discovered by ServiceProvider in ClasspathLocator. Closes #9899
  • Fix Melons/Pumpkins not growing correctly.
  • Fix potion brewing having arguments reversed. Closes #9970
  • Fix canceling MobSpawnEvent.FinalizeSpawn causing a NPE. Closes #9971
  • Ignore jar files in the mods folder that are not Forge mods. Closes #9968
  • Make RegistryObject.getHolder lazy, should help cases where vanilla registries use holders from other vanilla registries. Closes #9961
  • Fix finalizeSpawn's return value not being used correctly. Closes #9964
  • Fix powered rails not propagating correctly.
  • Fix screen layering and re-add the test. (#9978)
  • Fix RenderHandEvent firing with incorrect hand and item for offhand items. (#9977)
  • Fix NPE in HurtByTargetGoal when mods set targets to null. Closes #7853
  • Fix crash when reloading a world that uses custom placed features. Closes #9979
  • Add File.exists check to ConfigFileTypeHandler. Closes #9976
  • Make OpenContainer and SpawnEntity packets process on main game thread.
  • Move Creative Inventory page count to fix issue with partially transparent tooltips. Closes #9983
  • Fix CustomizeGuiOverlayEvent.DebugText and CustomizeGuiOverlayEvent.Chat not being fired. (#9982)

Removed:

  • Remove deprecated compressLanIPv6Addresses config option (#9949)
    • LAN IPv6 addresses are always compressed these days, so this config option is redundant
  • Remove zombie chance config options (#9950)

 

  • Like 1

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Im trying to build my mod using shade since i use the luaj library however i keep getting this error Reason: Task ':reobfJar' uses this output of task ':shadowJar' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. So i try adding reobfJar.dependsOn shadowJar  Could not get unknown property 'reobfJar' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. my gradle file plugins { id 'eclipse' id 'idea' id 'maven-publish' id 'net.minecraftforge.gradle' version '[6.0,6.2)' id 'com.github.johnrengelman.shadow' version '7.1.2' id 'org.spongepowered.mixin' version '0.7.+' } apply plugin: 'net.minecraftforge.gradle' apply plugin: 'org.spongepowered.mixin' apply plugin: 'com.github.johnrengelman.shadow' version = mod_version group = mod_group_id base { archivesName = mod_id } // Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. java.toolchain.languageVersion = JavaLanguageVersion.of(17) //jarJar.enable() println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" minecraft { mappings channel: mapping_channel, version: mapping_version copyIdeResources = true runs { configureEach { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' arg "-mixin.config=derp.mixin.json" mods { "${mod_id}" { source sourceSets.main } } } client { // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. property 'forge.enabledGameTestNamespaces', mod_id } server { property 'forge.enabledGameTestNamespaces', mod_id args '--nogui' } gameTestServer { property 'forge.enabledGameTestNamespaces', mod_id } data { workingDirectory project.file('run-data') args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') } } } sourceSets.main.resources { srcDir 'src/generated/resources' } repositories { flatDir { dirs './libs' } maven { url = "https://jitpack.io" } } configurations { shade implementation.extendsFrom shade } dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" implementation 'org.luaj:luaj-jse-3.0.2' implementation fg.deobf("com.github.Virtuoel:Pehkui:${pehkui_version}") annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' minecraftLibrary 'luaj:luaj-jse:3.0.2' shade 'luaj:luaj-jse:3.0.2' } // Example for how to get properties into the manifest for reading at runtime. tasks.named('jar', Jar).configure { manifest { attributes([ 'Specification-Title' : mod_id, 'Specification-Vendor' : mod_authors, 'Specification-Version' : '1', // We are version 1 of ourselves 'Implementation-Title' : project.name, 'Implementation-Version' : project.jar.archiveVersion, 'Implementation-Vendor' : mod_authors, 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), "TweakClass" : "org.spongepowered.asm.launch.MixinTweaker", "TweakOrder" : 0, "MixinConfigs" : "derp.mixin.json" ]) } rename 'mixin.refmap.json', 'derp.mixin-refmap.json' } shadowJar { archiveClassifier = '' configurations = [project.configurations.shade] finalizedBy 'reobfShadowJar' } assemble.dependsOn shadowJar reobf { re shadowJar {} } publishing { publications { mavenJava(MavenPublication) { artifact jar } } repositories { maven { url "file://${project.projectDir}/mcmodsrepo" } } }  
    • All versions of Minecraft Forge suddenly black screen even without mods (tried reinstalling original Minecraft, Java, updating drivers doesn't work)
    • When i join minecraft all ok, when i join world all working fine, but when i open indentity menu, i get this The game crashed whilst unexpected error Error: java.lang.NullPointerException: Cannot invoke "top.ribs.scguns.common.Gun$Projectile.getDamage()" because "this.projectile" is null crash report here https://paste.ee/p/0vKaf
  • Topics

×
×
  • Create New...

Important Information

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