非常抱歉给您带来困扰。请尝试使用以下代码,它基于您提供的 Bukkit 插件,将正确计算玩家2相对于玩家1的方向。

import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;

public class PlayerDirectionPlugin extends JavaPlugin {
    @Override
    public void onEnable() {
        // 插件启用时的初始化操作
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (cmd.getName().equalsIgnoreCase('playerdirection')) {
            if (!(sender instanceof Player)) {
                sender.sendMessage('该命令只能由玩家执行!');
                return true;
            }

            Player player1 = (Player) sender;
            Player player2 = // 获取玩家2的实例,例如通过玩家名字或其他方式

            String direction = calculatePlayerDirection(player1, player2);
            player1.sendMessage('玩家2相对于你的方向是:' + direction);

            return true;
        }
        return false;
    }

    private String calculatePlayerDirection(Player player1, Player player2) {
        int x_offset = player2.getLocation().getBlockX() - player1.getLocation().getBlockX();
        int z_offset = player2.getLocation().getBlockZ() - player1.getLocation().getBlockZ();

        if (x_offset > 0 && z_offset == 0) {
            return '东方';
        } else if (x_offset < 0 && z_offset == 0) {
            return '西方';
        } else if (x_offset == 0 && z_offset > 0) {
            return '南方';
        } else if (x_offset == 0 && z_offset < 0) {
            return '北方';
        } else if (x_offset > 0 && z_offset > 0) {
            return '东南方向';
        } else if (x_offset > 0 && z_offset < 0) {
            return '东北方向';
        } else if (x_offset < 0 && z_offset > 0) {
            return '西南方向';
        } else if (x_offset < 0 && z_offset < 0) {
            return '西北方向';
        } else {
            return '重叠';
        }
    }
}

这次的代码会根据玩家的区块位置(整数)进行计算,而不是使用坐标(浮点数)。请确保在获取玩家位置时使用getBlockX()getBlockZ()方法,而不是getX()getZ()方法。这样将确保坐标差是整数,从而正确计算方向。


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

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