From 4b8778cbe750934ea0f2c48ed26680149a2cda05 Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Thu, 8 Aug 2024 23:00:12 -0700 Subject: [PATCH] Class check EnumPropertyMixin#getIdFor This should prevent invalid usages with the wrong enum type. --- .../mixin/blockstate_propertyaccess/EnumPropertyMixin.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/ca/spottedleaf/moonrise/mixin/blockstate_propertyaccess/EnumPropertyMixin.java b/src/main/java/ca/spottedleaf/moonrise/mixin/blockstate_propertyaccess/EnumPropertyMixin.java index 2edc48a..f866831 100644 --- a/src/main/java/ca/spottedleaf/moonrise/mixin/blockstate_propertyaccess/EnumPropertyMixin.java +++ b/src/main/java/ca/spottedleaf/moonrise/mixin/blockstate_propertyaccess/EnumPropertyMixin.java @@ -52,6 +52,7 @@ abstract class EnumPropertyMixin & StringRepresentable> extend @Override public final int moonrise$getIdFor(final T value) { - return this.idLookupTable[value.ordinal()]; + final Class target = this.getValueClass(); + return ((value.getClass() != target && value.getDeclaringClass() != target)) ? -1 : this.idLookupTable[value.ordinal()]; } }