Bukkit 1.20.1 玩家传送回溯插件:记录位置,使用 /back 回到之前地点
以下是一个简单的 Java 代码示例,用于实现 Bukkit 1.20.1 服务器中玩家传送到其他地方之前记录传送之前的位置,并通过输入"back"命令来传送回去。\n\njava\nimport org.bukkit.Bukkit;\nimport org.bukkit.Location;\nimport org.bukkit.command.Command;\nimport org.bukkit.command.CommandSender;\nimport org.bukkit.entity.Player;\nimport org.bukkit.plugin.java.JavaPlugin;\n\nimport java.util.HashMap;\nimport java.util.Map;\n\npublic class TeleportPlugin extends JavaPlugin {\n private Map<Player, Location> teleportHistory;\n\n @Override\n public void onEnable() {\n teleportHistory = new HashMap<>();\n }\n\n @Override\n public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {\n if (!(sender instanceof Player)) {\n sender.sendMessage("Only players can use this command!");\n return true;\n }\n\n Player player = (Player) sender;\n\n if (cmd.getName().equalsIgnoreCase("tp")) {\n if (args.length != 3) {\n player.sendMessage("Usage: /tp <x> <y> <z>");\n return true;\n }\n\n double x, y, z;\n\n try {\n x = Double.parseDouble(args[0]);\n y = Double.parseDouble(args[1]);\n z = Double.parseDouble(args[2]);\n } catch (NumberFormatException e) {\n player.sendMessage("Invalid coordinates!");\n return true;\n }\n\n Location previousLocation = player.getLocation();\n teleportHistory.put(player, previousLocation);\n\n player.teleport(new Location(player.getWorld(), x, y, z));\n player.sendMessage("You have been teleported!");\n\n return true;\n } else if (cmd.getName().equalsIgnoreCase("back")) {\n Location previousLocation = teleportHistory.get(player);\n\n if (previousLocation == null) {\n player.sendMessage("You don't have a previous location!");\n return true;\n }\n\n teleportHistory.remove(player);\n player.teleport(previousLocation);\n player.sendMessage("You have been teleported back!");\n\n return true;\n }\n\n return false;\n }\n}\n\n\n请确保将以上代码保存为名为"TeleportPlugin.java"的文件,并将其放置在您的 Bukkit 插件项目的正确位置。在插件启用时,它将创建一个 HashMap 来存储玩家的传送历史记录。当玩家使用"/tp"命令传送到其他地方时,它将记录当前位置,并将玩家传送到指定的坐标。当玩家使用"/back"命令时,它将检索之前记录的位置并将玩家传送回去。
原文地址: https://www.cveoy.top/t/topic/pWuO 著作权归作者所有。请勿转载和采集!