2017-04-24 53 views
0

所以我正在开发一个spigot插件。这是关于朋友。如果这个人的命令是查看他的朋友的名单,我需要有页面,每个页面包含7个朋友。事情是,它不是一个朋友列表,总是你的朋友列表发生变化。如何为列表获取多个页面?

案例我有10个朋友。 我会在第一页获得7位朋友,在第二页获得剩余的3位朋友。我有70个朋友。 我会有10页。

编辑:对不起,混乱。我的问题是:我怎样才能使它在例子中。玩家/朋友列表显示页面1与7个朋友或更少,如果他没有7.他有更多的将有第二页:/朋友列表2等等。

+1

请创建一个[最小,完整和可验证示例](https://stackoverflow.com/help/mcve) –

+1

这是一个太宽泛的问题。如果你把它发布在spigot论坛上而不是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 ++; 
    } 
} 

是页面的数组。 你如何显示他们是你的desicion。

+0

感谢我在聊天中向他们展示的回复。 GUI会很好,但我还没有为GUI做任何事情。 –

+0

如果您喜欢答案,请检查它是否正确! 对于那个thx我会很乐意的。 如果你要通过Skype拨打我的电话:introtv – Niton

2

这是代码如何计算需要多少页。它工作95%的时间,如果有人知道更好的解决方案,请编辑这个,因为我也希望改进这个算法。

int friendsPerPage = 5; 
int friendsIHave = 20; 

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

我假设你知道如何获取/朋友列表(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" 
} 

我希望它能让你走上正轨!

相关问题