diff --git a/eternalcore-api/src/main/java/com/eternalcode/core/feature/home/HomeService.java b/eternalcore-api/src/main/java/com/eternalcode/core/feature/home/HomeService.java index 911b5b6fa..94e8131db 100644 --- a/eternalcore-api/src/main/java/com/eternalcode/core/feature/home/HomeService.java +++ b/eternalcore-api/src/main/java/com/eternalcode/core/feature/home/HomeService.java @@ -1,7 +1,6 @@ package com.eternalcode.core.feature.home; import java.util.Collection; -import java.util.Map; import java.util.Optional; import java.util.UUID; import org.bukkit.Location; diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/teleport/TeleportResult.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/teleport/TeleportResult.java index 37ccec9a7..d00366a06 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/teleport/TeleportResult.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/teleport/TeleportResult.java @@ -4,6 +4,8 @@ public enum TeleportResult { SUCCESS, FAILED, - MOVED_DURING_TELEPORT + MOVED_DURING_TELEPORT, + PLAYER_OFFLINE, + WORLD_NOT_FOUND } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/teleport/TeleportTask.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/teleport/TeleportTask.java index 5dfefc629..192a46100 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/teleport/TeleportTask.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/teleport/TeleportTask.java @@ -1,5 +1,6 @@ package com.eternalcode.core.feature.teleport; +import com.eternalcode.commons.bukkit.position.Position; import com.eternalcode.commons.bukkit.position.PositionAdapter; import com.eternalcode.core.feature.teleport.settings.TeleportSettings; import com.eternalcode.core.injector.annotations.Inject; @@ -14,6 +15,7 @@ import java.util.concurrent.TimeUnit; import org.bukkit.Location; import org.bukkit.Server; +import org.bukkit.World; import org.bukkit.entity.Player; @Task(delay = 1L, period = 1L, unit = TimeUnit.SECONDS) @@ -55,6 +57,15 @@ public void run() { if (player == null) { this.teleportTaskService.removeTeleport(uuid); + teleport.completeResult(TeleportResult.PLAYER_OFFLINE); + continue; + } + + Position destination = teleport.getDestinationLocation(); + + if (this.server.getWorld(destination.world()) == null) { + this.teleportTaskService.removeTeleport(uuid); + teleport.completeResult(TeleportResult.WORLD_NOT_FOUND); continue; }