diff --git a/src/main/java/noppes/npcs/NoppesUtilPlayer.java b/src/main/java/noppes/npcs/NoppesUtilPlayer.java index 984bd717e..42d2c00b8 100644 --- a/src/main/java/noppes/npcs/NoppesUtilPlayer.java +++ b/src/main/java/noppes/npcs/NoppesUtilPlayer.java @@ -110,6 +110,28 @@ public class NoppesUtilPlayer { } player.worldObj.updateEntityWithOptionalForce(player, false); } + + public static void teleportPlayer(EntityPlayerMP player, double posX, double posY, double posZ, float yaw, float pitch, int dimension){ + if(player.dimension != dimension){ + int dim = player.dimension; + MinecraftServer server = MinecraftServer.getServer(); + WorldServer wor = server.worldServerForDimension(dimension); + if(wor == null){ + player.addChatMessage(new ChatComponentText("Broken transporter. Dimenion does not exist")); + return; + } + player.setLocationAndAngles(posX, posY, posZ, yaw, pitch); + server.getConfigurationManager().transferPlayerToDimension(player, dimension, new CustomTeleporter(wor)); + player.playerNetServerHandler.setPlayerLocation(posX, posY, posZ, yaw, pitch); + + if(!wor.playerEntities.contains(player)) + wor.spawnEntityInWorld(player); + } + else{ + player.playerNetServerHandler.setPlayerLocation(posX, posY, posZ, yaw, pitch); + } + player.worldObj.updateEntityWithOptionalForce(player, false); + } private static void followerBuy(RoleFollower role,IInventory currencyInv,EntityPlayerMP player, EntityNPCInterface npc){ ItemStack currency = currencyInv.getStackInSlot(0); diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java b/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java index 70a2c3473..9a5502357 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java @@ -309,7 +309,10 @@ public class ScriptPlayer extends ScriptLivingBase player.inventory.mainInventory[i] = null; } } - + + public void setRotation(float rotationYaw, float rotationPitch){ + NoppesUtilPlayer.teleportPlayer(player, player.posX, player.posY, player.posZ, rotationYaw, rotationPitch, player.dimension); + } /** * @param achievement The achievement id. For a complete list see http://minecraft.gamepedia.com/Achievements