diff --git a/Lobby/src/main/java/de/fanta/lobby/Config.java b/Lobby/src/main/java/de/fanta/lobby/Config.java index 6950239..23827e8 100644 --- a/Lobby/src/main/java/de/fanta/lobby/Config.java +++ b/Lobby/src/main/java/de/fanta/lobby/Config.java @@ -5,9 +5,12 @@ import org.bukkit.World; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.entity.Steerable; import java.io.File; +import java.util.ArrayList; import java.util.HashSet; +import java.util.List; import java.util.Optional; import java.util.Set; import java.util.UUID; @@ -17,11 +20,13 @@ private static Lobby plugin; private static Set challengeServers; private static Set adventureServers; + private static List allowTeleportWorlds; public Config(Lobby plugin) { Config.plugin = plugin; challengeServers = new HashSet<>(); adventureServers = new HashSet<>(); + allowTeleportWorlds = new ArrayList<>(); if (Bukkit.getPluginManager().getPlugin("Challenges") == null) { plugin.saveDefaultConfig(); @@ -85,6 +90,8 @@ } } + allowTeleportWorlds = config.getStringList("teleportworlds"); + } public void savePiglin(JoinEntityData data) { @@ -128,5 +135,9 @@ public Optional getOnlineAdventureServer() { return adventureServers.stream().filter(server -> !server.isOnline()).findFirst(); } + + public boolean isAllowedTeleportWorld(String worldName) { + return allowTeleportWorlds.contains(worldName); + } } diff --git a/Lobby/src/main/java/de/fanta/lobby/listeners/PlayerListener.java b/Lobby/src/main/java/de/fanta/lobby/listeners/PlayerListener.java index a54c38f..e5c92f0 100644 --- a/Lobby/src/main/java/de/fanta/lobby/listeners/PlayerListener.java +++ b/Lobby/src/main/java/de/fanta/lobby/listeners/PlayerListener.java @@ -2,6 +2,7 @@ import de.fanta.challengeutils.Color; import de.fanta.challengeutils.ItemUtils; +import de.fanta.lobby.Config; import de.fanta.lobby.Lobby; import de.iani.cubesideutils.bukkit.plugin.CubesideUtilsBukkit; import de.iani.cubesideutils.bukkit.plugin.api.UtilsApiBukkit; @@ -33,6 +34,7 @@ import java.util.Collection; import java.util.HashMap; +import java.util.List; import java.util.UUID; public class PlayerListener implements Listener { @@ -59,13 +61,15 @@ } } - if (player.isOnGround()) { - lastPlayerStepLocation.put(player.getUniqueId(), player.getLocation()); - } + if (plugin.getPluginConfig().isAllowedTeleportWorld(player.getWorld().getName())) { + if (player.isOnGround()) { + lastPlayerStepLocation.put(player.getUniqueId(), player.getLocation()); + } - if (player.getY() < 0) { - Location lastStepLocation = lastPlayerStepLocation.getOrDefault(player.getUniqueId(), player.getWorld().getSpawnLocation()); - player.teleport(lastStepLocation); + if (player.getY() < 0) { + Location lastStepLocation = lastPlayerStepLocation.getOrDefault(player.getUniqueId(), player.getWorld().getSpawnLocation()); + player.teleport(lastStepLocation); + } } } diff --git a/Lobby/src/main/resources/config.yml b/Lobby/src/main/resources/config.yml index a7d7d0e..ee33ad0 100644 --- a/Lobby/src/main/resources/config.yml +++ b/Lobby/src/main/resources/config.yml @@ -5,3 +5,5 @@ challengeSaves: "/home/storagebox/Challenge-saves" serverJars: "/home/minecraft/ServerJars/" serverFolder: "/home/minecraft/Server/" +teleportworlds: + - lobbynew