From 652ca7d6a0ca9377f87f1c2b915bb40ccb3f1b11 Mon Sep 17 00:00:00 2001 From: gnembon Date: Tue, 31 Mar 2020 21:04:09 -0300 Subject: [PATCH] spawning illegal entities with perimetercheck, fixes #194 --- src/main/java/carpet/commands/PerimeterInfoCommand.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/carpet/commands/PerimeterInfoCommand.java b/src/main/java/carpet/commands/PerimeterInfoCommand.java index 06760f38..27b80b45 100644 --- a/src/main/java/carpet/commands/PerimeterInfoCommand.java +++ b/src/main/java/carpet/commands/PerimeterInfoCommand.java @@ -7,6 +7,7 @@ import carpet.utils.PerimeterDiagnostics; import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import net.minecraft.command.suggestion.SuggestionProviders; +import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; import net.minecraft.entity.mob.MobEntity; import net.minecraft.server.command.ServerCommandSource; @@ -51,15 +52,17 @@ public class PerimeterInfoCommand if (mobId != null) { nbttagcompound.putString("id", mobId); - entityliving = (MobEntity) EntityType.loadEntityWithPassengers(nbttagcompound, source.getWorld(), (entity_1x) -> { + Entity baseEntity = EntityType.loadEntityWithPassengers(nbttagcompound, source.getWorld(), (entity_1x) -> { entity_1x.refreshPositionAndAngles(pos.offset(Direction.UP,2), entity_1x.yaw, entity_1x.pitch); return !source.getWorld().tryLoadEntity(entity_1x) ? null : entity_1x; }); - if (entityliving == null) + if (!(baseEntity instanceof MobEntity)) { Messenger.m(source, "r Failed to spawn test entity"); + if (baseEntity != null) baseEntity.remove(); return 0; } + entityliving = (MobEntity) baseEntity; } PerimeterDiagnostics.Result res = PerimeterDiagnostics.countSpots(source.getWorld(), pos, entityliving);