From 695b5699772c2d7967832ae8a6e06958000bec67 Mon Sep 17 00:00:00 2001 From: gnembon Date: Sun, 6 Feb 2022 00:18:42 +0100 Subject: [PATCH] remove instanceof NullValues fixes #1313 --- .../java/carpet/script/api/Auxiliary.java | 2 +- .../java/carpet/script/api/Inventories.java | 4 ++-- .../java/carpet/script/api/Scoreboards.java | 2 +- .../java/carpet/script/api/WorldAccess.java | 6 ++--- .../carpet/script/argument/BlockArgument.java | 4 ++-- src/main/java/carpet/script/language/Sys.java | 6 ++--- .../java/carpet/script/value/EntityValue.java | 4 ++-- .../script/value/FormattedTextValue.java | 4 ++-- .../script/value/NBTSerializableValue.java | 2 +- .../java/carpet/script/value/NullValue.java | 8 +++++-- .../carpet/script/value/NumericValue.java | 23 ++++++++++--------- 11 files changed, 35 insertions(+), 30 deletions(-) diff --git a/src/main/java/carpet/script/api/Auxiliary.java b/src/main/java/carpet/script/api/Auxiliary.java index 8d37f78f..b342e244 100644 --- a/src/main/java/carpet/script/api/Auxiliary.java +++ b/src/main/java/carpet/script/api/Auxiliary.java @@ -361,7 +361,7 @@ public class Auxiliary { try { Value nameValue = lv.get(0); - name = nameValue instanceof NullValue ? "" : nameValue.getString(); + name = nameValue.isNull() ? "" : nameValue.getString(); pointLocator = Vector3Argument.findIn(lv, 1, true, false); if (lv.size()>pointLocator.offset) { diff --git a/src/main/java/carpet/script/api/Inventories.java b/src/main/java/carpet/script/api/Inventories.java index 91d029e6..5698000b 100644 --- a/src/main/java/carpet/script/api/Inventories.java +++ b/src/main/java/carpet/script/api/Inventories.java @@ -248,7 +248,7 @@ public class Inventories { Value nbtValue = lv.get(inventoryLocator.offset()+3); if (nbtValue instanceof NBTSerializableValue) nbt = ((NBTSerializableValue)nbtValue).getCompoundTag(); - else if (nbtValue instanceof NullValue) + else if (nbtValue.isNull()) nbt = null; else nbt = new NBTSerializableValue(nbtValue.getString()).getCompoundTag(); @@ -277,7 +277,7 @@ public class Inventories { if (lv.size() > inventoryLocator.offset()) { Value secondArg = lv.get(inventoryLocator.offset()+0); - if (!(secondArg instanceof NullValue)) + if (!secondArg.isNull()) itemArg = NBTSerializableValue.parseItem(secondArg.getString()); } int startIndex = 0; diff --git a/src/main/java/carpet/script/api/Scoreboards.java b/src/main/java/carpet/script/api/Scoreboards.java index 51af6ab5..25ceb803 100644 --- a/src/main/java/carpet/script/api/Scoreboards.java +++ b/src/main/java/carpet/script/api/Scoreboards.java @@ -231,7 +231,7 @@ public class Scoreboards { int slot = Scoreboard.getDisplaySlotByName(location); if (slot < 0) throw new InternalExpressionException("Invalid objective slot: "+location); Value target = lv.get(1); - if (target instanceof NullValue) + if (target.isNull()) { scoreboard.setDisplayObjective(slot, null); return new NumericValue(slot); diff --git a/src/main/java/carpet/script/api/WorldAccess.java b/src/main/java/carpet/script/api/WorldAccess.java index 8f54e8d0..e2936411 100644 --- a/src/main/java/carpet/script/api/WorldAccess.java +++ b/src/main/java/carpet/script/api/WorldAccess.java @@ -820,7 +820,7 @@ public class WorldAccess { { if (!playerBreak) throw new InternalExpressionException("tag is not necessary with 'destroy' with no item"); Value tagValue = lv.get(locator.offset+1); - if (tagValue instanceof NullValue) + if (tagValue.isNull()) tag = null; else if (tagValue instanceof NBTSerializableValue) tag = ((NBTSerializableValue) tagValue).getCompoundTag(); @@ -1294,7 +1294,7 @@ public class WorldAccess { if (lv.size() > locator.offset) { Value requested = lv.get(locator.offset+0); - if (!(requested instanceof NullValue)) + if (!requested.isNull()) { String reqString = requested.getString(); structure = Registry.STRUCTURE_FEATURE.getOptional(InputValidator.identifierOf(reqString)) @@ -1389,7 +1389,7 @@ public class WorldAccess { return; } Value newValue = lv.get(locator.offset+1); - if (newValue instanceof NullValue) // remove structure + if (newValue.isNull()) // remove structure { StructureFeature structure = configuredStructure.feature; if (!structures.containsKey(structure)) diff --git a/src/main/java/carpet/script/argument/BlockArgument.java b/src/main/java/carpet/script/argument/BlockArgument.java index 4d9b2a23..8ed7b293 100644 --- a/src/main/java/carpet/script/argument/BlockArgument.java +++ b/src/main/java/carpet/script/argument/BlockArgument.java @@ -51,7 +51,7 @@ public class BlockArgument extends Argument { Value v1 = params.next(); //add conditional from string name - if (optional && v1 instanceof NullValue) + if (optional && v1.isNull()) { return new BlockArgument(null, 1 + offset); } @@ -105,7 +105,7 @@ public class BlockArgument extends Argument { Value v1 = params.get(0 + offset); //add conditional from string name - if (optional && v1 instanceof NullValue) + if (optional && v1.isNull()) { return new BlockArgument(null, 1+offset); } diff --git a/src/main/java/carpet/script/language/Sys.java b/src/main/java/carpet/script/language/Sys.java index 88ae3888..6b9bd038 100644 --- a/src/main/java/carpet/script/language/Sys.java +++ b/src/main/java/carpet/script/language/Sys.java @@ -241,8 +241,8 @@ public class Sys { double result; - if (z instanceof NullValue) - if (y instanceof NullValue) + if (z.isNull()) + if (y.isNull()) result = sampler.sample1d(NumericValue.asNumber(x).getDouble()); else result = sampler.sample2d(NumericValue.asNumber(x).getDouble(), NumericValue.asNumber(y).getDouble()); @@ -279,7 +279,7 @@ public class Sys { } double result; - if (z instanceof NullValue) + if (z.isNull()) result = sampler.sample2d(NumericValue.asNumber(x).getDouble(), NumericValue.asNumber(y).getDouble()); else result = sampler.sample3d( diff --git a/src/main/java/carpet/script/value/EntityValue.java b/src/main/java/carpet/script/value/EntityValue.java index 1a789d03..1c74c9df 100644 --- a/src/main/java/carpet/script/value/EntityValue.java +++ b/src/main/java/carpet/script/value/EntityValue.java @@ -1231,7 +1231,7 @@ public class EntityValue extends Value }); put("custom_name", (e, v) -> { - if (v instanceof NullValue) + if (v.isNull()) { e.setCustomNameVisible(false); e.setCustomName(null); @@ -1326,7 +1326,7 @@ public class EntityValue extends Value PathfinderMob ec = (PathfinderMob)e; if (v == null) throw new InternalExpressionException("'home' requires at least one position argument, and optional distance, or null to cancel"); - if (v instanceof NullValue) + if (v.isNull()) { ec.restrictTo(BlockPos.ZERO, -1); Map tasks = ((MobEntityInterface)ec).getTemporaryTasks(); diff --git a/src/main/java/carpet/script/value/FormattedTextValue.java b/src/main/java/carpet/script/value/FormattedTextValue.java index 0b04bf86..a353f977 100644 --- a/src/main/java/carpet/script/value/FormattedTextValue.java +++ b/src/main/java/carpet/script/value/FormattedTextValue.java @@ -24,7 +24,7 @@ public class FormattedTextValue extends StringValue } else { - if (left instanceof NullValue) + if (left.isNull()) return right; text = new TextComponent(left.getString()); } @@ -36,7 +36,7 @@ public class FormattedTextValue extends StringValue } else { - if (right instanceof NullValue) + if (right.isNull()) return left; text.append(right.getString()); return new FormattedTextValue(text); diff --git a/src/main/java/carpet/script/value/NBTSerializableValue.java b/src/main/java/carpet/script/value/NBTSerializableValue.java index 353a533a..49aedff6 100644 --- a/src/main/java/carpet/script/value/NBTSerializableValue.java +++ b/src/main/java/carpet/script/value/NBTSerializableValue.java @@ -389,7 +389,7 @@ public class NBTSerializableValue extends Value implements ContainerValueInterfa { if (v instanceof NBTSerializableValue) return v; - if (v instanceof NullValue) + if (v.isNull()) return Value.NULL; return NBTSerializableValue.parseString(v.getString(), true); } diff --git a/src/main/java/carpet/script/value/NullValue.java b/src/main/java/carpet/script/value/NullValue.java index 8e813f8b..9d68f02e 100644 --- a/src/main/java/carpet/script/value/NullValue.java +++ b/src/main/java/carpet/script/value/NullValue.java @@ -37,7 +37,11 @@ public class NullValue extends NumericValue // TODO check nonsingleton code @Override public boolean equals(final Object o) { - return o instanceof NullValue; + if (o instanceof Value value) + { + return value.isNull(); + } + return false; } @Override @@ -58,7 +62,7 @@ public class NullValue extends NumericValue // TODO check nonsingleton code @Override public int compareTo(Value o) { - return o instanceof NullValue ? 0 : -1; + return o.isNull() ? 0 : -1; } @Override diff --git a/src/main/java/carpet/script/value/NumericValue.java b/src/main/java/carpet/script/value/NumericValue.java index 09a6f98a..2c4635e1 100644 --- a/src/main/java/carpet/script/value/NumericValue.java +++ b/src/main/java/carpet/script/value/NumericValue.java @@ -172,7 +172,7 @@ public class NumericValue extends Value @Override public int compareTo(Value o) { - if (o instanceof NullValue) + if (o.isNull()) { return -o.compareTo(this); } @@ -187,17 +187,18 @@ public class NumericValue extends Value @Override public boolean equals(Object o) { - if (o instanceof NullValue) - { - return o.equals(this); + if (o instanceof Value value) { + if (value.isNull()) { + return o.equals(this); + } + if (o instanceof NumericValue no) { + if (longValue != null && no.longValue != null) + return longValue.equals(no.longValue); + return !this.subtract(no).getBoolean(); + } + return super.equals(o); } - if (o instanceof NumericValue no) - { - if (longValue != null && no.longValue != null) - return longValue.equals(no.longValue); - return !this.subtract(no).getBoolean(); - } - return super.equals(o); + return false; } public NumericValue(double value)