diff --git a/src/main/java/commands/tabCompleter.java b/src/main/java/commands/tabCompleter.java new file mode 100644 index 0000000..c0dc01c --- /dev/null +++ b/src/main/java/commands/tabCompleter.java @@ -0,0 +1,33 @@ +package commands; + +import org.bukkit.Bukkit; +import org.bukkit.World; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; + +public class tabCompleter implements TabCompleter { + + @Override + public List onTabComplete(CommandSender commandSender, Command command, String s, String[] strings) { + List completions = new ArrayList<>(); + + if (command.getName().equalsIgnoreCase("tpw") && commandSender.isOp()) { + if (strings.length == 0) { + for (World world : Bukkit.getWorlds()) { + completions.add(world.getName()); + } + } else if (strings.length == 1) { + for (Player player : Bukkit.getOnlinePlayers()) { + completions.add(player.getName()); + } + } + } + + return completions; + } +} diff --git a/src/main/java/commands/teleportWorld.java b/src/main/java/commands/teleportWorld.java new file mode 100644 index 0000000..3ec5923 --- /dev/null +++ b/src/main/java/commands/teleportWorld.java @@ -0,0 +1,49 @@ +package commands; + +import org.bukkit.Bukkit; +import org.bukkit.World; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class teleportWorld implements CommandExecutor { + + @Override + public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) { + if (commandSender instanceof Player) { + + Player player = (Player) commandSender; + + if (!player.isOp() || strings.length == 0) { + return false; + } + + World world = Bukkit.getWorld(strings[0]); + World playerWorld = player.getWorld(); + + if (playerWorld.equals(world)) { + player.sendMessage("You are already in this world!"); // Edit + return false; + } + + if (strings.length > 2) { + try { + Player targetPlayer = Bukkit.getPlayer(strings[1]); + + targetPlayer.teleport(world.getSpawnLocation()); + targetPlayer.sendMessage(String.format("Successfully teleported %s from %s to %s.", targetPlayer, playerWorld, world)); // Edit + return true; + } catch (Exception e) { + player.sendMessage("This is not a valid player!"); + } + } + + + player.teleport(world.getSpawnLocation()); + player.sendMessage(String.format("Successfully teleported from %s to %s.", playerWorld, world)); // Edit + return true; + } + return false; + } +} diff --git a/src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java index 3b42113..ad8090a 100644 --- a/src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java +++ b/src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java @@ -1,5 +1,6 @@ package xyz.soukup.mineconomiaCoreV2; +import commands.tabCompleter; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.plugin.java.JavaPlugin; import xyz.soukup.mineconomiaCoreV2.database.HibernateUtil; @@ -23,6 +24,8 @@ public final class MineconomiaCoreV2 extends JavaPlugin { // Tractor registration Objects.requireNonNull(plugin.getCommand("tractor")).setExecutor(new giveTractorCommand()); + // TPW registration + this.getCommand("tpw").setTabCompleter(new tabCompleter()); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index b1c2bf9..138d385 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -3,5 +3,8 @@ version: '1.0-SNAPSHOT' main: xyz.soukup.mineconomiaCoreV2.MineconomiaCoreV2 api-version: '1.21' commands: + tpw: + description: "Teleportuje tě do jiného světa" + usage: / tractor: description: "blieat"