2017-04-24 1 views
0

私はspigotプラグインを開発しています。それは友人のことです。その人が友人のリストを見るための命令をした場合、私はページを持つ必要があり、すべてのページには7人の友人が含まれています。事は、あなたの友人リストが変わるのと同じ人が常にいる友達リストではないということです。リストに複数のページを表示するにはどうすればよいですか?

ケース私は10人の友達がいます。 最初のページには7人の友人が、2番目のページには残りの3人がいます。 ケース私は70人の友達がいます。 私は10ページを持っています。

編集:混乱して申し訳ありません。私の質問は:私は例のようにそれを作ることができます。プレイヤーは/友人のリストを持っています。ページ1に7人の友人がいればそれ以下の人は7人です。7人に2人目のページ:/友人リスト2などありますか?

+1

[最小限の完全で検証可能な例](https://stackoverflow.com/help/mcve) –

+1

を作成してください。それはあまりにも広い質問です。そして、あなたがstackoverflowの代わりにスピゴットフォーラムに投稿した方が良いです – Flood2d

+1

あなたが探しているものは名前を持っています。 「ページ区切り」を探してください –

答えて

0

あなたは友達をどのように見かけますか?
GUI(Inventar)またはチャット中ですか? GUIのための
コード(完了していない):

ArrayList<String> players = new ArrayList<>(); 
int pages = ((players.size-(players.size()%7))/7)+(players.size()%7 == 0 ? 0 : 1); 
ArrayList<String>[] pages = new ArrayList<>()[pages]; 
int lastpage = 0; 
int i = 0; 
for(String name : players) 
{ 
    pages[lastpage].add(name);  
    i++; 
    if(i == 6){ 
     i = 0; 
     lastpage ++; 
    } 
} 

ページページの配列です。 これをどのように表示するかはあなたの望みです。

+0

私はチャットでそれらを示す応答をありがとう。 GUIは素晴らしかったですが、私はまだguiのために何もしなかった。 –

+0

あなたが答えが好きなら、それは正しいかもしれません! 私はそのことについて感謝しています。 SkypeでGUIコールをすると、introtv – Niton

2

これは、必要なページ数を計算するコードです。私がこのアルゴリズムを改善しようとしているので、誰かがより良い解決策を知っているなら、これを編集してください。

int friendsPerPage = 5; 
int friendsIHave = 20; 

int pages = (friendsIHave/friendsPerPage) + (friendsIHave % friendsPerPage == 0 ? 0 : 1); 

私は/ friendsリスト(LISTHERE)を取得する方法を知っていると仮定します。 LISTHEREをページ変数に格納しましょう。それでは、単にその内容を印刷することができます:

int page = ... // you have to make this one 
int max = page * friendsPerPage; 
int min = max - friendsPerPage; 
for(int i = min + 1; i <= max; i++) { // loop through all friends in that page 
    // access your friend array here and print it out using "i" 
} 

私はそれがあなたを得ることを望む!

関連する問題