Jump to content

[SOLVED][1.15.2] Using PlayerEntity#changeDimension without making a Nether portal


Novârch

Recommended Posts

I use PlayerEntity#changeDImension to change my player's dimension, I call this from a client to server packet, this works fine, but it always creates a Nether portal when I call the method, even though I've created a custom Teleporter class and overriden all of the methods from the default Teleporter. The custom Teleporter class looks like this:

Spoiler

public class DimensionHopTeleporter extends Teleporter
{
    private final ServerWorld world;
    private double x,y,z;

    public DimensionHopTeleporter(ServerWorld world, double x, double y, double z)
    {
        super(world);
        this.world = world;
        this.x = x;
        this.y = y;
        this.z = z;
    }

    @Override
    public boolean makePortal(Entity entityIn)
    {
        return false;
    }

    @Override
    public boolean placeInPortal(Entity p_222268_1_, float p_222268_2_)
    {
        return false;
    }

    @Nullable
    @Override
    public BlockPattern.PortalInfo placeInExistingPortal(BlockPos p_222272_1_, Vec3d p_222272_2_, Direction directionIn, double p_222272_4_, double p_222272_6_, boolean p_222272_8_)
    {
        return null;
    }

    @Override
    public Entity placeEntity(Entity entity, ServerWorld currentWorld, ServerWorld destWorld, float yaw, Function<Boolean, Entity> repositionEntity)
    {
        return super.placeEntity(entity, currentWorld, destWorld, yaw, repositionEntity);
    }
}

 

In theory the above code should do absolutely nothing, but that isn't what it does. For more context see the Git repo of the mod.

Edited by Novârch

It's sad how much time mods spend saying "x is no longer supported on this forum. Please update to a modern version of Minecraft to receive support".

Link to comment
Share on other sites

1 hour ago, Novârch said:

I use PlayerEntity#changeDImension to change my player's dimension, I call this from a client to server packet, this works fine, but it always creates a Nether portal when I call the method, even though I've created a custom Teleporter class and overriden all of the methods from the default Teleporter. The custom Teleporter class looks like this:

  Hide contents


public class DimensionHopTeleporter extends Teleporter
{
    private final ServerWorld world;
    private double x,y,z;

    public DimensionHopTeleporter(ServerWorld world, double x, double y, double z)
    {
        super(world);
        this.world = world;
        this.x = x;
        this.y = y;
        this.z = z;
    }

    @Override
    public boolean makePortal(Entity entityIn)
    {
        return false;
    }

    @Override
    public boolean placeInPortal(Entity p_222268_1_, float p_222268_2_)
    {
        return false;
    }

    @Nullable
    @Override
    public BlockPattern.PortalInfo placeInExistingPortal(BlockPos p_222272_1_, Vec3d p_222272_2_, Direction directionIn, double p_222272_4_, double p_222272_6_, boolean p_222272_8_)
    {
        return null;
    }

    @Override
    public Entity placeEntity(Entity entity, ServerWorld currentWorld, ServerWorld destWorld, float yaw, Function<Boolean, Entity> repositionEntity)
    {
        return super.placeEntity(entity, currentWorld, destWorld, yaw, repositionEntity);
    }
}

 

In theory the above code should do absolutely nothing, but that isn't what it does. For more context see the Git repo of the mod.

All you need to get rid of the portal is to override placeEntity and return an application of repositionEntity with the parameter being false.

  • Thanks 1
Link to comment
Share on other sites

14 minutes ago, kaydogz said:

All you need to get rid of the portal is to override placeEntity and return an application of repositionEntity with the parameter being false.

Thanks, works perfectly!

It's sad how much time mods spend saying "x is no longer supported on this forum. Please update to a modern version of Minecraft to receive support".

Link to comment
Share on other sites

  • Novârch changed the title to [SOLVED][1.15.2] Using PlayerEntity#changeDimension without making a Nether portal

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.