diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4759435..b66c048 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,6 +24,6 @@ jobs: uses: gradle/gradle-build-action@v2 env: SNAPSHOT: true - SAPS_TOKEN: ${{ secrets.SAPS_TOKEN }} + NANITE_TOKEN: ${{ secrets.NANITE_DEPLOY }} with: arguments: publish diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 093c543..e7dc9ba 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,27 +11,18 @@ jobs: if: | !contains(github.event.head_commit.message, '[ciskip]') steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up JDK - uses: actions/setup-java@v2 + uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '17' - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: build - - name: Publish to Maven & Curseforge + - name: Build & Publish uses: gradle/gradle-build-action@v2 env: - SAPS_TOKEN: ${{ secrets.SAPS_TOKEN }} - CURSEFORGE_KEY: ${{ secrets.CURSEFORGE_KEY }} - with: - arguments: publish curseforge - - name: Release to Github - uses: "softprops/action-gh-release@v1" + NANITE_TOKEN: ${{ secrets.NANITE_DEPLOY }} + CURSEFORGE_TOKEN: ${{ secrets.CURSE_DEPLOY }} + MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - body_path: "./CHANGELOG.md" - prerelease: false - files: | - ./build/libs/*+@(mc+([0-9]).+([0-9]).+([0-9])).jar + arguments: build publish publishMods diff --git a/.gitignore b/.gitignore index 09cd281..c10d71d 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,4 @@ bin/ # fabric run/ +runs diff --git a/CHANGELOG.md b/CHANGELOG.md index da97af5..6d07234 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Kube Utils Changelog -## [1.0.3] +## [20.4.0] ### Changed -- Updated support to KubeJS 6.1! This will cause issues when attempted to use with 6.0. You have been warned! +- Updated to 1.20.4 diff --git a/build.gradle b/build.gradle index d682dfb..9d3ab1c 100644 --- a/build.gradle +++ b/build.gradle @@ -1,130 +1,213 @@ plugins { - id "dev.architectury.loom" version "0.12.0-SNAPSHOT" - id "maven-publish" - id "com.matthewprenger.cursegradle" version "1.4.0" + id 'java-library' + id 'eclipse' + id 'idea' + id 'maven-publish' + id 'net.neoforged.gradle.userdev' version '7.0.142' + id "me.modmuss50.mod-publish-plugin" version "0.5.1" } -sourceCompatibility = targetCompatibility = JavaVersion.VERSION_17 +def mcBase = getMinecraftBaseVersion() +def snapshotEnv = providers.environmentVariable("SNAPSHOT") +def isSnapshot = snapshotEnv.isPresent() && snapshotEnv.get().toBoolean() -def ENV = System.getenv() - -archivesBaseName = project.archives_base_name -version = "${project.mod_version}+mc${project.minecraft_version}" +version = "${mcBase}.${project.mod_version}${isSnapshot ? "-SNAPSHOT" : ""}" group = project.maven_group -def SNAPSHOT = ENV.SNAPSHOT != null && (ENV.SNAPSHOT == "true" || ENV.SNAPSHOT == true) -def MAVEN_URL = "https://maven.saps.dev/${SNAPSHOT ? "snapshots" : "releases"}" -def MAVEN_VERSION = project.version + (SNAPSHOT ? "-SNAPSHOT" : "") +base { + archivesName =project.archives_base_name +} + +java.toolchain.languageVersion = JavaLanguageVersion.of(17) -loom { - silentMojangMappingsLicense() +//def MAVEN_URL = "https://maven.saps.dev/${SNAPSHOT ? "snapshots" : "releases"}" +//def MAVEN_VERSION = project.version + (SNAPSHOT ? "-SNAPSHOT" : "") - forge { - mixinConfigs = [ - "kubeutils.mixins.json" - ] +runs { + configureEach { + systemProperty 'forge.logging.markers', 'REGISTRIES' + systemProperty 'forge.logging.console.level', 'debug' - dataGen { - mod project.mod_id - } + modSource project.sourceSets.main } - launches { - data { - arg "--existing", file("src/main/resources").absolutePath - } + client { + systemProperty 'forge.enabledGameTestNamespaces', project.mod_id } -} -repositories { - maven { - url "https://maven.saps.dev/minecraft" + server { + systemProperty 'forge.enabledGameTestNamespaces', project.mod_id + programArgument '--nogui' + } + + data { + programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath() } } -dependencies { - minecraft "com.mojang:minecraft:${project.minecraft_version}" - mappings loom.officialMojangMappings() +sourceSets.main.resources { srcDir 'src/generated/resources' } - forge "net.minecraftforge:forge:${project.forge_version}" +configurations { + runtimeClasspath.extendsFrom localRuntime +} - modApi "dev.latvian.mods:kubejs-forge:1902.6.1-build.327" - modApi "dev.latvian.mods:rhino-forge:1902.2.2-build.268" +//loom { +// silentMojangMappingsLicense() +// +// forge { +// mixinConfigs = [ +// "kubeutils.mixins.json" +// ] +// +// dataGen { +// mod project.mod_id +// } +// } +// +// launches { +// data { +// arg "--existing", file("src/main/resources").absolutePath +// } +// } +//} + +dependencies { + implementation "net.neoforged:neoforge:${mcBase}.${neoforge_version}" + + implementation "dev.latvian.mods:kubejs-neoforge:${kubejs_version}" } -processResources { - inputs.property "version", project.version +repositories { + mavenLocal() - filesMatching("META-INF/mods.toml") { - expand "version": project.version + maven { + name = "Kubejs" + url "https://maven.saps.dev/minecraft" + content { + includeGroup "dev.latvian.mods" + } } -} -tasks.withType(JavaCompile) { - options.encoding = "UTF-8" - options.release = 17 + maven { + url "https://maven.architectury.dev" + content { + includeGroup "dev.architectury" + } + } } -java { - withSourcesJar() -} +tasks.withType(ProcessResources).configureEach { + var replaceProperties = [ + minecraft_version : minecraft_version, + neoforge_base_two : mcBase, + neoforge_loader_version: neoforge_loader_version, + version : version, + kubejs_version : kubejs_version + ] + + inputs.properties replaceProperties -jar { - manifest { - attributes([ - "Specification-Title" : project.mod_id, - "Specification-Vendor" : project.mod_author, - "Specification-Version" : "1", - "Implementation-Title" : project.name, - "Implementation-Version" : version, - "Implementation-Vendor" : project.mod_author, - "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") - ]) + filesMatching(['META-INF/mods.toml']) { + expand replaceProperties } } -remapJar { - setArchivesBaseName("${project.archivesBaseName}-forge") // adds fabric to the maven and curse name +tasks.withType(JavaCompile).configureEach { + options.encoding = "UTF-8" } -if (ENV.CURSEFORGE_KEY) { - curseforge { - apiKey = ENV.CURSEFORGE_KEY - project { - id = project.curseforge_id - releaseType = "release" - addGameVersion "Forge" - addGameVersion "Java 17" - addGameVersion project.minecraft_version - mainArtifact(remapJar.archiveFile) - relations { - requiredDependency 'kubejs' - } - changelog = file("./CHANGELOG.md") - changelogType = 'markdown' - } +idea { + module { + downloadSources = true + downloadJavadoc = true } } +// +//if (ENV.CURSEFORGE_KEY) { +// curseforge { +// apiKey = ENV.CURSEFORGE_KEY +// project { +// id = project.curseforge_id +// releaseType = "release" +// addGameVersion "Forge" +// addGameVersion "Java 17" +// addGameVersion project.minecraft_version +// mainArtifact(remapJar.archiveFile) +// relations { +// requiredDependency 'kubejs' +// } +// changelog = file("./CHANGELOG.md") +// changelogType = 'markdown' +// } +// } +//} publishing { publications { - mavenJava(MavenPublication) { - artifactId = "${project.archivesBaseName}" + register('mavenJava', MavenPublication) { from components.java - - version = MAVEN_VERSION } } - repositories { - if (ENV.SAPS_TOKEN) { + def naniteSecret = providers.environmentVariable("NANITE_TOKEN"); + if (naniteSecret.isPresent()) { maven { - url MAVEN_URL + url "https://maven.nanite.dev/${isSnapshot ? "snapshots" : "releases"}" credentials { - username = "errormikey" - password = "${ENV.SAPS_TOKEN}" + username = "nanite" + password = naniteSecret.get() } } } } } + +publishMods { + dryRun = providers.environmentVariable("CURSEFORGE_TOKEN").getOrNull() == null + changelog = file("./CHANGELOG.md").text + version = project.version + file = project.provider { project.tasks.jar }.flatMap { it.archiveFile } + modLoaders.add("neoforge") + type = STABLE + displayName = "[${minecraft_version}] KubeUtils ${project.version}" + + curseforge { + projectId = curseforge_id + accessToken = providers.environmentVariable("CURSEFORGE_TOKEN") + minecraftVersions.add("${minecraft_version}") + javaVersions.add(JavaVersion.VERSION_17) + + requires("kubejs") + } + + modrinth { + projectId = modrinth_id + accessToken = providers.environmentVariable("NANITE_TOKEN") + minecraftVersions.add("${minecraft_version}") + requires("kubejs") + } + + github { + accessToken = providers.environmentVariable("GITHUB_TOKEN") + repository = "Nanite/KubeUtils" + commitish = providers.environmentVariable("GITHUB_SHA").orElse("dryRun") + } +} + +/** + * Removes the 1. from Minecraft's version, then adds a 0 to the end if the + * version does not contain three dots. + */ +def getMinecraftBaseVersion() { + def version = project.minecraft_version + def parts = version.split("\\.") + + // Remove the first part of the version + parts = parts[1..-1] + + if (parts.size() < 2) { + parts << "0" + } + + return parts.join(".") +} diff --git a/gradle.properties b/gradle.properties index 178ebd2..e235f15 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,15 +1,19 @@ # Done to increase the memory available to gradle. -org.gradle.jvmargs=-Xmx1G +org.gradle.jvmargs=-Xmx2G -loom.platform=forge +# The MC version is used to determine the base the version for neo and the mod +minecraft_version=1.20.4 -minecraft_version=1.19.2 -forge_version=1.19.2-43.2.3 +neoforge_version=237 +neoforge_loader_version=2 +mod_version=0 -mod_version=1.0.3 maven_group=pro.mikey.mods archives_base_name=kube-utils mod_id=kubeutils mod_author=ErrorMikey/Mikey curseforge_id=678815 +modrinth_id=JHdL51WR + +kubejs_version=2004.7.0-build.24 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 41dfb87..0d18421 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle b/settings.gradle index 606cfc1..ada876e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,10 +1,11 @@ pluginManagement { - // when using additional gradle plugins like shadow, - // add their repositories to this list! repositories { - maven { url "https://maven.fabricmc.net/" } - maven { url "https://maven.architectury.dev/" } - maven { url "https://files.minecraftforge.net/maven/" } + mavenLocal() gradlePluginPortal() + maven { url = 'https://maven.neoforged.net/releases' } } } + +plugins { + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0' +} diff --git a/src/main/java/pro/mikey/kubeutils/KubeUtils.java b/src/main/java/pro/mikey/kubeutils/KubeUtils.java index 455204c..4cc3498 100644 --- a/src/main/java/pro/mikey/kubeutils/KubeUtils.java +++ b/src/main/java/pro/mikey/kubeutils/KubeUtils.java @@ -1,7 +1,7 @@ package pro.mikey.kubeutils; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.common.Mod; +import net.neoforged.fml.common.Mod; +import net.neoforged.neoforge.common.NeoForge; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import pro.mikey.kubeutils.events.OnPlayerLoginEvent; @@ -13,11 +13,7 @@ public class KubeUtils { public KubeUtils() { - this.registerEvents(); - } - - private void registerEvents() { - MinecraftForge.EVENT_BUS.register(new OnPlayerLoginEvent()); + NeoForge.EVENT_BUS.register(new OnPlayerLoginEvent()); } public static String getId() { diff --git a/src/main/java/pro/mikey/kubeutils/events/OnPlayerLoginEvent.java b/src/main/java/pro/mikey/kubeutils/events/OnPlayerLoginEvent.java index ca5fb09..d1cd6a4 100644 --- a/src/main/java/pro/mikey/kubeutils/events/OnPlayerLoginEvent.java +++ b/src/main/java/pro/mikey/kubeutils/events/OnPlayerLoginEvent.java @@ -1,7 +1,8 @@ package pro.mikey.kubeutils.events; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; +import dev.latvian.mods.kubejs.core.EntityKJS; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.neoforge.event.entity.player.PlayerEvent; import pro.mikey.kubeutils.kubejs.events.KuEventsGroup; import pro.mikey.kubeutils.kubejs.events.PlayerStarterItems; @@ -10,14 +11,14 @@ public class OnPlayerLoginEvent { @SubscribeEvent void onPlayerLoggedIn(PlayerEvent.PlayerLoggedInEvent event) { - if (!event.getEntity().kjs$getPersistentData().getBoolean(PlayerStarterItems.STARTER_ITEMS_GIVEN_FLAG)) { + if (!((EntityKJS) event.getEntity()).kjs$getPersistentData().getBoolean(PlayerStarterItems.STARTER_ITEMS_GIVEN_FLAG)) { KuEventsGroup.PLAYER_STARTING_ITEMS.post(new PlayerStarterItems(event.getEntity())); } } @SubscribeEvent void onPlayerChangeDimension(PlayerEvent.PlayerChangedDimensionEvent event) { - if (!event.getEntity().kjs$getPersistentData().getBoolean(PlayerStarterItems.STARTER_ITEMS_GIVEN_FLAG)) { + if (!((EntityKJS) event.getEntity()).kjs$getPersistentData().getBoolean(PlayerStarterItems.STARTER_ITEMS_GIVEN_FLAG)) { KuEventsGroup.PLAYER_STARTING_ITEMS.post(new PlayerStarterItems(event.getEntity(), "dimension_change")); } } diff --git a/src/main/java/pro/mikey/kubeutils/kubejs/events/PlayerStarterItems.java b/src/main/java/pro/mikey/kubeutils/kubejs/events/PlayerStarterItems.java index 5e71be1..bed98ba 100644 --- a/src/main/java/pro/mikey/kubeutils/kubejs/events/PlayerStarterItems.java +++ b/src/main/java/pro/mikey/kubeutils/kubejs/events/PlayerStarterItems.java @@ -1,5 +1,6 @@ package pro.mikey.kubeutils.kubejs.events; +import dev.latvian.mods.kubejs.core.EntityKJS; import dev.latvian.mods.kubejs.event.EventResult; import dev.latvian.mods.kubejs.item.ItemHandlerUtils; import dev.latvian.mods.kubejs.player.PlayerEventJS; @@ -89,7 +90,7 @@ protected void afterPosted(EventResult cancelled) { } if (inserted) { - this.player.kjs$getPersistentData().putBoolean(STARTER_ITEMS_GIVEN_FLAG, true); + ((EntityKJS) this.player).kjs$getPersistentData().putBoolean(STARTER_ITEMS_GIVEN_FLAG, true); } } diff --git a/src/main/java/pro/mikey/kubeutils/kubejs/modules/FluidsKu.java b/src/main/java/pro/mikey/kubeutils/kubejs/modules/FluidsKu.java index 75a92d5..99cd885 100644 --- a/src/main/java/pro/mikey/kubeutils/kubejs/modules/FluidsKu.java +++ b/src/main/java/pro/mikey/kubeutils/kubejs/modules/FluidsKu.java @@ -1,7 +1,8 @@ package pro.mikey.kubeutils.kubejs.modules; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.world.level.material.Fluid; -import net.minecraftforge.registries.ForgeRegistries; import javax.annotation.Nullable; import java.util.List; @@ -24,8 +25,9 @@ public List getFluidsByNamespace(@Nullable String namespace) { return null; } - return ForgeRegistries.FLUIDS.getValues().stream() - .filter(e -> ForgeRegistries.FLUIDS.getKey(e).getNamespace().equals(namespace)) + return BuiltInRegistries.FLUID.holders() + .filter(e -> e.key().location().getNamespace().equals(namespace)) + .map(Holder.Reference::value) .filter(this::notEmpty) .toList(); } @@ -42,8 +44,9 @@ public List getFluidsByNamespaces(@Nullable List namespaces) { return List.of(); } - return ForgeRegistries.FLUIDS.getValues().stream() - .filter(e -> namespaces.stream().anyMatch(x -> ForgeRegistries.FLUIDS.getKey(e).getNamespace().equals(x))) + return BuiltInRegistries.FLUID.holders() + .filter(e -> namespaces.stream().anyMatch(x -> e.key().location().getNamespace().equals(x))) + .map(Holder.Reference::value) .filter(this::notEmpty) .toList(); } diff --git a/src/main/java/pro/mikey/kubeutils/kubejs/modules/LevelKu.java b/src/main/java/pro/mikey/kubeutils/kubejs/modules/LevelKu.java index d8780d2..3c896b7 100644 --- a/src/main/java/pro/mikey/kubeutils/kubejs/modules/LevelKu.java +++ b/src/main/java/pro/mikey/kubeutils/kubejs/modules/LevelKu.java @@ -3,6 +3,8 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Registry; import net.minecraft.core.Vec3i; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.Mth; @@ -15,7 +17,6 @@ import net.minecraft.world.level.levelgen.structure.templatesystem.StructurePlaceSettings; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate; import net.minecraft.world.phys.AABB; -import net.minecraftforge.registries.ForgeRegistries; import pro.mikey.kubeutils.KubeUtils; import javax.annotation.Nullable; @@ -62,8 +63,10 @@ public List findEntitiesWithinRadius(ResourceLocation entityId, Bl continue; } - ResourceLocation registryName = ForgeRegistries.ENTITY_TYPES.getKey(current.getType()); - if (registryName == null || !registryName.equals(entityId)) { + var regDefault = BuiltInRegistries.ENTITY_TYPE.getDefaultKey(); + ResourceLocation registryName = BuiltInRegistries.ENTITY_TYPE.getKey(current.getType()); + // Special case for unknown entities by comparing the registry name to the entity id + if ((entityId == regDefault && registryName != entityId) || !registryName.equals(entityId)) { continue; } @@ -147,9 +150,9 @@ public BlockPos getRandomLocation(BlockPos playerPos, int min, int max) { var tries = 0; while (tries < 50) { var newPos = new Vec3i( - xRandom, - Mth.clamp(yRandom, level.getMinBuildHeight(), level.getMaxBuildHeight()), - zRandom + (int) xRandom, + (int) Mth.clamp(yRandom, level.getMinBuildHeight(), level.getMaxBuildHeight()), + (int) zRandom ); if (!insideBox.isInside(newPos)) { @@ -159,7 +162,7 @@ public BlockPos getRandomLocation(BlockPos playerPos, int min, int max) { } } - return playerPos.offset(xRandom, yRandom, zRandom); + return playerPos.offset((int) xRandom, (int) yRandom, (int) zRandom); } /** @@ -200,7 +203,7 @@ public List seekCollectionOfBlocks(BlockPos startingPos, int range, Pr * @return if the structure is there. */ public boolean isStructureAtLocation(BlockPos pos, ResourceLocation structureId) { - Structure structure = level.getServer().registryAccess().registryOrThrow(Registry.STRUCTURE_REGISTRY).get(structureId); + Structure structure = level.getServer().registryAccess().registryOrThrow(Registries.STRUCTURE).get(structureId); if (structure == null) { return false; } @@ -222,7 +225,7 @@ public Set getStructuresAtLocation(BlockPos pos) { * Gets all the structure ids at a given location, just like {@link #getRandomLocation(BlockPos, int, int)} */ public List getStructureIdsAtLocation(BlockPos pos) { - return getStructuresAtLocation(pos).stream().map(e -> Registry.STRUCTURE_TYPES.getKey(e.type())).toList(); + return getStructuresAtLocation(pos).stream().map(e -> BuiltInRegistries.STRUCTURE_TYPE.getKey(e.type())).toList(); } private static boolean blocksAreEqual(BlockState state, BlockState state2, boolean ignoreState) { diff --git a/src/main/java/pro/mikey/kubeutils/kubejs/modules/PlayerKu.java b/src/main/java/pro/mikey/kubeutils/kubejs/modules/PlayerKu.java index 92d74ba..88ff11f 100644 --- a/src/main/java/pro/mikey/kubeutils/kubejs/modules/PlayerKu.java +++ b/src/main/java/pro/mikey/kubeutils/kubejs/modules/PlayerKu.java @@ -1,5 +1,7 @@ package pro.mikey.kubeutils.kubejs.modules; +import dev.latvian.mods.kubejs.core.ComponentKJS; +import dev.latvian.mods.kubejs.core.EntityKJS; import dev.latvian.mods.rhino.mod.util.color.Color; import net.minecraft.client.player.LocalPlayer; import net.minecraft.nbt.CompoundTag; @@ -47,7 +49,7 @@ public void showActionBar(String text) { } public void showActionBar(String text, Color color, boolean bold, boolean italic) { - this.player.displayClientMessage(Component.literal(text).kjs$color(color).kjs$bold(bold).kjs$italic(italic), true); + this.player.displayClientMessage(((ComponentKJS) ((((ComponentKJS) ((ComponentKJS) Component.literal(text)).kjs$color(color)).kjs$bold(bold)))).kjs$italic(italic), true); } public void showActionBar(String text, Color color) { @@ -65,7 +67,7 @@ public void showActionBar(String text, Color color, boolean bold) { * @return if the clear happened */ public boolean clearStarterItemsFlag() { - CompoundTag kubePersistent = this.player.kjs$getPersistentData(); + CompoundTag kubePersistent = ((EntityKJS) this.player).kjs$getPersistentData(); if (kubePersistent.contains(PlayerStarterItems.STARTER_ITEMS_GIVEN_FLAG) && kubePersistent.getBoolean(PlayerStarterItems.STARTER_ITEMS_GIVEN_FLAG)) { kubePersistent.putBoolean(PlayerStarterItems.STARTER_ITEMS_GIVEN_FLAG, false); return true; diff --git a/src/main/java/pro/mikey/kubeutils/kubejs/modules/StreamsHelper.java b/src/main/java/pro/mikey/kubeutils/kubejs/modules/StreamsHelper.java index 0d2af51..d080167 100644 --- a/src/main/java/pro/mikey/kubeutils/kubejs/modules/StreamsHelper.java +++ b/src/main/java/pro/mikey/kubeutils/kubejs/modules/StreamsHelper.java @@ -1,5 +1,6 @@ package pro.mikey.kubeutils.kubejs.modules; +import dev.latvian.mods.kubejs.core.LevelKJS; import dev.latvian.mods.kubejs.level.BlockContainerJS; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; @@ -19,6 +20,6 @@ public StreamsHelper() { * @return List of {@link BlockContainerJS} */ public List mapToBlock(ServerLevel level, List locations) { - return locations.stream().map(level::kjs$getBlock).toList(); + return locations.stream().map(e -> ((LevelKJS) level).kjs$getBlock(e)).toList(); } } diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 907ea10..e5c345e 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -1,5 +1,5 @@ modLoader = "javafml" -loaderVersion = "[43,)" +loaderVersion = "[${neoforge_loader_version},)" license = "GPL3" [[mods]] @@ -12,22 +12,25 @@ Provides extra methods and tools to the standard KubeJS mod ''' [[dependencies.kubeutils]] -modId = "forge" -mandatory = true -versionRange = "[43,)" +modId = "neoforge" +required = true +versionRange = "[${neoforge_base_two},)" ordering = "NONE" side = "BOTH" [[dependencies.kubeutils]] modId = "minecraft" -mandatory = true -versionRange = "[1.19.2,)" +required = true +versionRange = "[${minecraft_version},)" ordering = "NONE" side = "BOTH" [[dependencies.kubeutils]] modId = "kubejs" -mandatory = true -versionRange = "[1902.6.0-build.140,)" +required = true +versionRange = "[${kubejs_version},)" ordering = "NONE" side = "BOTH" + +[[mixins]] +config = "kubeutils.mixins.json"