Hello!
I'm very new to modding with forge.
I want to make a custom item to teleport me to the world spawn or bed respawn point.
My code works for teleportation to world spawn point but it doesn't work for bed respawn point.
I've tried it with PlayerEntity.getBedPosition() to check the position of bed respawn point but it seems that PlayerEntity.getBedPosition().isPresent() is always false even after sleeping and setting respawn point with bed.
TeleportStick.java
public class TeleportStick extends Item {
public TeleportStick(Properties properties) {
super(properties);
}
@Override
public ActionResult<ItemStack> onItemRightClick(World world, PlayerEntity player, Hand hand) {
double requiredX, requiredY, requiredZ;
ItemStack itemstack = player.getHeldItem(hand);
////////////////////////////////////////////////////
// Not working
if (player.getBedPosition().isPresent()) {
THEMOD.LOGGER.debug("Will teleport to bed");
BlockPos bedPos = player.getBedPosition().get();
requiredX = bedPos.getX();
requiredY = bedPos.getY();
requiredZ = bedPos.getZ();
////////////////////////////////////////////////////
} else {
IWorldInfo info = world.getWorldInfo();
requiredX = info.getSpawnX();
requiredY = info.getSpawnY();
requiredZ = info.getSpawnZ();
}
THEMOD.LOGGER.debug("Teleport to " + requiredX + " " + requiredY + " " + requiredZ);
player.setPositionAndUpdate(requiredX, requiredY, requiredZ);
return ActionResult.resultSuccess(itemstack);
}
}
How can I check the position of bed respawn point properly?
Thanks in advance.
herobrine369