diff --git a/src/main/java/dev/latvian/mods/kubejs/neoforge/NativeEventListeners.java b/src/main/java/dev/latvian/mods/kubejs/neoforge/NativeEventListeners.java index 917e3b653..4b5f7a253 100644 --- a/src/main/java/dev/latvian/mods/kubejs/neoforge/NativeEventListeners.java +++ b/src/main/java/dev/latvian/mods/kubejs/neoforge/NativeEventListeners.java @@ -1,6 +1,5 @@ package dev.latvian.mods.kubejs.neoforge; -import dev.latvian.mods.rhino.type.TypeInfo; import net.neoforged.bus.api.Event; import net.neoforged.bus.api.EventPriority; @@ -9,8 +8,6 @@ import java.util.function.Consumer; public class NativeEventListeners implements Consumer { - public static final TypeInfo EVENT_CONSUMER_TYPE = TypeInfo.RAW_CONSUMER.withParams(TypeInfo.of(Event.class)); - public record Key(Class eventClass, EventPriority priority) { @Override public boolean equals(Object o) { diff --git a/src/main/java/dev/latvian/mods/kubejs/neoforge/NativeEventWrapper.java b/src/main/java/dev/latvian/mods/kubejs/neoforge/NativeEventWrapper.java index 2767e1d20..b40ae1c8c 100644 --- a/src/main/java/dev/latvian/mods/kubejs/neoforge/NativeEventWrapper.java +++ b/src/main/java/dev/latvian/mods/kubejs/neoforge/NativeEventWrapper.java @@ -41,6 +41,6 @@ static void onEvent(Context cx, EventPriority priority, Class eventClass, Con bus.addListener(priority, false, (Class) eventClass, listeners); } - listeners.listeners.add((Consumer) cx.jsToJava(consumer, NativeEventListeners.EVENT_CONSUMER_TYPE)); + listeners.listeners.add(consumer); } } diff --git a/src/main/java/dev/latvian/mods/kubejs/recipe/special/ShapedKubeJSRecipe.java b/src/main/java/dev/latvian/mods/kubejs/recipe/special/ShapedKubeJSRecipe.java index 529b810f0..c27a7f930 100644 --- a/src/main/java/dev/latvian/mods/kubejs/recipe/special/ShapedKubeJSRecipe.java +++ b/src/main/java/dev/latvian/mods/kubejs/recipe/special/ShapedKubeJSRecipe.java @@ -15,7 +15,6 @@ import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.item.crafting.ShapedRecipe; import net.minecraft.world.item.crafting.ShapedRecipePattern; -import net.minecraft.world.level.Level; import java.util.List; @@ -31,6 +30,10 @@ public ShapedKubeJSRecipe(String group, CraftingBookCategory category, ShapedRec this.ingredientActions = ingredientActions; this.modifyResult = modifyResult; this.stage = stage; + + if (!mirror) { + this.pattern.symmetrical = true; + } } @Override @@ -67,15 +70,8 @@ public ItemStack assemble(CraftingInput input, HolderLookup.Provider registryAcc return kjs$assemble(input, registryAccess); } - @Override - public boolean matches(CraftingInput input, Level level) { - // FIXME: mirror - return pattern.matches(input); - } - public static class SerializerKJS implements RecipeSerializer { - // TODO: this is still a bit of a mess public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( // manually copied from the shaped recipe codec // (would be nice if we could just swap out specifically the pattern codec from the underlying codec) diff --git a/src/main/resources/kubejs.accesswidener b/src/main/resources/kubejs.accesswidener index 6a491b767..4f041152e 100644 --- a/src/main/resources/kubejs.accesswidener +++ b/src/main/resources/kubejs.accesswidener @@ -18,6 +18,8 @@ accessible field net/minecraft/tags/TagEntry tag Z accessible field net/minecraft/world/item/crafting/ShapelessRecipe$Serializer CODEC Lcom/mojang/serialization/MapCodec; # accessible field net/minecraft/world/item/crafting/ShapedRecipe$Serializer CODEC Lcom/mojang/serialization/MapCodec; +accessible field net/minecraft/world/item/crafting/ShapedRecipePattern symmetrical Z +mutable field net/minecraft/world/item/crafting/ShapedRecipePattern symmetrical Z # attributes accessible class net/minecraft/world/effect/MobEffect$AttributeTemplate