Closes #31 schematic_search #39
@ -13,10 +13,7 @@ import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.SkullMeta;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
|
||||
class GUI {
|
||||
private GUI(){}
|
||||
@ -182,4 +179,32 @@ class GUI {
|
||||
inv.setCallback(-999, (ClickType click) -> p.closeInventory());
|
||||
inv.open();
|
||||
}
|
||||
|
||||
static void listSearch(Player player, String search) {
|
||||
List<Pair<SWItem, Schematic>> schemList = new LinkedList<>();
|
||||
List<Schematic> filteredSchems = new ArrayList<>();
|
||||
|
||||
for(Schematic currentSchem : filteredSchems) {
|
||||
if(currentSchem.getSchemName().toLowerCase().contains(search.toLowerCase()))
|
||||
filteredSchems.add(currentSchem);
|
||||
|
||||
}
|
||||
|
||||
for(Schematic currentSchem : filteredSchems) {
|
||||
Lixfel
hat
Wie geschrieben, immer empty. Wie geschrieben, immer empty.
Yaruma3341
hat
ist auch nur ein Folgefehler des ersten Fehlers ^^ ist auch nur ein Folgefehler des ersten Fehlers ^^
|
||||
Material m;
|
||||
if (currentSchem.getItem().isEmpty())
|
||||
m = SWItem.getMaterial("CAULDRON_ITEM");
|
||||
else
|
||||
m = SWItem.getMaterial(currentSchem.getItem());
|
||||
|
||||
SWItem item = new SWItem(m, "§e" + currentSchem.getSchemName(), Collections.singletonList("§7" + currentSchem.getSchemType().name()), !currentSchem.getSchemType().writeable(), click -> {});
|
||||
schemList.add(new Pair<>(item, currentSchem));
|
||||
}
|
||||
|
||||
SWListInv<Schematic> inv = new SWListInv<>(player, "§eSuchergebnisse", (clickType, schem) -> {
|
||||
player.closeInventory();
|
||||
info(player, schem);
|
||||
}, schemList);
|
||||
inv.setCallback(-999, (ClickType click) -> player.closeInventory());
|
||||
inv.open();
|
||||
}
|
||||
}
|
||||
|
@ -68,6 +68,9 @@ public class SchematicCommand implements CommandExecutor {
|
||||
case "download":
|
||||
download(player, args);
|
||||
break;
|
||||
case "search":
|
||||
search(player, args);
|
||||
break;
|
||||
default:
|
||||
help(player);
|
||||
}
|
||||
@ -330,6 +333,14 @@ public class SchematicCommand implements CommandExecutor {
|
||||
download(player, schematic);
|
||||
}
|
||||
|
||||
private void search(Player player, String[] args) {
|
||||
if(args.length != 1) {
|
||||
help(player);
|
||||
Lixfel
hat
Könntest du den search-Befehl noch in der Suche hinterlegen? Könntest du den search-Befehl noch in der Suche hinterlegen?
Yaruma3341
hat
natürlich ^^ natürlich ^^
|
||||
return;
|
||||
}
|
||||
GUI.listSearch(player, args[0]);
|
||||
}
|
||||
|
||||
static void download(Player player, Schematic schematic){
|
||||
if(schematic.getSchemOwner() != SteamwarUser.get(player.getUniqueId()).getId()){
|
||||
player.sendMessage("§cDu darfst nur deine eigenen Schematics herunterladen!");
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren
Information: Du darfst keine Elemente hinzufügen/löschen aus der Liste, durch die du gerade durchiterierst.
ja stimmt, wird hier aber nie eintreffen, da es sich um einen Programmierfehler handelt