如何创建 ArrayList<Player> Spigot 1.12.2 - Java 8?

How to Create ArrayList<Player> Spigot 1.12.2 - Java 8?

我在 Spigot 1.12.2 中创建 ArrayList<Player> 时遇到问题。我目前正在使用 Java 8 version 231 来编译插件,因为它依赖于 Java 8。当我尝试编写此代码时:

ArrayList<Player> players = new ArrayList<Player>();

for (Player p : players) {
    getServer().broadcastMessage(p.getDisplayName + " Is Online!");
}

有错误告诉我为 JRE 1.5 编译项目。我这样做了,但是在启动服务器时它没有在 CMD 中显示错误。我已经尝试了几个月了,但我还是不明白。

JAVA 7Spigot 1.5.2 中,我能够使上述代码顺利运行,JAVA 8Spigot 升级到版本 1.12.2改变了很多我不知道的。

任何人都可以帮我获取在线玩家列表并将其保存到 List 以便我循环播放吗?

按照您当前编写代码的方式,它将简单地终止,因为这是一个空列表,并且消息永远不会发送给任何玩家。

Spigot 已经有一个方法 Server#getOnlinePlayers(),您可以使用 for each 循环对其进行迭代。

有了它你甚至不需要构造一个新的 ArrayList 你可以简单地做

for(Player p : getServer().getOnlinePlayers()) {
   // Do stuff
}

希望对您有所帮助!