以下是一个简单的 Java 代码示例,用于在 Bukkit 1.20.1 中实现玩家传送到其他地方后,输入'back'可以传送回上一个位置:

import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.HashMap;
import java.util.UUID;

public class BackPlugin extends JavaPlugin {

    private HashMap<UUID, Location> lastLocations;

    @Override
    public void onEnable() {
        lastLocations = new HashMap<>();

        getServer().getPluginManager().registerEvents(new BackListener(), this);
        getLogger().info("BackPlugin enabled");
    }

    @Override
    public void onDisable() {
        getLogger().info("BackPlugin disabled");
    }

    private class BackListener implements org.bukkit.event.Listener {

        @org.bukkit.event.EventHandler
        public void onPlayerMove(org.bukkit.event.player.PlayerMoveEvent event) {
            Player player = event.getPlayer();
            UUID playerId = player.getUniqueId();

            // 如果玩家移动,则更新其上一个位置
            lastLocations.put(playerId, event.getFrom());
        }

        @org.bukkit.event.EventHandler
        public void onPlayerCommand(org.bukkit.event.player.PlayerCommandPreprocessEvent event) {
            Player player = event.getPlayer();
            String command = event.getMessage().toLowerCase();

            if (command.startsWith("/back")) {
                UUID playerId = player.getUniqueId();
                Location lastLocation = lastLocations.get(playerId);

                if (lastLocation != null) {
                    player.teleport(lastLocation);
                    player.sendMessage("传送回上一位置");
                } else {
                    player.sendMessage("没有上一位置可传送");
                }

                event.setCancelled(true); // 取消原始的/back命令执行
            }
        }
    }
}

请注意,这只是一个简单的示例,可能需要根据您的具体需求进行修改和扩展。

Bukkit 1.20.1 玩家传送回上一个位置的 Java 插件

原文地址: https://www.cveoy.top/t/topic/fQsF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录