Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

(1.16.5 MCP) sittable blocks error


ElTotisPro50
 Share

Recommended Posts

so i watched this tutorial on youtube(https://www.youtube.com/watch?v=vZgYjHwKcHA&t=691s) for make sittable blocks and even if is a 1,12,2 tutorial video a kind of translated it to 1.16.5 code but is not working "correctly";

the SeatEntity spawns in MY position and not in the position of the chair, and it blocks me the mouse movement in Y, and i can't shift for exit the chair, i can break blocks but my hand is kind of freeze in time (https://imgur.com/a/6xoKrV5)

 

this is my code: 

@SubscribeEvent
    public static void test(PlayerInteractEvent.RightClickBlock event)
    {
        PlayerEntity player = event.getPlayer();
        if(player.getRidingEntity() != null)
        {
            return;
        }
        World world = event.getWorld();
        BlockPos pos = event.getPos();
        Vector3d vec = new Vector3d(pos.getX() + 0.5f,pos.getY(), pos.getZ() + 0.5f);
        double maxDistance = 4.5D;
        if((vec.x - player.getPosX()) * (vec.x - player.getPosX()) + (vec.y - player.getPosY()) * (vec.y - player.getPosY()) + (vec.z - player.getPosZ()) * (vec.z - player.getPosZ()) > maxDistance * maxDistance)
        {
            return;
        }
        BlockState state = world.getBlockState(pos);
        ItemStack mainStack = player.getHeldItemMainhand();
        ItemStack offStack = player.getHeldItemOffhand();
        if(!mainStack.isEmpty() || !offStack.isEmpty())
        {
            return;
        }
        if(state.getBlock() instanceof StairsBlock)
        {
            //List<SeatStair> seats = world.getEntitiesWithinAABB(SeatStair.class, new AxisAlignedBB(pos,pos.add(1,1,1)));
            SeatStair seat = new SeatStair(EntityType.ARMOR_STAND,world,pos);
            world.addEntity(seat);
            player.startRiding(seat);
        }
    }

    public static class SeatStair extends Entity
    {
        public SeatStair(EntityType<QUESTIONMARK extends Entity> type, World world, BlockPos pos)
        {
            super(type,world);
            setPosition(pos.getX() + 0.5D,pos.getY() + 0.2D,pos.getZ() + 0.5D);
        }

        @Override
        protected void registerData() {

        }

        @Override
        public void tick() {
            super.tick();
            BlockPos pos = getPosition();
            if(!(getEntityWorld().getBlockState(pos).getBlock() instanceof StairsBlock))
            {
                setDead();
                return;
            }
            List<Entity> passengers = getPassengers();
            if(passengers.isEmpty())
            {
                setDead();
            }
            for(Entity entity : passengers)
            {
                if(entity.isSneaking())
                {
                    setDead();
                }
            }
        }

        @Override
        protected void readAdditional(CompoundNBT compound) {

        }

        @Override
        protected void writeAdditional(CompoundNBT compound) {

        }

        @Override
        public IPacket<QUESTIONMARK> createSpawnPacket() {
            return null;
        }
    }

 

Link to comment
Share on other sites

Every time you post you post in the wrong subforum and I have to move your thread. Please take the hint.

41 minutes ago, ElTotisPro50 said:
        @Override
        public IPacket<QUESTIONMARK> createSpawnPacket() {
            return null;
        }

This is broken. You must not return null from this method. Use NetworkHooks.getEntitySpawningPacket.

You must also only spawn your entity and start riding it on the server.

Link to comment
Share on other sites

4 hours ago, diesieben07 said:

Every time you post you post in the wrong subforum and I have to move your thread. Please take the hint.

This is broken. You must not return null from this method. Use NetworkHooks.getEntitySpawningPacket.

You must also only spawn your entity and start riding it on the server.

thank you it worked, but 2 things, tell me where i have tu pubish my posts, i publish them in modder support isnt that right?

 

and Diesieben how do you quickly find how to solve modding errors, i can do it but if i create my own program or something but im minecraft modding, what goes through your mind to solve those problems?

for example i still cant solve my problem with drawing correctly a glowing line even if i look the minecraft classes :(

 

Link to comment
Share on other sites

2 hours ago, ElTotisPro50 said:

i publish them in modder support isnt that right?

Yeah that's the correct Forum

2 hours ago, ElTotisPro50 said:

and Diesieben how do you quickly find how to solve modding errors, i can do it but if i create my own program or something but im minecraft modding, what goes through your mind to solve those problems?

Experience (a lot since he join 2012) and knowledge from other threads with similar problems

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.