From cccd301cbbcf843cef4c0b308e1bc19d6648d9b1 Mon Sep 17 00:00:00 2001 From: Len <40720638+destro174@users.noreply.github.com> Date: Sat, 17 Feb 2024 15:22:55 +0100 Subject: [PATCH] Set world seed to 4894934811986575177 --- .../configuration/PluginConfiguration.java | 1 + .../managers/TeleportManager.java | 75 +++++++++++++++++++ .../worldgenerator/MasterWorldGenerator.java | 3 + 3 files changed, 79 insertions(+) create mode 100644 plugin/src/main/java/com/alttd/cometskyblock/managers/TeleportManager.java diff --git a/plugin/src/main/java/com/alttd/cometskyblock/configuration/PluginConfiguration.java b/plugin/src/main/java/com/alttd/cometskyblock/configuration/PluginConfiguration.java index d89031d..6fab54b 100644 --- a/plugin/src/main/java/com/alttd/cometskyblock/configuration/PluginConfiguration.java +++ b/plugin/src/main/java/com/alttd/cometskyblock/configuration/PluginConfiguration.java @@ -16,6 +16,7 @@ public class PluginConfiguration implements Configuration { private WorldGenerator worldGenerator = new WorldGenerator(); @ConfigSerializable @Getter public static class WorldGenerator { + private long seed = Long.parseLong("4894934811986575177"); private int centerX = 0; private int centerZ = 0; diff --git a/plugin/src/main/java/com/alttd/cometskyblock/managers/TeleportManager.java b/plugin/src/main/java/com/alttd/cometskyblock/managers/TeleportManager.java new file mode 100644 index 0000000..cc896d9 --- /dev/null +++ b/plugin/src/main/java/com/alttd/cometskyblock/managers/TeleportManager.java @@ -0,0 +1,75 @@ +package com.alttd.cometskyblock.managers; + +import com.alttd.cometskyblock.CometSkyBlockPlugin; +import com.alttd.cometskyblock.island.Island; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.World; +import org.bukkit.entity.Player; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; +import org.bukkit.scheduler.BukkitTask; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +// TODO -- finish class +public class TeleportManager { + + private final CometSkyBlockPlugin plugin; + public static Map teleportTaskQueue = new HashMap<>(); + + public TeleportManager(CometSkyBlockPlugin plugin) { + this.plugin = plugin; + } + + public boolean teleportToIsland(Player player, Location location, boolean visit, List members) { + if (player.getFallDistance() > 0 || player.getLocation().getBlock().getType().equals(Material.LAVA)) { + // Message the player about why they can not teleport and queue task again after 5 seconds + teleportTaskQueue.put(player, plugin.getServer().getScheduler().runTaskLater(plugin, () -> { + if (teleportTaskQueue.containsKey(player)) { + teleportToIsland(player, location, visit, members); + } + }, 20 * 5)); + return false; + } + + PotionEffect potionEffectBlindness = new PotionEffect(PotionEffectType.BLINDNESS, 600, 1); + PotionEffect potionEffectNightVision = new PotionEffect(PotionEffectType.NIGHT_VISION, 600, 1); + player.addPotionEffect(potionEffectBlindness); + player.addPotionEffect(potionEffectNightVision); + World islandWorld = CometSkyBlockPlugin.instance().worldGenerator().loadIslandWorld(location.getWorld().getName()); + if (islandWorld == null) { + player.sendRichMessage("Could not load islandWorld. Contact an administrator"); + removeTeleportEffects(player); + return false; + } + + Island island = Island.getIsland(location.getWorld().getUID()); + if (visit && island.islandId() != 0) { + for (UUID uuid : members) { + Player islandMember = Bukkit.getPlayer(uuid); + if (islandMember == null) + continue; + + islandMember.sendRichMessage(" is visiting your island."); // TODO - load from config and placeholders. + } + } + + player.teleportAsync(location).whenComplete((b, e) -> { + removeTeleportEffects(player); + }); + + teleportTaskQueue.remove(player); + return true; + } + + void removeTeleportEffects(Player player) { + player.removePotionEffect(PotionEffectType.BLINDNESS); + player.removePotionEffect(PotionEffectType.NIGHT_VISION); + } + +} diff --git a/plugin/src/main/java/com/alttd/cometskyblock/worldgenerator/MasterWorldGenerator.java b/plugin/src/main/java/com/alttd/cometskyblock/worldgenerator/MasterWorldGenerator.java index 4a9ce7c..038d137 100644 --- a/plugin/src/main/java/com/alttd/cometskyblock/worldgenerator/MasterWorldGenerator.java +++ b/plugin/src/main/java/com/alttd/cometskyblock/worldgenerator/MasterWorldGenerator.java @@ -35,6 +35,7 @@ public class MasterWorldGenerator { worldCreator.generator(new CometVoidGenerator()); worldCreator.environment(World.Environment.NORMAL); worldCreator.generateStructures(true); + worldCreator.seed(plugin.pluginConfiguration().get().worldGenerator().seed()); World world = worldCreator.createWorld(); if (world == null) { @@ -79,6 +80,7 @@ public class MasterWorldGenerator { worldCreator.generator(new CometIslandGenerator()); worldCreator.environment(World.Environment.NORMAL); worldCreator.generateStructures(true); + worldCreator.seed(plugin.pluginConfiguration().get().worldGenerator().seed()); World newIsland = worldCreator.createWorld(); if (newIsland == null) { return; @@ -110,6 +112,7 @@ public class MasterWorldGenerator { worldCreator.generator(new CometIslandGenerator()); worldCreator.environment(World.Environment.NORMAL); worldCreator.generateStructures(true); + worldCreator.seed(plugin.pluginConfiguration().get().worldGenerator().seed()); World newIsland = worldCreator.createWorld(); if (newIsland == null) { plugin.getLogger().warning("Failed to load world " + islandName);