Novârch Posted May 5, 2020 Posted May 5, 2020 (edited) 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 May 5, 2020 by Novârch Quote 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".
kaydogz Posted May 5, 2020 Posted May 5, 2020 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. 1 Quote
Novârch Posted May 5, 2020 Author Posted May 5, 2020 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! Quote 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".
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.