Skip to content

Commit 5f6fe3e

Browse files
committed
Fix some stuffs, create common with mixin
1 parent 5a927a5 commit 5f6fe3e

File tree

17 files changed

+128
-56
lines changed

17 files changed

+128
-56
lines changed

.github/workflows/build.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,7 @@ jobs:
2525
uses: actions/upload-artifact@v4
2626
with:
2727
name: Artifacts
28-
path: '**/build/libs/'
28+
if-no-files-found: 'error'
29+
path: |
30+
fabric/build/libs/*.jar
31+
neo/build/libs/*.jar

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
plugins {
22
kotlin("jvm") version "2.1.21" apply false
3+
id("net.neoforged.gradle.common") version "7.0.189"
34
}
45

56
subprojects {

common/build.gradle.kts

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,56 @@ plugins {
22
id("java-library")
33
id("maven-publish")
44
kotlin("jvm")
5+
id("net.neoforged.gradle.vanilla") version "7.0.189"
6+
}
7+
8+
val parchmentVersion: String by project
9+
10+
subsystems {
11+
parchment {
12+
addRepository(false)
13+
parchmentArtifact("org.parchmentmc.data:parchment-${project.property("minecraftVersion") as String}:$parchmentVersion")
14+
}
15+
}
16+
17+
repositories {
18+
exclusiveContent {
19+
forRepository {
20+
maven {
21+
name = "Sponge"
22+
url = uri("https://repo.spongepowered.org/repository/maven-public/")
23+
}
24+
}
25+
filter { includeGroupAndSubgroups("org.spongepowered") }
26+
}
27+
exclusiveContent {
28+
forRepositories(
29+
maven {
30+
name = "ParchmentMC"
31+
url = uri("https://maven.parchmentmc.org")
32+
},
33+
maven {
34+
name = "NeoForged Maven"
35+
url = uri("https://maven.neoforged.net/releases")
36+
}
37+
)
38+
filter { includeGroup("org.parchmentmc.data") }
39+
}
540
}
641

742
val modId: String by project
843
val modVersion: String by project
944
val minecraftVersion: String by project
45+
val neoVersion: String by project
1046

1147
base {
1248
archivesName = "$modId-$minecraftVersion-common-$modVersion"
1349
}
50+
51+
dependencies {
52+
compileOnly("org.spongepowered:mixin:0.8.5")
53+
compileOnly("io.github.llamalad7:mixinextras-common:0.3.5")
54+
compileOnly("net.minecraft:client:$minecraftVersion")
55+
annotationProcessor("io.github.llamalad7:mixinextras-common:0.3.5")
56+
57+
}

fabric/src/main/java/com/example/mixin/ExampleMixin.java renamed to common/src/main/java/com/example/mixin/ExampleMixin.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
package com.example.mixin;
22

3-
import net.minecraft.server.MinecraftServer;
43
import org.spongepowered.asm.mixin.Mixin;
54
import org.spongepowered.asm.mixin.injection.At;
65
import org.spongepowered.asm.mixin.injection.Inject;
76
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
7+
import net.minecraft.server.MinecraftServer;
88

99
@Mixin(MinecraftServer.class)
1010
public class ExampleMixin {
1111
@Inject(at = @At("HEAD"), method = "loadLevel")
1212
private void init(CallbackInfo info) {
1313
// This code is injected into the start of MinecraftServer.loadLevel()V
14+
System.out.println("Hello from ExampleMixin! The server is starting up.");
1415
}
1516
}
File renamed without changes.

neo/src/main/resources/assets/examplemod/lang/en_us.json renamed to common/src/main/resources/assets/examplemod/lang/en_us.json

File renamed without changes.

fabric/src/main/resources/examplemod.mixins.json renamed to common/src/main/resources/examplemod.mixins.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"package": "com.example.mixin",
44
"compatibilityLevel": "JAVA_21",
55
"mixins": [
6-
"ExampleMixin"
6+
"ExampleMixin"
77
],
88
"injectors": {
99
"defaultRequire": 1

fabric/build.gradle.kts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
2+
13
plugins {
24
id("fabric-loom")
35
id("maven-publish")
@@ -67,6 +69,7 @@ val replacements = mapOf(
6769
)
6870

6971
tasks.named<ProcessResources>("processResources") {
72+
from(project(":common").sourceSets.main.get().resources)
7073
filesNotMatching(mutableSetOf("**/*.png")) {
7174
expand(replacements)
7275
}
@@ -76,10 +79,11 @@ tasks.withType<JavaCompile>().configureEach {
7679
options.release.set(21)
7780
}
7881

79-
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
82+
tasks.withType<KotlinCompile>().configureEach {
8083
compilerOptions {
8184
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_21)
8285
}
86+
source(project(":common").sourceSets.main.get().allSource)
8387
}
8488

8589

fabric/src/main/kotlin/com/example/ExampleMod.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import net.fabricmc.api.ModInitializer
44
import org.slf4j.LoggerFactory
55

66
object ExampleMod : ModInitializer {
7-
private val logger = LoggerFactory.getLogger("examplemod")
7+
private val logger = LoggerFactory.getLogger("assets/examplemod")
88

99
override fun onInitialize() {
1010
// This code runs as soon as Minecraft is in a mod-load-ready state.

fabric/src/main/resources/fabric.mod.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
]
3030
},
3131
"mixins": [
32-
"examplemod.mixins.json"
32+
"${mod_id}.mixins.json"
3333
],
3434
"depends": {
3535
"fabricloader": ">=0.16.14",

0 commit comments

Comments
 (0)