diff --git a/src/main/java/org/ultramine/server/Teleporter.java b/src/main/java/org/ultramine/server/Teleporter.java index 7dd7d3d..c5bf748 100644 --- a/src/main/java/org/ultramine/server/Teleporter.java +++ b/src/main/java/org/ultramine/server/Teleporter.java @@ -86,11 +86,17 @@ private static void doTeleportation(EntityPlayerMP player, int dimension, double x, double y, double z, float yaw, float pitch) { - player.getData().core().setLastLocation(WarpLocation.getFromPlayer(player)); - + if(player.ridingEntity != null) + { + player.addChatMessage(new ChatComponentTranslation("ultramine.teleporter.fail.riding").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); + return; + } + + WarpLocation lastLocation = WarpLocation.getFromPlayer(player); if(!player.setWorldPositionAndRotation(dimension, x, y, z, yaw, pitch)) player.addChatMessage(new ChatComponentTranslation("ultramine.teleporter.fail.dim").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); - + + player.getData().core().setLastLocation(lastLocation); if(isServer) { player.getData().core().setNextTeleportationTime(System.currentTimeMillis() + ConfigurationHandler.getServerConfig().settings.teleportation.cooldown*1000); @@ -100,11 +106,7 @@ public static void tick() { - for(Iterator it = teleporters.iterator();it.hasNext();) - { - if(it.next().update()) - it.remove(); - } + teleporters.removeIf(Teleporter::update); } private final EntityPlayerMP target; diff --git a/src/main/resources/assets/ultramine/lang/en_US.lang b/src/main/resources/assets/ultramine/lang/en_US.lang index b7d9550..36f1a76 100644 --- a/src/main/resources/assets/ultramine/lang/en_US.lang +++ b/src/main/resources/assets/ultramine/lang/en_US.lang @@ -1,6 +1,7 @@ #Server core ultramine.teleporter.fail.cooldownd=You will be able to teleport in %s seconds ultramine.teleporter.fail.dim=Failed to teleport: the world is not exists or was held +ultramine.teleporter.fail.riding=You can not teleport while riding ultramine.teleporter.delay=You will be teleported in %s seconds ultramine.teleporter.canceled=Teleportation canceled diff --git a/src/main/resources/assets/ultramine/lang/ru_RU.lang b/src/main/resources/assets/ultramine/lang/ru_RU.lang index 56f6de5..5abe26e 100644 --- a/src/main/resources/assets/ultramine/lang/ru_RU.lang +++ b/src/main/resources/assets/ultramine/lang/ru_RU.lang @@ -1,6 +1,7 @@ #Server core ultramine.teleporter.fail.cooldownd=Вы сможете телепортироваться через %s секунд ultramine.teleporter.fail.dim=Не удалось телепортироваться: мир не существует или заблокирован +ultramine.teleporter.fail.riding=Нельзя телепортироваться во время езды ultramine.teleporter.delay=Вы будете телепортированы через %s секунд ultramine.teleporter.canceled=Телепортация отменена