2012-02-04 88 views
1

以下是代码。不知道什么是错的。在那说类型不匹配:无法从元素类型对象转换为播放器

for (Player players : World.getPlayers()) { 
    if (cmd[0].equalsIgnoreCase("ticket")) { 
     if (player.getRights() > 0) { 
      if (World.getTicketList().size() == 0) { 
       player.getPackets().sendGameMessage("No one needs help so sit back and relax."); 
       return true; 
      } 
      String username = World.getTicketList().get(0).toString(); 
      Player p2 = World.getPlayer(username); 
      player.setNextWorldTile(p2); 
      p2.getPackets().sendGameMessage("Please ask your question to " + Misc.formatPlayerNameForDisplay(player.getUsername()) + "."); 
      World.remoteTicket(username.toLowerCase()); 
      return true; 
     } 
     if (World.getTicketList().contains(player.getUsername().toLowerCase())) { 
      player.getPackets().sendGameMessage("You already submitted a ticket.", true); 
      return true; 
     } 
     World.addToTicket(player.getUsername()); 
     player.getPackets().sendGameMessage("Your ticket has been submitted. Your ticket number is " + World.getTicketId(player.getUsername()) + 1 + "."); 
     player.getPackets().sendGameMessage("Make sure that you are not in a PvP area.."); 
     String username = World.getTicketList().get(0).toString(); 
     for (Player players : World.getPlayers()) { 
      if (player.getRights() > 0) { 
       players.getPackets().sendGameMessage(Misc.formatPlayerNameForDisplay(player.getUsername()) + " has issued a assistance request.", true); 
      } 
     } 
     return true; 
    } 
} 

编辑该行发生了:

这里是getPlayers代码

public static final EntityList getPlayers() { 
    return players; 
} 
+0

发布您的EntityList的定义。 – Perception 2012-02-04 02:21:45

回答

0

确保无论World.getPlayers()返回实现java.lang.Iterable

+0

谢谢,这并没有工作,虽然 只能遍历数组或java.lang.Iterable的实例 我会发布代码。 – user1188754 2012-02-04 01:45:21

+0

哎呦。投射到玩家[],而不是玩家。我编辑了这篇文章。试试看。 – Oleksi 2012-02-04 01:47:26

+0

嗯,似乎仍然没有工作。现在得到这个,不能从EntityList投射到Player [] – user1188754 2012-02-04 01:49:14

0

问题在for循环中。将其更改为

for (Object player : World.getPlayers()) { 
    if (((Player)player).getRights() > 0) 
     players.getPackets().sendGameMessage(Misc.formatPlayerNameForDisplay(player.getUsername())+" has issued a assistance request.", true); 
    } 
} 

这应该有效。

相关问题