Skip to content

Commit 1797679

Browse files
committed
port to fabric (not finish)
1 parent a4f0250 commit 1797679

377 files changed

Lines changed: 13822 additions & 1449 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

build.gradle

Lines changed: 43 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
import java.time.Instant
22

33
plugins {
4-
id 'base'
5-
id 'java'
6-
id 'idea'
74
id 'maven-publish'
8-
id 'net.neoforged.moddev' version "2.0.75"
5+
id 'fabric-loom' version '1.10-SNAPSHOT'
96
id "me.shedaniel.unified-publishing" version "0.1.+"
107
}
118

@@ -14,54 +11,33 @@ def isLocal = !ENV.containsKey("GITHUB_RUN_NUMBER")
1411

1512
version = "${mod_version}-${isLocal ? "local.${Instant.now().epochSecond}" : "build.${ENV.GITHUB_RUN_NUMBER}"}"
1613
group = project.maven_group
17-
base.archivesBaseName = project.archives_base_name
14+
base.archivesName = project.archives_base_name
1815

1916
println("Building version: ${version}")
2017

21-
neoForge {
22-
version = project.neoforge_version
23-
accessTransformers {
24-
publish(project.file('src/main/resources/META-INF/accesstransformer.cfg'))
25-
}
18+
loom {
19+
interfaceInjection.enabled
2620

27-
interfaceInjectionData {
28-
from(file('interfaces.json'))
29-
publish(file('interfaces.json'))
30-
}
21+
accessWidenerPath.set(file("src/main/resources/kubejs.accesswidener"))
3122

3223
runs {
33-
configureEach {
34-
logLevel = org.slf4j.event.Level.INFO
35-
}
36-
3724
client {
3825
client()
3926

4027
if (ENV.MC_CLIENT_ARGS) {
41-
programArguments.addAll(ENV.MC_CLIENT_ARGS.split(' '))
28+
programArgs.addAll(ENV.MC_CLIENT_ARGS.split(' '))
4229
}
4330

44-
jvmArguments.addAll("-XX:+IgnoreUnrecognizedVMOptions", "-XX:+AllowEnhancedClassRedefinition")
45-
gameDirectory = file 'runs/client'
31+
vmArgs.addAll("-XX:+IgnoreUnrecognizedVMOptions", "-XX:+AllowEnhancedClassRedefinition")
32+
runDir = 'runs/client'
4633
}
4734

4835
server {
4936
server()
50-
programArgument("--nogui")
51-
gameDirectory = file 'runs/server'
52-
}
53-
}
54-
55-
mods {
56-
kubejs {
57-
sourceSet sourceSets.main
37+
programArgs.add("--nogui")
38+
runDir = 'runs/server'
5839
}
5940
}
60-
61-
parchment {
62-
minecraftVersion = parchment_mc_version
63-
mappingsVersion = parchment_mapping_version
64-
}
6541
}
6642

6743
compileJava {
@@ -71,18 +47,14 @@ compileJava {
7147
}
7248

7349
java {
74-
sourceCompatibility = targetCompatibility = '21'
50+
sourceCompatibility = targetCompatibility = JavaLanguageVersion.of(21)
7551
withSourcesJar()
7652
}
7753

7854
repositories {
7955
mavenLocal()
8056
mavenCentral()
8157

82-
maven {
83-
url "https://maven.neoforged.net/releases"
84-
}
85-
8658
maven {
8759
name = 'ParchmentMC'
8860
url = 'https://maven.parchmentmc.org'
@@ -126,29 +98,37 @@ repositories {
12698
includeGroup "com.github.rtyley"
12799
}
128100
}
101+
102+
maven { url = "https://mvn.devos.one/snapshots/" }
129103
}
130104

131105
dependencies {
132-
api("dev.latvian.mods:rhino:$rhino_version") { transitive(false) }
106+
// To change the versions see the gradle.properties file
107+
minecraft "com.mojang:minecraft:${project.minecraft_version}"
108+
mappings loom.layered() {
109+
officialMojangMappings()
110+
parchment("org.parchmentmc.data:parchment-${project.parchment_mc_version}:${project.parchment_mapping_version}")
111+
}
112+
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
133113

134-
compileOnly("dev.architectury:architectury-neoforge:$architectury_version")
135-
compileOnly("mezz.jei:jei-1.21.1-neoforge:$jei_version")
136-
compileOnly("me.shedaniel:RoughlyEnoughItems-neoforge:$rei_version")
137-
compileOnly("dev.emi:emi-neoforge:$emi_version:api")
114+
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
138115

139-
additionalRuntimeClasspath(jarJar(implementation('dev.latvian.apps:tiny-java-server'))) {
140-
version {
141-
strictly "[$tiny_server_version,)"
142-
prefer "$tiny_server_version"
143-
}
144-
}
116+
modImplementation("teamreborn:energy:4.1.0")
145117

146-
additionalRuntimeClasspath(jarJar(implementation("com.github.rtyley:animated-gif-lib-for-java"))) {
147-
version {
148-
strictly "[animated-gif-lib-$gif_lib_version,)"
149-
prefer "animated-gif-lib-$gif_lib_version"
150-
}
151-
}
118+
modApi("dev.latvian.mods:rhino:$rhino_version") { transitive(false) }
119+
120+
modCompileOnly("dev.architectury:architectury-fabric:$architectury_version")
121+
modCompileOnly("mezz.jei:jei-1.21.1-fabric:$jei_version")
122+
modCompileOnly("me.shedaniel:RoughlyEnoughItems-fabric:$rei_version")
123+
modCompileOnly("dev.emi:emi-fabric:$emi_version:api")
124+
125+
implementation("dev.latvian.apps:tiny-java-server:${project.tiny_server_version}")
126+
include("dev.latvian.apps:tiny-java-server:${project.tiny_server_version}")
127+
128+
implementation("com.github.rtyley:animated-gif-lib-for-java:animated-gif-lib-${project.gif_lib_version}")
129+
include("com.github.rtyley:animated-gif-lib-for-java:animated-gif-lib-${project.gif_lib_version}")
130+
131+
implementation("com.google.code.findbugs:jsr305:3.0.2")
152132
}
153133

154134
processResources {
@@ -160,7 +140,7 @@ processResources {
160140
println("[Process Resources] Replacing properties in resources: " + toReplace)
161141

162142
inputs.properties toReplace
163-
filesMatching("META-INF/neoforge.mods.toml") {
143+
filesMatching("fabric.mod.json") {
164144
expand toReplace
165145
}
166146
}
@@ -188,6 +168,7 @@ publishing {
188168
}
189169

190170
repositories {
171+
/*
191172
if (ENV.MAVEN_URL && ENV.MAVEN_USERNAME && ENV.MAVEN_TOKEN) {
192173
maven {
193174
url = ENV.MAVEN_URL
@@ -197,16 +178,17 @@ publishing {
197178
}
198179
}
199180
}
181+
*/
200182
}
201183
}
202184

203185
unifiedPublishing {
204186
project {
205187
releaseType = "${ENV.RELEASE_TYPE ?: 'release'}"
206-
gameVersions = Arrays.asList(rootProject.supported_versions.split(', '))
207-
gameLoaders = ["neoforge"]
208-
displayName = "$mod_name NeoForge $project.version"
209-
changelog = "https://kubejs.com/changelog?mc=${project.minecraft_version}"
188+
gameVersions = Arrays.asList(project.supported_versions.split(', '))
189+
gameLoaders = ["fabric"]
190+
displayName = "$mod_name Fabric $project.version"
191+
//changelog = "https://kubejs.com/changelog?mc=${project.minecraft_version}"
210192
mainPublication jar
211193

212194
relations {
@@ -232,13 +214,6 @@ unifiedPublishing {
232214
}
233215
}
234216

235-
idea {
236-
module {
237-
downloadSources = true
238-
downloadJavadoc = true
239-
}
240-
}
241-
242217
afterEvaluate {
243218
tasks.withType(JavaCompile) {
244219
options.compilerArgs << "-Xmaxerrs" << "1000"

gradle.properties

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ org.gradle.jvmargs=-Xmx3G
22
org.gradle.daemon=false
33

44
mod_id=kubejs
5-
archives_base_name=kubejs-neoforge
5+
archives_base_name=kubejs-fabric
66
mod_name=KubeJS
77
maven_group=dev.latvian.mods
88
mod_author=latvian.dev
@@ -13,7 +13,8 @@ minecraft_version=1.21.1
1313
supported_versions=1.21.1, 1.21
1414
mod_version=2101.7.2
1515

16-
neoforge_version=21.1.97
16+
loader_version=0.16.9
17+
fabric_version=0.114.0+1.21.1
1718
parchment_mc_version=1.21.1
1819
parchment_mapping_version=2024.11.17
1920
rhino_version=2101.2.7-build.74

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

settings.gradle

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,10 @@ pluginManagement {
33
mavenLocal()
44
gradlePluginPortal()
55
mavenCentral()
6-
maven { url "https://maven.neoforged.net/releases" }
6+
maven {
7+
name = 'Fabric'
8+
url = 'https://maven.fabricmc.net/'
9+
}
710
maven { url "https://maven.creeperhost.net/" }
811
}
912
}
10-
11-
plugins {
12-
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0'
13-
}
14-
15-
rootProject.name = 'KubeJS-1.21.1'

src/main/java/dev/latvian/mods/kubejs/KubeJS.java

Lines changed: 29 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import dev.latvian.mods.kubejs.ingredient.KubeJSIngredients;
1010
import dev.latvian.mods.kubejs.item.creativetab.KubeJSCreativeTabs;
1111
import dev.latvian.mods.kubejs.level.ruletest.KubeJSRuleTests;
12+
import dev.latvian.mods.kubejs.net.KubeJSNet;
1213
import dev.latvian.mods.kubejs.plugin.KubeJSPlugin;
1314
import dev.latvian.mods.kubejs.plugin.KubeJSPlugins;
1415
import dev.latvian.mods.kubejs.plugin.builtin.event.StartupEvents;
@@ -20,15 +21,10 @@
2021
import dev.latvian.mods.kubejs.script.ScriptType;
2122
import dev.latvian.mods.kubejs.script.data.KubeFileResourcePack;
2223
import dev.latvian.mods.kubejs.util.RecordDefaults;
24+
import net.fabricmc.api.EnvType;
25+
import net.fabricmc.loader.api.FabricLoader;
26+
import net.fabricmc.loader.api.ModContainer;
2327
import net.minecraft.resources.ResourceLocation;
24-
import net.neoforged.api.distmarker.Dist;
25-
import net.neoforged.bus.api.IEventBus;
26-
import net.neoforged.fml.ModContainer;
27-
import net.neoforged.fml.ModList;
28-
import net.neoforged.fml.common.Mod;
29-
import net.neoforged.neoforge.common.NeoForgeMod;
30-
import net.neoforged.neoforgespi.language.IModFileInfo;
31-
import net.neoforged.neoforgespi.language.IModInfo;
3228
import org.slf4j.Logger;
3329
import org.slf4j.LoggerFactory;
3430

@@ -37,7 +33,6 @@
3733
import java.nio.file.Files;
3834
import java.util.ArrayList;
3935

40-
@Mod(KubeJS.MOD_ID)
4136
public class KubeJS {
4237
public static final String MOD_ID = "kubejs";
4338
public static final String MOD_NAME = "KubeJS";
@@ -48,11 +43,12 @@ public class KubeJS {
4843
public static String VERSION = "0";
4944
public static String DISPLAY_NAME = "KubeJS";
5045

46+
public static KubeJS instance;
47+
5148
public static ResourceLocation id(String path) {
5249
return ResourceLocation.fromNamespaceAndPath(MOD_ID, path);
5350
}
5451

55-
public static IEventBus modEventBus;
5652
public static ModContainer thisMod;
5753

5854
public static KubeJSCommon PROXY = new KubeJSCommon();
@@ -67,12 +63,12 @@ public static ScriptManager getClientScriptManager() {
6763
return clientScriptManager;
6864
}
6965

70-
public KubeJS(IEventBus bus, Dist dist, ModContainer mod) throws Throwable {
71-
modEventBus = bus;
72-
thisMod = mod;
73-
VERSION = mod.getModInfo().getVersion().toString();
66+
public KubeJS() throws Throwable {
67+
instance = this;
68+
thisMod = FabricLoader.getInstance().getModContainer(MOD_ID).orElseThrow();
69+
VERSION = thisMod.getMetadata().getVersion().getFriendlyString();
7470
DISPLAY_NAME = "KubeJS " + VERSION;
75-
QUERY = "source=kubejs&mc=" + MC_VERSION_NUMBER + "&loader=neoforge&v=" + URLEncoder.encode(mod.getModInfo().getVersion().toString(), StandardCharsets.UTF_8);
71+
QUERY = "source=kubejs&mc=" + MC_VERSION_NUMBER + "&loader=fabric&v=" + URLEncoder.encode(thisMod.getMetadata().getVersion().getFriendlyString(), StandardCharsets.UTF_8);
7672

7773
if (Files.notExists(KubeJSPaths.README)) {
7874
try {
@@ -115,11 +111,11 @@ public KubeJS(IEventBus bus, Dist dist, ModContainer mod) throws Throwable {
115111

116112
var pluginTimer = Stopwatch.createStarted();
117113
LOGGER.info("Looking for KubeJS plugins...");
118-
var allMods = new ArrayList<>(ModList.get().getMods().stream().map(IModInfo::getOwningFile).map(IModFileInfo::getFile).toList());
119-
var thisModFile = mod.getModInfo().getOwningFile().getFile();
120-
allMods.remove(thisModFile);
121-
allMods.addFirst(thisModFile);
122-
KubeJSPlugins.load(allMods, dist == Dist.CLIENT);
114+
var allMods = new ArrayList<>(FabricLoader.getInstance().getAllMods());
115+
//var thisModFile = mod.getModInfo().getOwningFile().getFile();
116+
allMods.remove(thisMod);
117+
allMods.addFirst(thisMod);
118+
KubeJSPlugins.load(allMods, FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT);
123119
LOGGER.info("Done in " + pluginTimer.stop());
124120

125121
KubeJSPlugins.forEachPlugin(KubeJSPlugin::init);
@@ -130,7 +126,7 @@ public KubeJS(IEventBus bus, Dist dist, ModContainer mod) throws Throwable {
130126
startupScriptManager.reload();
131127
}
132128

133-
if (dist.isClient()) {
129+
if (FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT) {
134130
clientScriptManager = new ClientScriptManager();
135131

136132
if (!datagen) {
@@ -140,26 +136,27 @@ public KubeJS(IEventBus bus, Dist dist, ModContainer mod) throws Throwable {
140136

141137
KubeJSPlugins.forEachPlugin(KubeJSPlugin::initStartup);
142138

143-
if (dist.isClient()) {
139+
if (FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT) {
144140
KubeFileResourcePack.scanForInvalidFiles("kubejs/assets/", KubeJSPaths.ASSETS);
145141
}
146142

147143
KubeFileResourcePack.scanForInvalidFiles("kubejs/data/", KubeJSPaths.DATA);
148144

149-
if (dist.isClient() || !CommonProperties.get().serverOnly) {
150-
// See NeoForgeRegistriesSetup.VANILLA_SYNC_REGISTRIES
151-
NeoForgeMod.enableMilkFluid();
145+
if (FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT || !CommonProperties.get().serverOnly) {
152146
// KubeJSComponents.REGISTRY.register(bus);
153-
KubeJSRecipeSerializers.REGISTRY.register(bus);
154-
KubeJSMenus.REGISTRY.register(bus);
147+
KubeJSRecipeSerializers.init();
148+
KubeJSMenus.init();
155149
}
156150

157-
KubeJSIngredients.REGISTRY.register(bus);
158-
KubeJSFluidIngredients.REGISTRY.register(bus);
159-
KubeJSCreativeTabs.REGISTRY.register(bus);
160-
KubeJSRuleTests.REGISTRY.register(bus);
161-
KubeJSHolderSets.REGISTRY.register(bus);
151+
KubeJSIngredients.init();
152+
KubeJSFluidIngredients.init();
153+
KubeJSCreativeTabs.init();
154+
KubeJSRuleTests.init();
155+
KubeJSHolderSets.init();
156+
}
162157

158+
public void setup() {
159+
KubeJSNet.register();
163160
StartupEvents.INIT.post(ScriptType.STARTUP, KubeStartupEvent.BASIC);
164161
// KubeJSRegistries.chunkGenerators().register(new ResourceLocation(KubeJS.MOD_ID, "flat"), () -> KJSFlatLevelSource.CODEC);
165162
}

src/main/java/dev/latvian/mods/kubejs/KubeJSCommon.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
import dev.latvian.mods.kubejs.script.ScriptType;
66
import dev.latvian.mods.kubejs.script.data.ExportablePackResources;
77
import dev.latvian.mods.kubejs.web.WebServerProperties;
8+
import me.textrue.kubejs.fabric.thirdparty.util.ServerLifecycleHooks;
89
import net.minecraft.commands.CommandSourceStack;
910
import net.minecraft.nbt.CompoundTag;
1011
import net.minecraft.world.entity.player.Player;
11-
import net.neoforged.neoforge.server.ServerLifecycleHooks;
1212
import org.jetbrains.annotations.Nullable;
1313

1414
import java.util.List;

0 commit comments

Comments
 (0)