虚拟玩家数和最大玩家数

Virtual player count and max players

我想让 Player Count 和 max Players 像虚拟的一样,所以它不必是正确的数字。我可以使用方法 setMaxPlayers(int mxPlayers) from the ServerListPing Event 为最大玩家数设置一个虚拟数字。但是在线玩家呢?如果我尝试通过插件中的查询获取玩家,它是否也有效?

感谢您的帮助,抱歉我的英语不好 ;)

没有通过 ServerListPingEvent 设置玩家数量的直接方法。我不确定为什么他们选择那样实施。

来自文档:

Displayed players can be checked and removed by iterating over this event.

所以假设,您 可以 通过编辑该列表来更改那里的玩家(它会更新计数)。因此,如果您愿意,可以减少数量(但是,我不确定这是否有帮助,因为您只能减少数量)。

int wantedCount = 5;

Iterator<Player> itr = event.iterator();
while (event.getNumPlayers() > wantedCount) {
    itr.next();
    itr.remove();
}

但是,最好的选择是 ProtocolLib and edit the server list ping packet 使用它而不是尝试使用该事件。


And does it also work if I try to get the Players via a query in a plugin?

我不完全确定你的意思,但如果你的意思是使用 Bukkit.getPlayers(),那不会使用 ServerListPingEvent,所以对事件的更改不会影响它。