0
我有一种方法可以创建墙并使用参数Location l
。当一个雪球击中一个街区或一个人并沿着轴线创建墙时,触发这个动作。我的问题是,如果我使用Location l
,我不能使用Player p
来获取玩家面对的方向,并相应地沿着X
和Z
轴旋转墙。如果我使用Player p
,我无法找到被雪球击中的块的Location
。因此,为了解决我的困境,我使用了Location l
,并且当需要Player p
时,我通过所有在线玩家位置循环,找到一个玩家在Location l
,然后将其投掷到Player p
。OnlinePlayer位置循环
我的代码:
public static void wall(Location l){
Player p = null;
for(Player players: Bukkit.getOnlinePlayers()){
if (players.getLocation().equals(l)){
p = players;
}
else{
return;
}
}
我的问题:
这是对这个问题的有效解决方案?它是否有效,但是我做错了吗?有没有更好的方法来解决问题?
在此先感谢!
我只是想用位置来获得玩家,我并不需要每个人的位置 – J22929
我会在位置存储一个名单,然后代表位于单个位置的玩家或玩家。无论何时玩家移动到新位置,您都必须执行诸如oldLocation.removePlayer(player)newLocation.addPlayer(player)之类的操作。然后,您可以使用Location.getPlayers()返回雪球击中位置的玩家列表。 –
Steve
我无所谓,他们移动时,我只需要确认他们在位置l时,他们被雪球击中 – J22929