From c22c7b991afa5619b73653a0b64fc8e3b62b9be7 Mon Sep 17 00:00:00 2001 From: gnembon Date: Sun, 19 Jul 2020 02:18:36 -0300 Subject: [PATCH] adjusting to 1.16 --- .../java/carpet/script/CarpetExpression.java | 3 +- .../carpet/script/value/ValueConversions.java | 37 +++++++++++++------ 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/src/main/java/carpet/script/CarpetExpression.java b/src/main/java/carpet/script/CarpetExpression.java index 87edea50..ee72e8ed 100644 --- a/src/main/java/carpet/script/CarpetExpression.java +++ b/src/main/java/carpet/script/CarpetExpression.java @@ -39,6 +39,7 @@ import carpet.script.value.NumericValue; import carpet.script.value.StringValue; import carpet.script.value.ThreadValue; import carpet.script.value.Value; +import carpet.script.value.ValueConversions; import carpet.utils.BlockInfo; import carpet.utils.Messenger; import carpet.utils.SpawnReporter; @@ -3230,7 +3231,7 @@ public class CarpetExpression this.expr.addLazyFunction("current_dimension", 0, (c, t, lv) -> { ServerCommandSource s = ((CarpetContext)c).s; - Value retval = new StringValue(NBTSerializableValue.nameFromRegistryId(s.getWorld().getRegistryKey().getValue())); // getDImensionType + Value retval = ValueConversions.dimName(s.getWorld()); return (cc, tt) -> retval; }); diff --git a/src/main/java/carpet/script/value/ValueConversions.java b/src/main/java/carpet/script/value/ValueConversions.java index eaa16379..4baaa0a2 100644 --- a/src/main/java/carpet/script/value/ValueConversions.java +++ b/src/main/java/carpet/script/value/ValueConversions.java @@ -7,17 +7,19 @@ import net.minecraft.entity.ai.pathing.Path; import net.minecraft.entity.ai.pathing.PathNode; import net.minecraft.entity.damage.DamageSource; import net.minecraft.server.world.ServerWorld; -import net.minecraft.util.GlobalPos; + import net.minecraft.util.Identifier; -import net.minecraft.util.Timestamp; + +import net.minecraft.util.dynamic.GlobalPos; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.dimension.DimensionType; +import net.minecraft.util.registry.RegistryKey; +import net.minecraft.world.World; import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.Set; +import java.util.UUID; import java.util.stream.Collectors; public class ValueConversions @@ -29,12 +31,12 @@ public class ValueConversions public static Value dimName(ServerWorld world) { - return ofId(Registry.DIMENSION_TYPE.getId(world.getDimension().getType())); + return ofId(world.getRegistryKey().getValue()); } - public static Value dimName(DimensionType dim) + public static Value dimName(RegistryKey dim) { - return ofId(Registry.DIMENSION_TYPE.getId(dim)); + return ofId(dim.getValue()); } public static Value ofId(Identifier id) @@ -83,13 +85,17 @@ public class ValueConversions { return new BlockValue(null, (ServerWorld) e.getEntityWorld(), (BlockPos) v); }; - if (v instanceof Timestamp) + if (v instanceof Number) { - return new NumericValue(((Timestamp) v).getTime()); + return new NumericValue(((Number) v).doubleValue()); } - if (v instanceof Long) + if (v instanceof Boolean) { - return new NumericValue((Long)v); + return new NumericValue((Boolean) v); + } + if (v instanceof UUID) + { + return ofUUID( (ServerWorld) e.getEntityWorld(), (UUID)v); } if (v instanceof DamageSource) { @@ -135,4 +141,13 @@ public class ValueConversions } return Value.NULL; } + + private static Value ofUUID(ServerWorld entityWorld, UUID uuid) + { + Entity current = entityWorld.getEntity(uuid); + return ListValue.of( + current == null?Value.NULL:new EntityValue(current), + new StringValue(uuid.toString()) + ); + } }