From 44c758bcb1458fb7cf3adb0951a4e2eac9f8dd65 Mon Sep 17 00:00:00 2001 From: Saereth Date: Mon, 23 Sep 2024 12:55:57 -0700 Subject: [PATCH 1/3] 1.21.1 port - Color handling for bossbar is currently commented out, needs review --- build.gradle | 52 +++---------------- gradle.properties | 10 ++-- settings.gradle | 2 +- .../kubeutils/kubejs/KubeUtilsPlugin.java | 20 +++---- .../kubejs/events/PlayerStarterItems.java | 15 ++++-- .../kubeutils/kubejs/modules/LevelKu.java | 4 +- .../kubeutils/kubejs/modules/PlayerKu.java | 15 +++--- .../kubeutils/kubejs/modules/UtilsKu.java | 4 +- .../{mods.toml => neoforge.mods.toml} | 2 +- 9 files changed, 47 insertions(+), 77 deletions(-) rename src/main/resources/META-INF/{mods.toml => neoforge.mods.toml} (94%) diff --git a/build.gradle b/build.gradle index b653afe..ca4205b 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ plugins { id 'eclipse' id 'idea' id 'maven-publish' - id 'net.neoforged.gradle.userdev' version '7.0.142' + id 'net.neoforged.gradle.userdev' version '7.0.145' id "me.modmuss50.mod-publish-plugin" version "0.5.1" } @@ -18,10 +18,8 @@ base { archivesName =project.archives_base_name } -java.toolchain.languageVersion = JavaLanguageVersion.of(17) +java.toolchain.languageVersion = JavaLanguageVersion.of(21) -//def MAVEN_URL = "https://maven.saps.dev/${SNAPSHOT ? "snapshots" : "releases"}" -//def MAVEN_VERSION = project.version + (SNAPSHOT ? "-SNAPSHOT" : "") runs { configureEach { @@ -51,29 +49,8 @@ configurations { runtimeClasspath.extendsFrom localRuntime } -//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 "net.neoforged:neoforge:${neoforge_full_version}" implementation "dev.latvian.mods:kubejs-neoforge:${kubejs_version}" } @@ -101,13 +78,15 @@ tasks.withType(ProcessResources).configureEach { minecraft_version : minecraft_version, neoforge_base_two : mcBase, neoforge_loader_version: neoforge_loader_version, + neoforge_full_version: neoforge_full_version, version : version, + neo_version_range: neo_version_range, kubejs_version : kubejs_version ] inputs.properties replaceProperties - filesMatching(['META-INF/mods.toml']) { + filesMatching(['META-INF/neoforge.mods.toml']) { expand replaceProperties } } @@ -122,25 +101,6 @@ idea { 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 { diff --git a/gradle.properties b/gradle.properties index e235f15..76ce0f8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,11 +2,13 @@ org.gradle.jvmargs=-Xmx2G # The MC version is used to determine the base the version for neo and the mod -minecraft_version=1.20.4 +minecraft_version=1.21.1 -neoforge_version=237 -neoforge_loader_version=2 +neoforge_version=55 +neoforge_full_version=21.1.55 +neoforge_loader_version=4 mod_version=0 +neo_version_range=[21.1.0-beta,) maven_group=pro.mikey.mods archives_base_name=kube-utils @@ -16,4 +18,4 @@ mod_author=ErrorMikey/Mikey curseforge_id=678815 modrinth_id=JHdL51WR -kubejs_version=2004.7.0-build.24 +kubejs_version=2101.7.0-build.131 diff --git a/settings.gradle b/settings.gradle index ada876e..fd1434c 100644 --- a/settings.gradle +++ b/settings.gradle @@ -8,4 +8,4 @@ pluginManagement { plugins { id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0' -} +} \ No newline at end of file diff --git a/src/main/java/pro/mikey/kubeutils/kubejs/KubeUtilsPlugin.java b/src/main/java/pro/mikey/kubeutils/kubejs/KubeUtilsPlugin.java index fa93342..c21a9f8 100644 --- a/src/main/java/pro/mikey/kubeutils/kubejs/KubeUtilsPlugin.java +++ b/src/main/java/pro/mikey/kubeutils/kubejs/KubeUtilsPlugin.java @@ -1,25 +1,25 @@ package pro.mikey.kubeutils.kubejs; -import dev.latvian.mods.kubejs.KubeJSPlugin; -import dev.latvian.mods.kubejs.script.BindingsEvent; +import dev.latvian.mods.kubejs.event.EventGroupRegistry; +import dev.latvian.mods.kubejs.plugin.ClassFilter; +import dev.latvian.mods.kubejs.plugin.KubeJSPlugin; +import dev.latvian.mods.kubejs.script.BindingRegistry; import dev.latvian.mods.kubejs.script.ScriptType; -import dev.latvian.mods.kubejs.util.ClassFilter; import pro.mikey.kubeutils.kubejs.events.KuEventsGroup; import pro.mikey.kubeutils.utils.Utils; -public class KubeUtilsPlugin extends KubeJSPlugin { +public class KubeUtilsPlugin implements KubeJSPlugin { @Override - public void registerBindings(BindingsEvent event) { - event.add("Ku", BaseBindings.class); + public void registerBindings(BindingRegistry bindings){ + bindings.add("Ku", BaseBindings.class); } @Override - public void registerEvents() { - KuEventsGroup.GROUP.register(); + public void registerEvents(EventGroupRegistry registry) { + registry.register(KuEventsGroup.GROUP); } - @Override - public void registerClasses(ScriptType type, ClassFilter filter) { + public void registerWrappers(ScriptType type, ClassFilter filter) { filter.deny(Utils.class); filter.deny(BaseBindings.class); filter.deny(KubeUtilsPlugin.class); 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 bed98ba..f2a3791 100644 --- a/src/main/java/pro/mikey/kubeutils/kubejs/events/PlayerStarterItems.java +++ b/src/main/java/pro/mikey/kubeutils/kubejs/events/PlayerStarterItems.java @@ -2,11 +2,14 @@ import dev.latvian.mods.kubejs.core.EntityKJS; import dev.latvian.mods.kubejs.event.EventResult; +import dev.latvian.mods.kubejs.event.KubeEvent; import dev.latvian.mods.kubejs.item.ItemHandlerUtils; -import dev.latvian.mods.kubejs.player.PlayerEventJS; +import dev.latvian.mods.kubejs.player.KubeJSPlayerEventHandler; +import dev.latvian.mods.rhino.Context; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; +import org.jetbrains.annotations.Nullable; import pro.mikey.kubeutils.events.KuEvents; import pro.mikey.kubeutils.kubejs.modules.PlayerKu; import pro.mikey.kubeutils.utils.Utils; @@ -32,7 +35,7 @@ * structureTemplate = level.getServer().getStructureManager().get(structureLocation); structureTemplate.ifPresent(e -> e.placeInWorld(level, spawnLocation, spawnLocation, new StructurePlaceSettings(), level.random, Block.UPDATE_ALL)); 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 88ff11f..4f9605f 100644 --- a/src/main/java/pro/mikey/kubeutils/kubejs/modules/PlayerKu.java +++ b/src/main/java/pro/mikey/kubeutils/kubejs/modules/PlayerKu.java @@ -2,11 +2,11 @@ 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; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Player; +import net.neoforged.neoforge.client.event.RenderTooltipEvent; import pro.mikey.kubeutils.kubejs.events.PlayerStarterItems; @@ -26,7 +26,7 @@ public PlayerKu(Player player) { * the {@link Component} class can offer whilst having alternative methods to display simpler text like a string. * * @see #showActionBar(String) - * @see #showActionBar(String, Color, boolean, boolean) + * * * Example * @@ -47,18 +47,19 @@ public void showActionBarComponent(Component component) { public void showActionBar(String text) { this.player.displayClientMessage(Component.literal(text), true); } - - public void showActionBar(String text, Color color, boolean bold, boolean italic) { - this.player.displayClientMessage(((ComponentKJS) ((((ComponentKJS) ((ComponentKJS) Component.literal(text)).kjs$color(color)).kjs$bold(bold)))).kjs$italic(italic), true); +/* + public void showActionBar(String text, RenderTooltipEvent.Color color, boolean bold, boolean italic) { + this.player.displayClientMessage(((ComponentKJS) ((((ComponentKJS) ((ComponentKJS) Component.literal(text)).kjs$color((KubeColor) color)).kjs$bold(bold)))).kjs$italic(italic), true); } - public void showActionBar(String text, Color color) { + public void showActionBar(String text, RenderTooltipEvent.Color color) { this.showActionBar(text, color, false, false); } - public void showActionBar(String text, Color color, boolean bold) { + public void showActionBar(String text, RenderTooltipEvent.Color color, boolean bold) { this.showActionBar(text, color, bold, false); } + */ //#endregion /** diff --git a/src/main/java/pro/mikey/kubeutils/kubejs/modules/UtilsKu.java b/src/main/java/pro/mikey/kubeutils/kubejs/modules/UtilsKu.java index 546be2d..4cf3a87 100644 --- a/src/main/java/pro/mikey/kubeutils/kubejs/modules/UtilsKu.java +++ b/src/main/java/pro/mikey/kubeutils/kubejs/modules/UtilsKu.java @@ -14,8 +14,8 @@ import net.minecraft.world.level.material.Fluids; public class UtilsKu { - private static final ResourceLocation EMPTY_LOCATION = new ResourceLocation("minecraft:empty"); - private static final ResourceLocation AIR_LOCATION = new ResourceLocation("minecraft:air"); + private static final ResourceLocation EMPTY_LOCATION = ResourceLocation.tryParse("minecraft:empty"); + private static final ResourceLocation AIR_LOCATION = ResourceLocation.tryParse("minecraft:air"); public UtilsKu() { } diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/neoforge.mods.toml similarity index 94% rename from src/main/resources/META-INF/mods.toml rename to src/main/resources/META-INF/neoforge.mods.toml index e5c345e..1b4f568 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/neoforge.mods.toml @@ -14,7 +14,7 @@ Provides extra methods and tools to the standard KubeJS mod [[dependencies.kubeutils]] modId = "neoforge" required = true -versionRange = "[${neoforge_base_two},)" +versionRange = "[${neo_version_range}" ordering = "NONE" side = "BOTH" From 8baa09fb9fe2f92b6956f9f5fc37eb222d7b2762 Mon Sep 17 00:00:00 2001 From: Saereth Date: Mon, 23 Sep 2024 12:56:42 -0700 Subject: [PATCH 2/3] added TODO for boss bar handler --- src/main/java/pro/mikey/kubeutils/kubejs/modules/PlayerKu.java | 1 + 1 file changed, 1 insertion(+) 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 4f9605f..95e6757 100644 --- a/src/main/java/pro/mikey/kubeutils/kubejs/modules/PlayerKu.java +++ b/src/main/java/pro/mikey/kubeutils/kubejs/modules/PlayerKu.java @@ -47,6 +47,7 @@ public void showActionBarComponent(Component component) { public void showActionBar(String text) { this.player.displayClientMessage(Component.literal(text), true); } + //TODO: Fix showActionBar functions to work with new KubeJS API /* public void showActionBar(String text, RenderTooltipEvent.Color color, boolean bold, boolean italic) { this.player.displayClientMessage(((ComponentKJS) ((((ComponentKJS) ((ComponentKJS) Component.literal(text)).kjs$color((KubeColor) color)).kjs$bold(bold)))).kjs$italic(italic), true); From 196615a1fb4e653db4d0ca83cc7a8d19842960f8 Mon Sep 17 00:00:00 2001 From: Michael Hillcox Date: Wed, 25 Sep 2024 10:52:06 +0100 Subject: [PATCH 3/3] fix: minor things for the port --- CHANGELOG.md | 4 ++-- build.gradle | 3 ++- src/main/java/pro/mikey/kubeutils/KubeUtils.java | 5 +++++ .../mikey/kubeutils/kubejs/modules/LevelKu.java | 5 ++++- .../mikey/kubeutils/kubejs/modules/PlayerKu.java | 14 ++++++-------- .../mikey/kubeutils/kubejs/modules/UtilsKu.java | 4 ++-- src/main/resources/META-INF/neoforge.mods.toml | 2 +- 7 files changed, 22 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d07234..63791b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Kube Utils Changelog -## [20.4.0] +## [21.1.0] ### Changed -- Updated to 1.20.4 +- Updated to 1.21.1 thanks to [@Saereth](https://github.com/Saereth) diff --git a/build.gradle b/build.gradle index ca4205b..672b7ac 100644 --- a/build.gradle +++ b/build.gradle @@ -59,9 +59,10 @@ repositories { maven { name = "Kubejs" - url "https://maven.saps.dev/minecraft" + url "https://maven.latvian.dev/releases" content { includeGroup "dev.latvian.mods" + includeGroup "dev.latvian.apps" } } diff --git a/src/main/java/pro/mikey/kubeutils/KubeUtils.java b/src/main/java/pro/mikey/kubeutils/KubeUtils.java index 4cc3498..fda0720 100644 --- a/src/main/java/pro/mikey/kubeutils/KubeUtils.java +++ b/src/main/java/pro/mikey/kubeutils/KubeUtils.java @@ -1,5 +1,6 @@ package pro.mikey.kubeutils; +import net.minecraft.resources.ResourceLocation; import net.neoforged.fml.common.Mod; import net.neoforged.neoforge.common.NeoForge; import org.apache.logging.log4j.LogManager; @@ -19,4 +20,8 @@ public KubeUtils() { public static String getId() { return MOD_ID; } + + public static ResourceLocation id(String path) { + return ResourceLocation.fromNamespaceAndPath(MOD_ID, path); + } } 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 6c53cd3..e63d943 100644 --- a/src/main/java/pro/mikey/kubeutils/kubejs/modules/LevelKu.java +++ b/src/main/java/pro/mikey/kubeutils/kubejs/modules/LevelKu.java @@ -24,7 +24,7 @@ import java.util.function.Predicate; public class LevelKu { - private static final ResourceLocation UNKNOWN = ResourceLocation.tryParse(KubeUtils.getId() + ":unknown"); + private static final ResourceLocation UNKNOWN = KubeUtils.id("unknown"); private final ServerLevel level; public LevelKu(ServerLevel level) { @@ -40,6 +40,9 @@ public LevelKu(ServerLevel level) { */ public void spawnStructure(String structureFile, BlockPos spawnLocation) { ResourceLocation structureLocation = ResourceLocation.tryParse(structureFile); + if (structureLocation == null) { + return; + } Optional structureTemplate = level.getServer().getStructureManager().get(structureLocation); structureTemplate.ifPresent(e -> e.placeInWorld(level, spawnLocation, spawnLocation, new StructurePlaceSettings(), level.random, Block.UPDATE_ALL)); 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 95e6757..eeae6fb 100644 --- a/src/main/java/pro/mikey/kubeutils/kubejs/modules/PlayerKu.java +++ b/src/main/java/pro/mikey/kubeutils/kubejs/modules/PlayerKu.java @@ -1,12 +1,12 @@ package pro.mikey.kubeutils.kubejs.modules; +import dev.latvian.mods.kubejs.color.Color; import dev.latvian.mods.kubejs.core.ComponentKJS; import dev.latvian.mods.kubejs.core.EntityKJS; import net.minecraft.client.player.LocalPlayer; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Player; -import net.neoforged.neoforge.client.event.RenderTooltipEvent; import pro.mikey.kubeutils.kubejs.events.PlayerStarterItems; @@ -47,20 +47,18 @@ public void showActionBarComponent(Component component) { public void showActionBar(String text) { this.player.displayClientMessage(Component.literal(text), true); } - //TODO: Fix showActionBar functions to work with new KubeJS API -/* - public void showActionBar(String text, RenderTooltipEvent.Color color, boolean bold, boolean italic) { - this.player.displayClientMessage(((ComponentKJS) ((((ComponentKJS) ((ComponentKJS) Component.literal(text)).kjs$color((KubeColor) color)).kjs$bold(bold)))).kjs$italic(italic), true); + + public void showActionBar(String text, Color color, boolean bold, boolean italic) { + this.player.displayClientMessage(((ComponentKJS) ((((ComponentKJS) ((ComponentKJS) Component.literal(text)).kjs$color(color)).kjs$bold(bold)))).kjs$italic(italic), true); } - public void showActionBar(String text, RenderTooltipEvent.Color color) { + public void showActionBar(String text, Color color) { this.showActionBar(text, color, false, false); } - public void showActionBar(String text, RenderTooltipEvent.Color color, boolean bold) { + public void showActionBar(String text, Color color, boolean bold) { this.showActionBar(text, color, bold, false); } - */ //#endregion /** diff --git a/src/main/java/pro/mikey/kubeutils/kubejs/modules/UtilsKu.java b/src/main/java/pro/mikey/kubeutils/kubejs/modules/UtilsKu.java index 4cf3a87..e71d340 100644 --- a/src/main/java/pro/mikey/kubeutils/kubejs/modules/UtilsKu.java +++ b/src/main/java/pro/mikey/kubeutils/kubejs/modules/UtilsKu.java @@ -14,8 +14,8 @@ import net.minecraft.world.level.material.Fluids; public class UtilsKu { - private static final ResourceLocation EMPTY_LOCATION = ResourceLocation.tryParse("minecraft:empty"); - private static final ResourceLocation AIR_LOCATION = ResourceLocation.tryParse("minecraft:air"); + private static final ResourceLocation EMPTY_LOCATION = ResourceLocation.withDefaultNamespace("empty"); + private static final ResourceLocation AIR_LOCATION = ResourceLocation.withDefaultNamespace("air"); public UtilsKu() { } diff --git a/src/main/resources/META-INF/neoforge.mods.toml b/src/main/resources/META-INF/neoforge.mods.toml index 1b4f568..e5c345e 100644 --- a/src/main/resources/META-INF/neoforge.mods.toml +++ b/src/main/resources/META-INF/neoforge.mods.toml @@ -14,7 +14,7 @@ Provides extra methods and tools to the standard KubeJS mod [[dependencies.kubeutils]] modId = "neoforge" required = true -versionRange = "[${neo_version_range}" +versionRange = "[${neoforge_base_two},)" ordering = "NONE" side = "BOTH"