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

Teleport player in same direction as where he looks


Recommended Posts

Hello I am a beginner minecraft modder i have some issues when trying to add a right click functionality to my sword. The problem is that no matter what i have tried i cannot get my minecraft character to move in the direction he was facing. Here is the part of my code that is causing me trouble. Please help! Thank you in advance.

@SubscribeEvent
    public static void OnSwordClick (PlayerInteractEvent.RightClickItem event){
        LivingEntity player = event.getEntityLiving();
        if (player.getHeldItemMainhand().getItem() ==myitem){

// teleport the player x blocks in the direction that he is facing
        }
    }

 

P.S:my forge mdk version is 1.16.5 - 36.0.45

Link to post
Share on other sites
2 minutes ago, diesieben07 said:

You can use Entity#getLookVec to get the look-vector. Then you need to do some trigonometry.

Look at TeleportCommand to find out how to do the actual teleport.

Thank you for giving me this idea but can you help me implement the trigonometry function in my program

Link to post
Share on other sites
10 minutes ago, troublemaker_47 said:

I found randomly th getlookvec method but i didnt know how to use it.

You have the player's position. This is a vector (x, y, z). You then have the look vector, which tells you where the player is looking. Simply multiply that second vector with how far you want to teleport the player (scaling it) and then add the two - you now have the target position. Although likely you want to do some additional checks, so make sure you don't teleport the player into a wall or 10m above ground.

 

12 minutes ago, troublemaker_47 said:

BTW i dont know about the teleport command that you are talking about

It's a class. Look at it in your IDE.

Link to post
Share on other sites
Posted (edited)
3 hours ago, diesieben07 said:

You have the player's position. This is a vector (x, y, z). You then have the look vector, which tells you where the player is looking. Simply multiply that second vector with how far you want to teleport the player (scaling it) and then add the two - you now have the target position. Although likely you want to do some additional checks, so make sure you don't teleport the player into a wall or 10m above ground.

 

It's a class. Look at it in your IDE.

Small update!! I found the way to scale and add the lookvec to positionvec, but i still dont know how to teleport the player to that location.it would be very helpful if you could tell me which teleportation method i should use

Thanks in advance

 

public static void OnSwordClick (PlayerInteractEvent.RightClickItem event){
        LivingEntity player = event.getEntityLiving();
        if (player.getHeldItemMainhand().getItem() == myItem){
            player.getLookVec().scale(2.0F).add(player.getPositionVec());
        }
    }

can you tell me if it is correct @diesieben07

Edited by troublemaker_47
Link to post
Share on other sites
15 hours ago, troublemaker_47 said:

Small update!! I found the way to scale and add the lookvec to positionvec, but i still dont know how to teleport the player to that location.it would be very helpful if you could tell me which teleportation method i should use

Thanks in advance

 

public static void OnSwordClick (PlayerInteractEvent.RightClickItem event){
        LivingEntity player = event.getEntityLiving();
        if (player.getHeldItemMainhand().getItem() == myItem){
            player.getLookVec().scale(2.0F).add(player.getPositionVec());
        }
    }

can you tell me if it is correct @diesieben07

Can you please tell me how to use the teleportcommand method or its syntax. @diesieben07

Link to post
Share on other sites
Posted (edited)

Hello, I am a beginner minecraft modder and i have some problems with a bit of code that would teleport the player in the direction he's facing.can anyone tell me How to merge these lines together:

player.getLookVec().scale(2.0F).add(player.getPositionVec());

TeleportCommand;

 

P.S: i need this to work in minecraft 1.16.5-36.0.15

@diesieben07 Can you please help me?

Edited by troublemaker_47
Link to post
Share on other sites
15 minutes ago, diesieben07 said:

Syntax?! Its a class. You need to look at it. It is meant as an example here to show you how to teleport.

I have taken a look at said class but the only thing that i can access from said class in the register method.

Link to post
Share on other sites
21 minutes ago, diesieben07 said:

 I already did.

Sorry for bothering you once again but can you write the code that would teleport the player that amount of blocks ahead once i have 

player.getLookVec().scale(2.0F).add(player.getPositionVec());

Link to post
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.

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.



×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.