From 4b905c710d65ce50516a02cf3808269e8f493b0b Mon Sep 17 00:00:00 2001 From: shedaniel Date: Thu, 16 Jun 2022 23:06:03 +0800 Subject: Add acceptsNull() in EntryDefinition --- .../java/me/shedaniel/rei/impl/common/entry/TypedEntryStack.java | 5 +++++ .../me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java | 5 +++++ .../me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java | 5 +++++ 3 files changed, 15 insertions(+) (limited to 'runtime/src') diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/TypedEntryStack.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/TypedEntryStack.java index 7112af245..5d159d79b 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/TypedEntryStack.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/TypedEntryStack.java @@ -34,6 +34,11 @@ public class TypedEntryStack extends AbstractEntryStack { public TypedEntryStack(EntryDefinition definition, T value) { this.definition = definition; this.value = value; + if (!definition.acceptsNull()) { + if (value == null) { + throw new IllegalArgumentException("Value cannot be null for " + definition.getType().getId()); + } + } } @Override diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java b/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java index 5bdfec4c1..ce7061d3e 100644 --- a/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java +++ b/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java @@ -179,6 +179,11 @@ public class FluidEntryDefinition implements EntryDefinition, EntryS return true; } + @Override + public boolean acceptsNull() { + return false; + } + @Override public CompoundTag save(EntryStack entry, FluidStack value) { return value.write(new CompoundTag()); diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java b/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java index bb53ba44b..7728a55a2 100644 --- a/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java +++ b/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java @@ -169,6 +169,11 @@ public class ItemEntryDefinition implements EntryDefinition, EntrySer return true; } + @Override + public boolean acceptsNull() { + return false; + } + @Override public CompoundTag save(EntryStack entry, ItemStack value) { return value.save(new CompoundTag()); -- cgit