From d2e4591c217aeedd32fc192dfc9a1ceeca57f68a Mon Sep 17 00:00:00 2001 From: Len <40720638+destro174@users.noreply.github.com> Date: Mon, 5 Feb 2024 15:00:37 +0100 Subject: [PATCH] Add SpawnCommand.java --- .../com/alttd/essentia/EssentiaPlugin.java | 1 + .../commands/player/SpawnCommand.java | 34 +++++++++++++++++++ .../alttd/essentia/configuration/Config.java | 2 ++ plugin/src/main/resources/plugin.yml | 6 +++- 4 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 plugin/src/main/java/com/alttd/essentia/commands/player/SpawnCommand.java diff --git a/plugin/src/main/java/com/alttd/essentia/EssentiaPlugin.java b/plugin/src/main/java/com/alttd/essentia/EssentiaPlugin.java index 0afda65..a69c3ce 100644 --- a/plugin/src/main/java/com/alttd/essentia/EssentiaPlugin.java +++ b/plugin/src/main/java/com/alttd/essentia/EssentiaPlugin.java @@ -57,6 +57,7 @@ public class EssentiaPlugin extends JavaPlugin implements EssentiaAPI { getCommand("heal").setExecutor(new HealCommand(this)); getCommand("feed").setExecutor(new FeedCommand(this)); getCommand("enchant").setExecutor(new EnchantCommand(this)); + getCommand("spawn").setExecutor(new SpawnCommand(this)); } public void loadEventListeners() { diff --git a/plugin/src/main/java/com/alttd/essentia/commands/player/SpawnCommand.java b/plugin/src/main/java/com/alttd/essentia/commands/player/SpawnCommand.java new file mode 100644 index 0000000..98e36cf --- /dev/null +++ b/plugin/src/main/java/com/alttd/essentia/commands/player/SpawnCommand.java @@ -0,0 +1,34 @@ +package com.alttd.essentia.commands.player; + +import com.alttd.essentia.EssentiaPlugin; +import com.alttd.essentia.commands.PlayerSubCommand; +import com.alttd.essentia.configuration.Config; +import com.alttd.essentia.configuration.PlayerConfig; +import com.alttd.essentia.tasks.TeleportSounds; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.entity.Player; + +public class SpawnCommand extends PlayerSubCommand { + + public SpawnCommand(EssentiaPlugin plugin) { + super(plugin, "back"); + } + + @Override + protected boolean execute(Player player, PlayerConfig playerConfig, String... args) { + World world = plugin.getServer().getWorld(Config.SPAWN_WORLD); + if (world == null) { + player.sendRichMessage("Could not get the configured spawn world! contact and administrator"); + return true; + } + Location spawnLocation = world.getSpawnLocation(); + new TeleportSounds(spawnLocation, player.getLocation()) + .runTaskLater(plugin, 1); + + player.teleportAsync(spawnLocation).thenAccept(result -> + player.sendRichMessage("Teleporting to spawn")); + return true; + } + +} diff --git a/plugin/src/main/java/com/alttd/essentia/configuration/Config.java b/plugin/src/main/java/com/alttd/essentia/configuration/Config.java index 4611ce4..2408f87 100755 --- a/plugin/src/main/java/com/alttd/essentia/configuration/Config.java +++ b/plugin/src/main/java/com/alttd/essentia/configuration/Config.java @@ -115,11 +115,13 @@ public class Config { public static Sound SOUND_FROM; public static int BACK_COOLDOWN = 60; public static boolean UNSAFE_ENCHANTMENTS = false; + public static String SPAWN_WORLD = "Skyblock"; private static void settings() { TELEPORT_REQUEST_TIMEOUT = getInt("teleport-request-timeout", TELEPORT_REQUEST_TIMEOUT); TELEPORT_REQUEST_TIMEOUT_MESSAGES = getBoolean("teleport-request-timeout-message", TELEPORT_REQUEST_TIMEOUT_MESSAGES); BACK_ON_DEATH = getBoolean("back-on-death", BACK_ON_DEATH); TELEPORT_SOUNDS = getBoolean("use-teleport-sounds", TELEPORT_SOUNDS); + SPAWN_WORLD = getString("use-teleport-sounds", SPAWN_WORLD); try { SOUND_TO = Sound.valueOf(config.getString("sound-to", "ENTITY_ENDERMAN_TELEPORT")); } catch (IllegalArgumentException e) { diff --git a/plugin/src/main/resources/plugin.yml b/plugin/src/main/resources/plugin.yml index 5f56084..a8e1958 100644 --- a/plugin/src/main/resources/plugin.yml +++ b/plugin/src/main/resources/plugin.yml @@ -103,4 +103,8 @@ commands: enchant: description: Enchants the item in hand permission: essentia.command.enchant - usage: / [enchantment/all] (level) (unsafe) \ No newline at end of file + usage: / [enchantment/all] (level) (unsafe) + spawn: + description: Teleport yourself or another player to spawn. + permission: essentia.command.spawn + usage: / \ No newline at end of file