Skip to content

Commit 82f960f

Browse files
committed
Add clickable pagination to search result (#8)
1 parent b17c8b0 commit 82f960f

3 files changed

Lines changed: 37 additions & 3 deletions

File tree

src/main/java/de/themoep/entitydetection/EntityDetection.java

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,10 @@ public EntitySearch getCurrentSearch() {
112112
}
113113

114114
public void send(CommandSender sender, SearchResult<?> result) {
115-
send(sender, result, 0);
115+
send(sender, result, "", 0);
116116
}
117117

118-
public void send(CommandSender sender, SearchResult<?> result, int page) {
118+
public void send(CommandSender sender, SearchResult<?> result, String resultType, int page) {
119119
lastResultViewed.put(sender.getName(), result);
120120

121121
String dateStr = new SimpleDateFormat(getRawMessage(sender, "result.time-format")).format(new Date(result.getEndTime()));
@@ -159,6 +159,33 @@ public void send(CommandSender sender, SearchResult<?> result, int page) {
159159

160160
message = message.append(Component.newline()).append(resultLine);
161161
}
162+
163+
if (results.size() > start + 10) {
164+
if (page == 0) {
165+
message = message.append(Component.newline()).append(getMessage(sender, "result.footer.next-page-only",
166+
"page", String.valueOf(page + 1),
167+
"nextpage", String.valueOf(page + 2),
168+
"resulttype", resultType
169+
));
170+
} else {
171+
message = message.append(Component.newline()).append(getMessage(sender, "result.footer.pagination",
172+
"page", String.valueOf(page + 1),
173+
"previouspage", String.valueOf(page),
174+
"nextpage", String.valueOf(page + 2),
175+
"resulttype", resultType
176+
));
177+
}
178+
} else if (page > 0) {
179+
message = message.append(Component.newline()).append(getMessage(sender, "result.footer.previous-page-only",
180+
"page", String.valueOf(page + 1),
181+
"previouspage", String.valueOf(page),
182+
"resulttype", resultType
183+
));
184+
} else {
185+
message = message.append(Component.newline()).append(getMessage(sender, "result.footer.no-pages",
186+
"page", String.valueOf(page + 1)
187+
));
188+
}
162189
} else {
163190
message = message.append(Component.newline()).append(getMessage(sender, "result.no-entries"));
164191
}

src/main/java/de/themoep/entitydetection/commands/ListSubCommand.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public boolean execute(CommandSender sender, String[] args) {
3535
SearchResult<?> result = getPlugin().getResult(sender);
3636
int page = 1;
3737
String lastName = sender.getName();
38+
String resultType = "";
3839
if(args.length > 0) {
3940
try {
4041
page = Integer.parseInt(args[0]);
@@ -86,6 +87,7 @@ public boolean execute(CommandSender sender, String[] args) {
8687
sender.sendMessage(ChatColor.YELLOW + arg + ChatColor.RED + " is neither a valid EntityType, Material, BlockState, SearchType or alias of a search type?");
8788
return false;
8889
}
90+
resultType = lastName;
8991
}
9092
}
9193

@@ -99,7 +101,7 @@ public boolean execute(CommandSender sender, String[] args) {
99101
return true;
100102
}
101103

102-
getPlugin().send(sender, result, page - 1);
104+
getPlugin().send(sender, result, resultType, page - 1);
103105
return true;
104106
}
105107
}

src/main/resources/languages/lang.en.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ help:
1313
usage: "Usage: &yellow&%usage%"
1414
result:
1515
head: "[%type% search](green hover=%searchedtypes%) from %timestamp% (%duration%ms):"
16+
footer:
17+
pagination: " [&green&<<<](/detect list %previouspage% %resulttype% hover=&blue&Show page %previouspage%) &yellow&Page %page% [&green&>>>](/detect list %nextpage% %resulttype% hover=&blue&Show page %nextpage%)"
18+
next-page-only: " &gray&<<< &yellow&Page %page% [&green&>>>](/detect list %nextpage% %resulttype% hover=&blue&Show page %nextpage%)"
19+
previous-page-only: " [&green&<<<](/detect list %previouspage% %resulttype% hover=&blue&Show page %previouspage%) &yellow&Page %page% &gray&>>>"
20+
no-pages: " &gray&<<< &yellow&Page %page% &gray&>>>"
1621
searched-types:
1722
head: "&yellow&Entity Types:"
1823
entry: " &dark_purple&%type%"

0 commit comments

Comments
 (0)