Java “正确”;至于;此实例中的用法

Java “正确”;至于;此实例中的用法,java,api,minecraft,bukkit,Java,Api,Minecraft,Bukkit,如果我试图获取玩家的位置并在Bukkit计划任务中传送他们,那么(玩家p:)的正确用法是什么?当使用:时,它会给我一个无法识别的错误,我认为我需要将语句的重置连接在一起,但可能还有另一种方法。虽然这是一个与Minecraft Bukkit有关的问题,但我相信这里有人能够帮助我 当前代码: private void teleporter() { if (getConfig().getBoolean("teleport")) { Bukkit.getScheduler().s

如果我试图获取玩家的位置并在Bukkit计划任务中传送他们,那么(玩家p:)的正确用法是什么?当使用
时,它会给我一个无法识别的错误,我认为我需要将语句的重置连接在一起,但可能还有另一种方法。虽然这是一个与Minecraft Bukkit有关的问题,但我相信这里有人能够帮助我

当前代码:

private void teleporter()
  {
    if (getConfig().getBoolean("teleport")) {
      Bukkit.getScheduler().scheduleSyncRepeatingTask(this,
        new Runnable()
        {
          public void run() {
            for (Player p : ) {
              if (p.getLocation().getY() <= 0.0D)
              {
                p.teleport(NoVoid.spawnLocation);
                p.setFallDistance(0.0F);
              }
            }
          }
        }, 0L, 100L);
    }
  }
private void传送器()
{
if(getConfig().getBoolean(“传送”)){
Bukkit.getScheduler().scheduleSyncRepeatingTask(此,
新的Runnable()
{
公开募捐{
对于(玩家p:){
如果(p.getLocation().getY()获取您的代码:

for (Player p : ) {
    if(p.getLocation().getY() <= 0.0D)
        p.teleport(NoVoid.spawnLocation);
        p.setFallDistance(0.0F);
}
变量
listOfPlayersInTheGame
必须是玩家的集合。有效示例包括但不限于:

  • 列表
  • Player[]
  • ArrayList
  • LinkedList
另一方面,我不认为你希望你的传送机传送服务器上的所有玩家。你可能只想抓取当前站在传送机上的玩家。你可以通过在x、y和z平面上获取他们的位置和传送机位置之间的差异来实现这一点。显然有一些公差,所以我们如果差异小于1个块,则表示满意。例如(伪代码):

对于列表中的每个玩家p:
如果Math.abs(p.x-teleporter.x)<1:
如果(数学绝对值(p.y-远程传输的y)<1):
如果(数学绝对值(p.z-远程传输的.z)<1):
//他们一定是站在传送机上!
p、 传送(繁殖)

你是否有某种
集合
或一组
玩家
或者你能得到一个吗?如果有的话,用它在
的右边:
。你是想传送一个玩家,还是服务器上的所有玩家?完全不相关-我不敢相信我必须在我访问的同一天回答一个关于Minecraft的问题把我的图标挂成一块土。
for (Player p : listOfPlayersInTheGame) {
for each player p in list:
    if Math.abs(p.x - teleporter.x) < 1:
        if(Math.abs(p.y - teleported.y) < 1):
            if(Math.abs(p.z - teleported.z) < 1):
                // They must be standing on the teleporter!
                p.teleport(spawn)