Skip to content

Commit

Permalink
switch to almost gradle plugin project setup
Browse files Browse the repository at this point in the history
  • Loading branch information
rlnt committed Sep 3, 2024
1 parent b80af94 commit 2751f9e
Show file tree
Hide file tree
Showing 9 changed files with 69 additions and 168 deletions.
123 changes: 12 additions & 111 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,139 +1,40 @@
@file:Suppress("UnstableApiUsage")

val license: String by project
val loggingLevel: String by project
val mixinDebugExport: String by project
val recipeViewer: String by project
val mcVersion: String by project
val modVersion: String by project
val modPackage: String by project
val modId: String by project
val modName: String by project
val modAuthor: String by project
val modDescription: String by project
val neoVersion: String by project
val parchmentVersion: String by project
val aeVersion: String by project
val jeiVersion: String by project
val reiVersion: String by project
val emiVersion: String by project
val githubUser: String by project
val githubRepo: String by project

plugins {
id("net.neoforged.moddev") version "2.0.+"
id("com.github.gmazzo.buildconfig") version "4.0.4"
java
id("com.almostreliable.almostgradle")
}

base {
version = "$mcVersion-$modVersion"
group = modPackage
archivesName.set("$modId-neoforge")
almostgradle.setup {
withSourcesJar = false
recipeViewers.emi.mavenRepository
}

java.toolchain.languageVersion = JavaLanguageVersion.of(21)

neoForge {
version = neoVersion

mods {
create("merequester") {
modSourceSets.add(sourceSets.main)
}
}

runs {
configureEach {
gameDirectory = project.file("run")
systemProperties = mapOf(
"forge.logging.console.level" to loggingLevel,
"mixin.debug.export" to mixinDebugExport,
"guideDev.ae2guide.sources" to file("guidebook").absolutePath,
"guideDev.ae2guide.sourcesNamespace" to modId
"guideDev.ae2guide.sourcesNamespace" to almostgradle.modId
)
jvmArguments.addAll("-XX:+IgnoreUnrecognizedVMOptions", "-XX:+AllowEnhancedClassRedefinition")
}
create("client") {
client()
programArguments.addAll("--quickPlaySingleplayer", "New World")
}

create("guide") {
client()
systemProperty("guideDev.ae2guide.startupPage", "$modId:$modId.md")
systemProperty("guideDev.ae2guide.startupPage", "${almostgradle.modId}:${almostgradle.modId}.md")
}
create("server") {
server()
}
}

parchment {
minecraftVersion = mcVersion
mappingsVersion = parchmentVersion
}
}

repositories {
maven("https://modmaven.dev") // Applied Energistics 2
maven("https://maven.blamejared.com") // JEI
maven("https://maven.shedaniel.me") // REI
maven("https://maven.terraformersmc.com") // EMI
maven("https://modmaven.dev")
mavenLocal()
}

dependencies {
implementation("appeng:appliedenergistics2:$aeVersion")

when (recipeViewer) {
"jei" -> runtimeOnly("mezz.jei:jei-$mcVersion-neoforge:$jeiVersion") { isTransitive = false }
"rei" -> runtimeOnly("me.shedaniel:RoughlyEnoughItems-neoforge:$reiVersion")
"emi" -> runtimeOnly("dev.emi:emi-neoforge:$emiVersion+$mcVersion")
else -> throw GradleException("Invalid recipeViewer value: $recipeViewer")
}
implementation("appeng:appliedenergistics2:${almostgradle.getProperty("aeVersion")}")
}

tasks {
processResources {
val resourceTargets = listOf("META-INF/neoforge.mods.toml", "pack.mcmeta")

val replaceProperties = mapOf(
"license" to license,
"mcVersion" to mcVersion,
"version" to project.version as String,
"modId" to modId,
"modName" to modName,
"modAuthor" to modAuthor,
"modDescription" to modDescription,
"neoVersion" to neoVersion,
"aeVersion" to aeVersion,
"githubUser" to githubUser,
"githubRepo" to githubRepo
)

println("[Process Resources] Replacing properties in resources: ")
replaceProperties.forEach { (key, value) -> println("\t -> $key = $value") }

inputs.properties(replaceProperties)
filesMatching(resourceTargets) {
expand(replaceProperties)
}
tasks.withType<Jar> {
from("guidebook") {
into("assets/${almostgradle.modId}/ae2guide")
}

withType<JavaCompile> {
options.encoding = "UTF-8"
}

withType<Jar> {
from("guidebook") {
into("assets/$modId/ae2guide")
}
}
}

buildConfig {
buildConfigField("String", "MOD_ID", "\"$modId\"")
buildConfigField("String", "MOD_NAME", "\"$modName\"")
buildConfigField("String", "MOD_VERSION", "\"$version\"")
packageName(modPackage)
useJavaOutput()
}
39 changes: 16 additions & 23 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,33 +1,26 @@
# Project
license = GNU Lesser General Public License v3.0
loom.platform = neoforge

# Settings
loggingLevel = debug
mixinDebugExport = false
recipeViewer = emi

# Minecraft
mcVersion = 1.21

# Mod
modVersion = 1.1.6
modPackage = com.almostreliable.merequester
group = com.almostreliable
modId = merequester
modName = ME Requester
modVersion = 1.1.6
minecraftVersion = 1.21.1
neoforgeVersion = 21.1.36

modAuthor = Almost Reliable
modDescription = Keep items and fluids in your ME-System in stock.
license = GNU Lesser General Public License v3.0
githubUser = AlmostReliable
githubRepo = merequester

# Project Dependencies
neoVersion = 21.0.143
parchmentVersion = 2024.07.28
neoForge.parchment.minecraftVersion = 1.21
neoForge.parchment.mappingsVersion = 2024.07.28

# Mod Dependencies
aeVersion = 19.0.18-beta
jeiVersion = 19.5.2.66
reiVersion = 16.0.744
emiVersion = 1.1.10

# Github
githubUser = AlmostReliable
githubRepo = merequester
# Settings
almostgradle.buildconfig.name = ModConstants
almostgradle.launchArgs.autoWorldJoin = true
almostgradle.recipeViewers.emi.runConfig = true
almostgradle.recipeViewers.emi.version = 1.1.12
almostgradle.recipeViewers.emi.minecraftVersion = 1.21
8 changes: 5 additions & 3 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@ plugins {
id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0"
}

val modName = extra.get("modName").toString().replace(" ", "-")
val mcVersion: String by extra
rootProject.name = "$modName-$mcVersion-NeoForge"
val modName: String by extra
val minecraftVersion: String by extra
rootProject.name = "${modName.replace(" ", "-")}-$minecraftVersion-NeoForge"

enableFeaturePreview("STABLE_CONFIGURATION_CACHE")

includeBuild("../../almostgradle")
9 changes: 2 additions & 7 deletions src/main/java/com/almostreliable/merequester/MERequester.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,15 @@

import com.almostreliable.merequester.data.MERequesterData;
import com.almostreliable.merequester.network.PacketHandler;
import com.almostreliable.merequester.requester.RequesterMenu;
import com.almostreliable.merequester.terminal.RequesterTerminalMenu;

import com.mojang.logging.LogUtils;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.fml.ModContainer;
import net.neoforged.fml.ModLoadingContext;
import net.neoforged.fml.common.Mod;
import net.neoforged.fml.config.ModConfig;
import net.neoforged.fml.loading.FMLEnvironment;
import net.neoforged.neoforge.client.event.RegisterColorHandlersEvent;
import net.neoforged.neoforge.client.event.RegisterMenuScreensEvent;
import org.slf4j.Logger;

@Mod(BuildConfig.MOD_ID)
@Mod(ModConstants.MOD_ID)
public final class MERequester {

public static final Logger LOGGER = LogUtils.getLogger();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
package com.almostreliable.merequester;

import appeng.api.util.AEColor;
import appeng.client.render.StaticItemColor;
import appeng.init.client.InitScreens;
import com.almostreliable.merequester.client.RequesterScreen;
import com.almostreliable.merequester.client.RequesterTerminalScreen;
import com.almostreliable.merequester.requester.RequesterMenu;
import com.almostreliable.merequester.terminal.RequesterTerminalMenu;

import appeng.api.util.AEColor;
import appeng.client.render.StaticItemColor;
import appeng.init.client.InitScreens;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.fml.common.Mod;
import net.neoforged.neoforge.client.event.RegisterColorHandlersEvent;
import net.neoforged.neoforge.client.event.RegisterMenuScreensEvent;

@Mod(value = BuildConfig.MOD_ID, dist = Dist.CLIENT)
@Mod(value = ModConstants.MOD_ID, dist = Dist.CLIENT)
public final class MERequesterClient {

public MERequesterClient(IEventBus modEventBus) {
Expand Down
32 changes: 19 additions & 13 deletions src/main/java/com/almostreliable/merequester/Registration.java
Original file line number Diff line number Diff line change
@@ -1,34 +1,40 @@
package com.almostreliable.merequester;

import appeng.api.AECapabilities;
import appeng.api.parts.PartModels;
import appeng.block.AEBaseBlock;
import appeng.blockentity.AEBaseBlockEntity;
import appeng.items.parts.PartItem;
import appeng.items.parts.PartModelsHelper;
import com.almostreliable.merequester.requester.RequesterBlock;
import com.almostreliable.merequester.requester.RequesterBlockEntity;
import com.almostreliable.merequester.terminal.RequesterTerminalPart;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceKey;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.block.entity.BlockEntityType;

import com.almostreliable.merequester.requester.RequesterBlock;
import com.almostreliable.merequester.requester.RequesterBlockEntity;
import com.almostreliable.merequester.terminal.RequesterTerminalPart;

import appeng.api.AECapabilities;
import appeng.api.parts.PartModels;
import appeng.block.AEBaseBlock;
import appeng.blockentity.AEBaseBlockEntity;
import appeng.items.parts.PartItem;
import appeng.items.parts.PartModelsHelper;
import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent;
import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent;
import net.neoforged.neoforge.registries.*;
import net.neoforged.neoforge.registries.DeferredBlock;
import net.neoforged.neoforge.registries.DeferredHolder;
import net.neoforged.neoforge.registries.DeferredItem;
import net.neoforged.neoforge.registries.DeferredRegister;
import net.neoforged.neoforge.registries.RegisterEvent;

import static com.almostreliable.merequester.MERequester.REQUESTER_ID;
import static com.almostreliable.merequester.MERequester.TERMINAL_ID;

public final class Registration {

public static final DeferredRegister.Blocks BLOCKS = DeferredRegister.createBlocks(BuildConfig.MOD_ID);
public static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(BuildConfig.MOD_ID);
public static final DeferredRegister.Blocks BLOCKS = DeferredRegister.createBlocks(ModConstants.MOD_ID);
public static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(ModConstants.MOD_ID);
public static final DeferredRegister<BlockEntityType<?>> BLOCK_ENTITY_TYPES = DeferredRegister.create(
Registries.BLOCK_ENTITY_TYPE,
BuildConfig.MOD_ID
ModConstants.MOD_ID
);

public static final DeferredBlock<RequesterBlock> REQUESTER_BLOCK = BLOCKS.registerBlock(
Expand Down
7 changes: 4 additions & 3 deletions src/main/java/com/almostreliable/merequester/Utils.java
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
package com.almostreliable.merequester;

import com.mojang.blaze3d.platform.InputConstants;
import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.resources.ResourceLocation;

import com.mojang.blaze3d.platform.InputConstants;

import java.util.List;

public final class Utils {

private Utils() {}

public static ResourceLocation getRL(String path) {
return ResourceLocation.fromNamespaceAndPath(BuildConfig.MOD_ID, path);
return ResourceLocation.fromNamespaceAndPath(ModConstants.MOD_ID, path);
}

public static int fillColorAlpha(ChatFormatting color) {
Expand All @@ -22,7 +23,7 @@ public static int fillColorAlpha(ChatFormatting color) {
}

public static MutableComponent translate(String type, String key, Object... args) {
return Component.translatable(String.format("%s.%s.%s", type, BuildConfig.MOD_ID, key), args);
return Component.translatable(String.format("%s.%s.%s", type, ModConstants.MOD_ID, key), args);
}

public static String translateAsString(String type, String key) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.almostreliable.merequester.data;

import com.almostreliable.merequester.BuildConfig;
import net.minecraft.core.component.DataComponentType;
import net.minecraft.network.codec.ByteBufCodecs;

import com.almostreliable.merequester.ModConstants;

import net.neoforged.neoforge.registries.DeferredRegister;

import java.util.List;
Expand All @@ -13,7 +15,7 @@ public final class MERequesterData {
private MERequesterData() {}

public static final DeferredRegister.DataComponents DR = DeferredRegister
.createDataComponents(BuildConfig.MOD_ID);
.createDataComponents(ModConstants.MOD_ID);

public static final DataComponentType<List<MERequesterRequest>> EXPORTED_REQUESTER_REQUESTS = register("exported_requests", builder -> {
builder.persistent(MERequesterRequest.CODEC.listOf())
Expand Down
4 changes: 2 additions & 2 deletions src/main/resources/META-INF/neoforge.mods.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ description = '''${modDescription}'''
[[dependencies."${modId}"]]
modId = "neoforge"
type = "REQUIRED"
versionRange = "[${neoVersion},)"
versionRange = "[${neoforgeVersion},)"
ordering = "NONE"
side = "BOTH"

[[dependencies."${modId}"]]
modId = "minecraft"
type = "REQUIRED"
versionRange = "[${mcVersion},)"
versionRange = "[${minecraftVersion},)"
ordering = "NONE"
side = "BOTH"

Expand Down

0 comments on commit 2751f9e

Please sign in to comment.