2016-04-19 12 views
1

プレイヤーカウントと最大プレイヤーをバーチャルのようにしたいのですが、正しい数字である必要はありません。私は最大のプレイヤーカウントのために仮想番号を設定したいと思う私は方法setMaxPlayers(int mxPlayers) from the ServerListPing Eventを使用することができます。しかし、オンラインプレーヤーはどうですか?また、プラグインでクエリを介してPlayersを取得しようとするとうまくいきますか?バーチャルプレイヤー数と最大プレイヤー

はあなたの助けと私の悪い英語のため申し訳ありませんありがとうござい;)

答えて

1

ServerListPingEventを通じて選手の数を設定するための直接的な方法はありません。私は確信していませんなぜ彼らはそれをそのように実装することを選択しました。

DOCから

表示される選手は、このイベントを反復処理によって確認し、除去することができます。

だから、仮に、あなた(と、それは数を更新します)そのリストを編集することである選手を変更することができます。そうしたいと思えば、カウントを減らすことができます(数字を減らすことしかできないので、それが役に立つかどうかは分かりません)。

int wantedCount = 5; 

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

しかし、最良の選択はProtocolLibを使用して、それを使用してではなく、イベントを使用しようとserver list ping packetを編集することです。


そして、私はプラグインで、クエリを経由してプレーヤーを取得しようとする場合にも動作しますか?

私はあなたが何を意味全くわからないんだけど、あなたは、イベントへの変更は、それに影響を与えないようにServerListPingEventを使用していないBukkit.getPlayers()を、使用することを意味場合。

+0

ありがとうございます。オンラインプレーヤーより多くのプレーヤーを表示したい場合、どうすれば解決できますか?私はTeleportSignsがクエリを使用してプレイヤーカウントを取得し、それをサインに表示すると考えています。 – Nightfighter001

+0

@ Nightfighter001私はProtocolLibを書きます。私はそのサーバーでBungeeCordを使用していると仮定していますか?その場合、プラグインはおそらくサーバーリストpingを使用します。だから、TeleportSignsはおそらくそれで使えるだろう。ただし、[TeleportSignsはオープンソース](https://github.com/zh32/TeleportSigns)ですので、必要な作業に応じてプラグインを編集したい場合があります。 – Pokechu22

+0

はい私はBungeeCordを使用:)と私は私の質問に答えていると思うありがとう:) – Nightfighter001