fix class predicate emitter

This commit is contained in:
Lulu13022002 2025-04-18 17:19:23 +02:00
parent 2d5e052842
commit 3e8067faab
No known key found for this signature in database
GPG Key ID: 491C8F0B8ACDEB01

View File

@ -57,7 +57,11 @@ public class CraftItemMetasRewriter extends SearchReplaceRewriter {
break; break;
case ItemMetaMapping.ItemPredicate.IsClassPredicate isClassPredicate: { case ItemMetaMapping.ItemPredicate.IsClassPredicate isClassPredicate: {
String itemLikeName = isClassPredicate.againstBlock() ? "blockHandle" : "itemHandle"; String itemLikeName = isClassPredicate.againstBlock() ? "blockHandle" : "itemHandle";
builder.append("(%1$s != null && %1$s.getClass().equals(%2$s))".formatted(itemLikeName, this.importCollector.getShortName(isClassPredicate.value()))); if (itemLikeName.equals("itemHandle")) { // itemHandle is never null
builder.append("%s.getClass().equals(%s.class)".formatted(itemLikeName, this.importCollector.getShortName(isClassPredicate.value())));
} else {
builder.append("(%1$s != null && %1$s.getClass().equals(%2$s.class))".formatted(itemLikeName, this.importCollector.getShortName(isClassPredicate.value())));
}
break; break;
} }
case ItemMetaMapping.ItemPredicate.InstanceOfPredicate instanceOfPredicate: { case ItemMetaMapping.ItemPredicate.InstanceOfPredicate instanceOfPredicate: {