虚拟玩家数和最大玩家数
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
,所以对事件的更改不会影响它。
我想让 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
,所以对事件的更改不会影响它。