Skip to content
Open
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
125 changes: 74 additions & 51 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,18 +1,25 @@
plugins {
id 'net.fabricmc.fabric-loom' version "${loom_version}"
id 'java-library'
id 'net.neoforged.moddev' version "${moddevgradle_version}"
id 'maven-publish'
id "me.modmuss50.mod-publish-plugin" version "1.1.0"
}

version = "mc${archive_minecraft_version}-Fabric-${mod_version}"
version = "mc${archive_minecraft_version}-NeoForge-${mod_version}"
group = project.maven_group
var realVersion = project.mod_version + '+fabric'
var realVersion = project.mod_version + '+neoforge'

base {
archivesName = project.archives_base_name
}

repositories {
maven { url "https://maven.neoforged.net/releases" }
maven { url "https://maven.su5ed.dev/releases" }
maven {
name = "BlameJared"
url = "https://maven.blamejared.com/"
}
maven {
// location of the maven that hosts JEI files
name = "Progwml6 maven"
Expand All @@ -26,6 +33,13 @@ repositories {
maven { url "https://maven.shedaniel.me/" }
maven { url "https://maven.terraformersmc.com/releases/" }
maven { url "https://maven.terraformersmc.com/" }
maven {
// Shedaniel's maven (Architectury API)
url = "https://maven.architectury.dev"
content {
includeGroup "dev.architectury"
}
}
maven {
url = "https://mvn.devos.one/snapshots/"
}
Expand All @@ -48,59 +62,79 @@ repositories {
includeGroup "maven.modrinth"
}
}
flatDir { dir 'libs' }
}

loom {
accessWidenerPath = file("src/main/resources/${project.mod_id}.classtweaker")
}
neoForge {
version = project.neo_version

runs {
client {
client()
ideName = "Run ${project.mod_id} - Client"
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
}

server {
server()
ideName = "Run ${project.mod_id} - Server"
programArgument '--nogui'
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
}

gameTestServer {
type = "gameTestServer"
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
}

data {
clientData()
ideName = "Run ${project.mod_id} - Data"
programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath()
}
}

fabricApi {
configureDataGeneration() {
modId = project.mod_id
client = true
outputDirectory = file("src/generated/resources")
createSourceSet = true
strictValidation = true
mods {
"${mod_id}" {
sourceSet(sourceSets.main)
}
}
}

sourceSets.main.resources { srcDir 'src/generated/resources' }

dependencies {
minecraft "com.mojang:minecraft:${project.minecraft_version}"
implementation "net.fabricmc:fabric-loader:${project.loader_version}"
implementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}"
implementation "org.sinytra.forgified-fabric-api:forgified-fabric-api:${project.fabric_version}"
jarJar(implementation("org.sinytra.forgified-fabric-api:fabric-particles-v1:${project.forgified_fabric_particles_version}"))

implementation("dev.architectury:architectury-fabric:${project.architectury_version}")
api("me.shedaniel.cloth:cloth-config-fabric:${project.cloth_config_version}") {
exclude(group: "net.fabricmc.fabric-api")
}
implementation "com.terraformersmc:modmenu:${project.modmenu_version}"
implementation "dev.architectury:architectury-neoforge:${project.architectury_version}"
implementation "maven.modrinth:cloth-config:${project.cloth_config_version}+neoforge"
implementation "maven.modrinth:kiwi:${project.kiwi_version}+neoforge"
annotationProcessor "maven.modrinth:kiwi:${project.kiwi_version}+neoforge"

implementation "maven.modrinth:jade:${project.jade_version}+neoforge"
implementation "me.shedaniel:RoughlyEnoughItems-neoforge:${project.rei_version}"
compileOnly "me.shedaniel:REIPluginCompatibilities-forge-annotations:12.+"

implementation "me.shedaniel:RoughlyEnoughItems-fabric:${project.rei_version}"
implementation "mezz.jei:jei-${project.jei_minecraft_version}-common-api:${project.jei_version}"
implementation "mezz.jei:jei-${project.jei_minecraft_version}-neoforge-api:${project.jei_version}"
implementation "mezz.jei:jei-${project.jei_minecraft_version}-neoforge:${project.jei_version}"

// https://modrinth.com/mod/kiwi/versions
implementation annotationProcessor("maven.modrinth:kiwi:${project.kiwi_version}+fabric")
implementation fileTree(dir: "libs", include: ["*.jar"])
annotationProcessor fileTree(dir: "libs", include: ["*.jar"])

// compileOnlyApi "mezz.jei:jei-${minecraft_version}-fabric-api:${jei_version}"
implementation "mezz.jei:jei-26.1-fabric:${jei_version}"

// https://modrinth.com/mod/jade/versions
implementation "maven.modrinth:jade:${jade_version}+fabric"

implementation 'com.google.errorprone:error_prone_annotations:2.36.0'

// compileOnly "dev.latvian.mods:kubejs-neoforge:${kubejs_version}"

// compileOnly "dev.emi:emi-fabric:${emi_version}:api"
// implementation "dev.emi:emi-fabric:${emi_version}"
}

processResources {
inputs.property "version", realVersion
inputs.property "neo_version_range", project.neo_version_range
inputs.property "minecraft_version_range", project.minecraft_version_range

filesMatching("fabric.mod.json") {
expand "version": realVersion
filesMatching("META-INF/neoforge.mods.toml") {
expand "file": ["jarVersion": realVersion],
"neo_version_range": project.neo_version_range,
"minecraft_version_range": project.minecraft_version_range
}
}

Expand Down Expand Up @@ -133,36 +167,25 @@ jar {
}
}

configurations.configureEach {
resolutionStrategy {
force "dev.architectury:architectury-fabric:${project.architectury_version}"
}
}

publishMods {
file = jar.archiveFile
changelog = file('CHANGELOG.md').exists() ? file('CHANGELOG.md').text : ''
type = ['release': STABLE, 'beta': BETA, 'alpha': ALPHA][release_type]
modLoaders.add("fabric")
modLoaders.add("quilt")
displayName = "[Fabric ${supported_version}] ${mod_version}"
modLoaders.add("neoforge")
displayName = "[NeoForge ${supported_version}] ${mod_version}"
version = realVersion

curseforge {
projectId = "574650"
accessToken = providers.environmentVariable("CURSE_TOKEN")
minecraftVersions.add(minecraft_version)
minecraftVersions.add("26.1.1")
minecraftVersions.add("26.1.2")
requires("kiwi-fabric")
requires("kiwi")
optional("cloth-config")
}
modrinth {
projectId = "TdN6LxjM"
accessToken = providers.environmentVariable("MODRINTH_TOKEN")
minecraftVersions.add(minecraft_version)
minecraftVersions.add("26.1.1")
minecraftVersions.add("26.1.2")
requires("kiwi")
optional("cloth-config")
}
Expand Down
31 changes: 17 additions & 14 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
org.gradle.jvmargs=-Xmx3G -Xms3G -Duser.language=en
org.gradle.daemon=true
# org.gradle.java.home=D:/Program Files/Eclipse Foundation/jdk-17.0.1.12-hotspot
# Fabric Properties
# check these on https://fabricmc.net/versions.html
minecraft_version=26.1
archive_minecraft_version=26.1
supported_version=26.1.X
loader_version=0.18.5
loom_version=1.15-SNAPSHOT
# Minecraft / Loader Properties
minecraft_version=26.1.2
archive_minecraft_version=26.1.2
supported_version=26.1.2
moddevgradle_version=2.0.141
neo_version=26.1.2.77
neo_version_range=[26.1.2,)
minecraft_version_range=[26.1.2,26.2)

# Mod Properties
mod_version=26.0.2
Expand All @@ -16,26 +17,28 @@ mod_id=lychee
maven_group=snownee.lychee
archives_base_name=Lychee
# Dependencies
# https://fabricmc.net/develop/
fabric_api_version=0.144.3+26.1
# https://github.com/Sinytra/ForgifiedFabricAPI
fabric_version=0.154.0+3.1.0+26.1.2
forgified_fabric_particles_version=5.0.15+77a9369f4c
# https://modrinth.com/mod/cloth-config/versions
cloth_config_version=26.1.154
# https://modrinth.com/mod/modmenu/versions
modmenu_version=18.0.0-alpha.8
modmenu_version=18.0.0-beta.1
# https://modrinth.com/mod/architectury-api/versions
architectury_version=20.0.7
# https://modrinth.com/mod/kiwi/versions
kiwi_version=26.0.2
kiwi_version=26.0.9
# https://modrinth.com/mod/rei/versions
rei_version=26.1.819
# https://modrinth.com/mod/jei/versions
# https://modmaven.dev/mezz/jei/
jei_version=29.2.0.17
# https://maven.blamejared.com/mezz/jei/
jei_version=29.12.0.40
jei_minecraft_version=26.1.2
wthitVersion=12.2.1
milk_lib_version=1.3.61
kubejs_version=2101.7.1-build.181
rhino_version=2001.2.2-build.6
# https://modrinth.com/mod/jade/versions
jade_version=26.0.5
jade_version=26.1.8
# https://modrinth.com/mod/emi/versions
emi_version=1.1.22+1.21.1
11 changes: 7 additions & 4 deletions settings.gradle
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
pluginManagement {
repositories {
maven {
name = 'Fabric'
url = 'https://maven.fabricmc.net/'
}
mavenLocal()
gradlePluginPortal()
maven { url 'https://maven.neoforged.net/releases' }
maven { url "https://maven.architectury.dev/" }
}
}

plugins {
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.9.0'
}
16 changes: 11 additions & 5 deletions src/main/java/snownee/lychee/LycheeRegistries.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

import com.mojang.serialization.Codec;

import net.fabricmc.fabric.api.event.registry.FabricRegistryBuilder;
import net.fabricmc.fabric.api.event.registry.RegistryAttribute;
import net.neoforged.neoforge.registries.NewRegistryEvent;
import net.neoforged.neoforge.registries.RegistryBuilder;
import net.minecraft.core.MappedRegistry;
import net.minecraft.resources.ResourceKey;
import snownee.lychee.util.action.PostActionType;
Expand All @@ -18,9 +18,15 @@ public final class LycheeRegistries {
public static final MappedRegistry<Codec<?>> CONTEXT_SERIALIZER = register("context_serializer");
public static final MappedRegistry<UIElementType<?>> UI_ELEMENT = register("ui_element");

public static void init(NewRegistryEvent event) {
event.register(CONTEXTUAL);
event.register(POST_ACTION);
event.register(CONTEXT);
event.register(CONTEXT_SERIALIZER);
event.register(UI_ELEMENT);
}

private static <T> MappedRegistry<T> register(String id) {
return FabricRegistryBuilder.create(ResourceKey.<T>createRegistryKey(Lychee.id(id)))
.attribute(RegistryAttribute.SYNCED)
.buildAndRegister();
return (MappedRegistry<T>) new RegistryBuilder<>(ResourceKey.<T>createRegistryKey(Lychee.id(id))).sync(true).create();
}
}
6 changes: 4 additions & 2 deletions src/main/java/snownee/lychee/RecipeBookCategories.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package snownee.lychee;

import net.minecraft.core.Registry;
import net.minecraft.core.registries.BuiltInRegistries;
import net.neoforged.neoforge.registries.DeferredRegister;
import net.minecraft.world.item.crafting.RecipeBookCategory;

public class RecipeBookCategories {
public static final DeferredRegister<RecipeBookCategory> RECIPE_BOOK_CATEGORIES = DeferredRegister.create(BuiltInRegistries.RECIPE_BOOK_CATEGORY, Lychee.ID);
public static final RecipeBookCategory UNLISTED = register("unlisted", new RecipeBookCategory());

public static <T extends RecipeBookCategory> T register(String id, T serializer) {
return Registry.register(BuiltInRegistries.RECIPE_BOOK_CATEGORY, Lychee.id(id), serializer);
RECIPE_BOOK_CATEGORIES.register(id, () -> serializer);
return serializer;
}
}
6 changes: 4 additions & 2 deletions src/main/java/snownee/lychee/RecipeSerializers.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import com.google.common.collect.Lists;
import com.mojang.serialization.MapCodec;

import net.minecraft.core.Registry;
import net.minecraft.core.registries.BuiltInRegistries;
import net.neoforged.neoforge.registries.DeferredRegister;
import net.minecraft.network.RegistryFriendlyByteBuf;
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.world.item.crafting.Recipe;
Expand All @@ -29,6 +29,7 @@
import snownee.lychee.util.ui.CategoryModifier;

public final class RecipeSerializers {
public static final DeferredRegister<RecipeSerializer<?>> RECIPE_SERIALIZERS = DeferredRegister.create(BuiltInRegistries.RECIPE_SERIALIZER, Lychee.ID);
public static final List<RecipeSerializer<?>> ALL = Lists.newArrayList();
public static final RecipeSerializer<CategoryMetadata> CATEGORY_METADATA = register(
"category_metadata",
Expand Down Expand Up @@ -101,7 +102,8 @@ public static <T extends Recipe<?>> RecipeSerializer<T> register(
StreamCodec<RegistryFriendlyByteBuf, T> streamCodec) {
RecipeSerializer<T> serializer = new RecipeSerializer<>(codec, streamCodec);
ALL.add(serializer);
return Registry.register(BuiltInRegistries.RECIPE_SERIALIZER, Lychee.id(id), serializer);
RECIPE_SERIALIZERS.register(id, () -> serializer);
return serializer;
}

}
Loading