Syconn Posted February 17, 2021 Posted February 17, 2021 Hello I am trying to find all the chest in a 15x15x15 area and then plug them into a list, to store but when I print them into console it some completely different cords. public class MessageGetItems implements IMessage<MessageGetItems> { public MessageGetItems() { } @Override public void encode(MessageGetItems message, PacketBuffer buffer) { } @Override public MessageGetItems decode(PacketBuffer buffer) { return new MessageGetItems(); } @Override public void handle(MessageGetItems message, Supplier<NetworkEvent.Context> supplier) { supplier.get().enqueueWork(() -> { ServerPlayerEntity player = supplier.get().getSender(); if (player != null){ ServerWorld world = player.getServerWorld(); DroneEntity drone = null; List<DroneEntity> droneEntities = world.getEntitiesWithinAABB(ModEntities.DRONE, player.getBoundingBox().grow(20), drones -> drones.isTamed() && drones.getOwnerId() != null && drones.getOwnerId().equals(player.getUniqueID())); drone = droneEntities.stream().min(Comparator.comparing(player::getDistance)).orElse(null); BlockPos chests = null; for (BlockPos pos : BlockPos.getAllInBoxMutable(getArea(player).minX, getArea(player).minY, getArea(player).minZ, getArea(player).maxX, getArea(player).maxY, getArea(player).maxZ)) { if (getStorage(pos, world) != null) { chests = pos; } } if (!drone.findChests().isEmpty()) { System.out.println(chests); return; } else player.sendMessage(new TranslationTextComponent(TextFormatting.RED + "There are mo nearby chest"), ChatType.GAME_INFO); } }); supplier.get().setPacketHandled(true); } private TileEntity getStorage(BlockPos pos, ServerWorld world) { TileEntity tileEntity = world.getTileEntity(pos); if(tileEntity instanceof IInventory) { return tileEntity; } return null; } private MutableBoundingBox getArea(PlayerEntity player) { int distanceForChest = 15; return new MutableBoundingBox((int) player.getPosX() - distanceForChest, (int) player.getPosY() - distanceForChest, (int) player.getPosZ() - distanceForChest, (int) player.getPosX() + distanceForChest, (int) player.getPosY() + distanceForChest, (int) player.getPosZ() + distanceForChest); } } and I see this Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.