Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate forge -> neoforge #139

Merged
merged 5 commits into from
Dec 30, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ subprojects {
dependencies {
minecraft "com.mojang:minecraft:${rootProject.minecraft_version}"
mappings loom.officialMojangMappings()
modLocalRuntime "com.ptsmods:devlogin:${rootProject.devlogin_version}"
// modLocalRuntime "com.ptsmods:devlogin:${rootProject.devlogin_version}"
}
}

Expand All @@ -75,6 +75,7 @@ allprojects {
// See https://docs.gradle.org/current/userguide/declaring_repositories.html
// for more information about repositories.
mavenCentral()
maven { url "https://maven.neoforged.net/releases/" }
maven { url "https://maven.shedaniel.me/" }
maven { url "https://maven.terraformersmc.com/" }
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package net.xolt.freecam.fabric.mixins;
package net.xolt.freecam.mixins;

import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.Camera;
Expand Down
13 changes: 7 additions & 6 deletions common/src/main/resources/freecam-common.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,21 @@
"BlockStateBaseMixin",
"BubbleColumnAmbientSoundHandlerMixin",
"CameraMixin",
"ConnectionMixin",
"LocalPlayerMixin",
"MultiPlayerGameModeMixin",
"ClientPacketListenerMixin",
"ConnectionMixin",
"EntityMixin",
"EntityRenderDispatcherMixin",
"EntityRendererMixin",
"OptionsMixin",
"GameRendererMixin",
"ItemInHandRendererMixin",
"GuiMixin",
"ItemInHandRendererMixin",
"LevelRendererMixin",
"LightTextureMixin",
"LivingEntityMixin",
"MinecraftMixin"
"LocalPlayerMixin",
"MinecraftMixin",
"MultiPlayerGameModeMixin",
"OptionsMixin"
],
"injectors": {
"defaultRequire": 1
Expand Down
1 change: 0 additions & 1 deletion fabric/src/main/resources/freecam-fabric.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
"compatibilityLevel": "JAVA_17",
"minVersion": "0.8",
"client": [
"LevelRendererMixin"
],
"injectors": {
"defaultRequire": 1
Expand Down
1 change: 0 additions & 1 deletion forge/gradle.properties

This file was deleted.

This file was deleted.

12 changes: 6 additions & 6 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ licence=MIT
homepage_url=https://www.curseforge.com/minecraft/mc-mods/free-cam
source_code_url=https://github.com/hashalite/Freecam
issue_tracker_url=https://github.com/hashalite/Freecam/issues
enabled_platforms=fabric,forge
enabled_platforms=fabric,neoforge
build_variants=normal,modrinth

# Check versions on:
# https://discord.architectury.dev
# https://modmuss50.me/fabric.html
# https://files.minecraftforge.net
# https://projects.neoforged.net/neoforged/neoforge
# Forge dependencies use maven's version range spec:
# https://maven.apache.org/enforcer/enforcer-rules/versionRanges.html
minecraft_version=1.20.4
Expand All @@ -26,10 +26,10 @@ fabric_api_version=0.91.2+1.20.4
fabric_loader_req=>=0.12.11
fabric_mc_req=~1.20.4

forge_version=1.20.4-49.0.9
forge_mc_req=[1.20.4,)
forge_loader_req=[49,)
forge_req=[49,)
neoforge_version=20.4.60-beta
neoforge_mc_req=[1.20.4,)
neoforge_loader_req=[1,)
neoforge_req=[20,)

# Other dependencies
# https://maven.terraformersmc.com/releases/com/terraformersmc/modmenu
Expand Down
6 changes: 3 additions & 3 deletions metadata/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@ platforms.each { platform -> variants.each { variant ->
issue_tracker_url: project.issue_tracker_url,
fabric_loader_req: project.fabric_loader_req,
fabric_mc_req: project.fabric_mc_req,
forge_mc_req: project.forge_mc_req,
forge_loader_req: project.forge_loader_req,
forge_req: project.forge_req,
neoforge_mc_req: project.neoforge_mc_req,
neoforge_loader_req: project.neoforge_loader_req,
neoforge_req: project.neoforge_req,
)

def overrides = new TreeMap()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
modLoader = "javafml"
loaderVersion = "${forge_loader_req}"
loaderVersion = "${neoforge_loader_req}"
issueTrackerURL = "${issue_tracker_url}"
license = "${licence}"

Expand All @@ -15,16 +15,22 @@ description = '''
${description}
'''

[[mixins]]
config = "freecam-common.mixins.json"

[[mixins]]
config = "freecam-neoforge.mixins.json"

[[dependencies.${mod_id}]]
modId = "forge"
mandatory = true
versionRange = "${forge_req}"
modId = "neoforge"
versionRange = "${neoforge_req}"
type = "required"
ordering = "NONE"
side = "CLIENT"

[[dependencies.${mod_id}]]
modId = "minecraft"
mandatory = true
versionRange = "${forge_mc_req}"
versionRange = "${neoforge_mc_req}"
type = "required"
ordering = "NONE"
side = "CLIENT"
side = "CLIENT"
39 changes: 12 additions & 27 deletions forge/build.gradle → neoforge/build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import net.fabricmc.loom.task.RemapJarTask
import net.fabricmc.loom.util.aw2at.Aw2At

plugins {
id "com.github.johnrengelman.shadow"
Expand All @@ -10,43 +9,25 @@ def variants = rootProject.build_variants.split(',')

architectury {
platformSetupLoomIde()
forge()
}

loom {
forge {
convertAccessWideners = true
extraAccessWideners.add loom.accessWidenerPath.get().asFile.name

mixinConfig "freecam-common.mixins.json"
mixinConfig "freecam-forge.mixins.json"
}
}

afterEvaluate {
// FIXME: arch-loom only does this for tasks.remapJarTask,
// meaning our variant tasks don't get AccessTransformers.
tasks.withType(RemapJarTask).each {
Aw2At.setup(project, it)
}
Comment on lines -16 to -31
Copy link
Member Author

@MattSturgeon MattSturgeon Dec 28, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Glad all this is gone.

Some of this can be backported. See #141.

neoForge()
}

configurations {
common
shadowCommon // Don't use shadow from the shadow plugin since it *excludes* files.
compileClasspath.extendsFrom common
runtimeClasspath.extendsFrom common
developmentForge.extendsFrom common
developmentNeoForge.extendsFrom common
}

dependencies {
forge "net.minecraftforge:forge:${rootProject.forge_version}"
neoForge "net.neoforged:neoforge:${rootProject.neoforge_version}"

modApi "me.shedaniel.cloth:cloth-config-forge:${rootProject.cloth_version}"
include "me.shedaniel.cloth:cloth-config-forge:${rootProject.cloth_version}"
modApi "me.shedaniel.cloth:cloth-config-neoforge:${rootProject.cloth_version}"
include "me.shedaniel.cloth:cloth-config-neoforge:${rootProject.cloth_version}"

common project(path: ":common", configuration: "namedElements")
shadowCommon project(path: ":common", configuration: "transformProductionForge")
shadowCommon project(path: ":common", configuration: "transformProductionNeoForge")

shadowCommon project(":variant:api")
}
Expand All @@ -62,14 +43,14 @@ variants.each { variant ->
def shadowConfig = configurations.create("${variant}Shadow")

// Add a dependency on metadata
def metadata = dependencies.project(path: ":metadata", configuration: "forge${variant == "normal" ? "" : variant.capitalize()}")
def metadata = dependencies.project(path: ":metadata", configuration: "neoforge${variant == "normal" ? "" : variant.capitalize()}")
dependencies.add(set.implementationConfigurationName, metadata)
dependencies.add(shadowConfig.name, metadata)

// Add a dependency on variant's service provider
def spi = dependencies.project(path: ":variant:${variant}", configuration: "namedElements")
dependencies.add(set.implementationConfigurationName, spi)
dependencies.add(shadowConfig.name, dependencies.project(path: ":variant:${variant}", configuration: "transformProductionForge"))
dependencies.add(shadowConfig.name, dependencies.project(path: ":variant:${variant}", configuration: "transformProductionNeoForge"))

// Configure/create a run config
def run
Expand Down Expand Up @@ -131,6 +112,10 @@ variants.each { variant ->
inputFile = shadowJarTask.archiveFile
dependsOn shadowJarTask
archiveAppendix = appendix

// Transform the AccessWidener into an AccessTransformer
atAccessWideners.add loom.accessWidenerPath.get().asFile.name

// Output in root `build/libs`
destinationDirectory = rootProject.layout.buildDirectory.dir "libs"
}
Expand Down
1 change: 1 addition & 0 deletions neoforge/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
loom.platform=neoforge
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,23 @@

import me.shedaniel.autoconfig.AutoConfig;
import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.ConfigScreenHandler;
import net.minecraftforge.client.event.RegisterKeyMappingsEvent;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.bus.api.EventPriority;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.ModLoadingContext;
import net.neoforged.fml.common.Mod;
import net.neoforged.fml.common.Mod.EventBusSubscriber.Bus;
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent;
import net.neoforged.neoforge.client.ConfigScreenHandler;
import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent;
import net.neoforged.neoforge.event.TickEvent;
import net.xolt.freecam.Freecam;
import net.xolt.freecam.config.ModBindings;
import net.xolt.freecam.config.ModConfig;

@Mod(Freecam.MOD_ID)
@Mod.EventBusSubscriber(bus = Bus.MOD, value = Dist.CLIENT)
@SuppressWarnings("unused")
public class FreecamForge {

@SubscribeEvent
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
"compatibilityLevel": "JAVA_17",
"minVersion": "0.8",
"client": [
"LevelRendererMixin"
],
"injectors": {
"defaultRequire": 1
Expand Down
2 changes: 1 addition & 1 deletion settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ pluginManagement {

include("common")
include("fabric")
include("forge")
include("neoforge")
include("metadata")
include("variant", "variant:api", "variant:normal", "variant:modrinth")

Expand Down