Jump to content

Where is the code showing how the player travels back from the End?


Recommended Posts

Posted

Hello guys and gals,

 

I'm playing around with the idea of making a dimension jumper. For now I have two items, one that will jump back and forth from the Nether to the Overworld, and one that will jump from the overworld to the end.

 

However, when I jump from the end to the overworld, nothing renders. I'm assuming that this is because the jump from the end to the overworld is a bit more complicated than simply telling the server to move the player from dimension 1 to dimension 0. However, for the life of me I cannot find where the code is that explains what is happening when the player enters the end portal while in the end.

 

Could anyone please point in the correct direction?

Posted

I would probably look in the end portal block, and trace it back to where it actually teleports you.

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Posted

That's where I thought it would be too, but it appears to only have code travelling to the end.

 

From the BlockEndPortal

    /**
     * Triggered whenever an entity collides with this block (enters into the block). Args: world, x, y, z, entity
     */
    public void onEntityCollidedWithBlock(World p_149670_1_, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity p_149670_5_)
    {
        if (p_149670_5_.ridingEntity == null && p_149670_5_.riddenByEntity == null && !p_149670_1_.isRemote)
        {
            p_149670_5_.travelToDimension(1);
        }
    }
[/code

I'm going to try poking through the travelToDimension code more. See what I can make of it.

Posted

Start at: net.minecraft.entity.Entity.travelToDimension

Actual teleport for player happens at net.minecraft.server.management.ServerConfigurationManager.transferPlayerToDimension

 

All portals in MC are implemented inside-out, i.e. not the portal block inits teleportation, but the entity itself travels to dimension. IMHO it introduces responsibility mixing, along with some other problems. Also, there's no simple func which would safely and reliably move specified entity, along with possibly present rider, to a specified 4D location. I'm fighting myself with mount+rider teleport. And I must say it's a complete hell.

Sad but true.

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
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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.

Announcements



×
×
  • Create New...

Important Information

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