Closes #31 schematic_search #39
@ -13,10 +13,7 @@ import org.bukkit.event.inventory.ClickType;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.SkullMeta;
|
import org.bukkit.inventory.meta.SkullMeta;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.*;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
class GUI {
|
class GUI {
|
||||||
private GUI(){}
|
private GUI(){}
|
||||||
@ -182,4 +179,32 @@ class GUI {
|
|||||||
inv.setCallback(-999, (ClickType click) -> p.closeInventory());
|
inv.setCallback(-999, (ClickType click) -> p.closeInventory());
|
||||||
inv.open();
|
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);
|
||||||
Lixfel
hat
Information: Du darfst keine Elemente hinzufügen/löschen aus der Liste, durch die du gerade durchiterierst. Information: Du darfst keine Elemente hinzufügen/löschen aus der Liste, durch die du gerade durchiterierst.
Yaruma3341
hat
ja stimmt, wird hier aber nie eintreffen, da es sich um einen Programmierfehler handelt ja stimmt, wird hier aber nie eintreffen, da es sich um einen Programmierfehler handelt
|
|||||||
|
}
|
||||||
|
|
||||||
|
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":
|
case "download":
|
||||||
download(player, args);
|
download(player, args);
|
||||||
break;
|
break;
|
||||||
|
case "search":
|
||||||
|
search(player, args);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
help(player);
|
help(player);
|
||||||
}
|
}
|
||||||
@ -330,6 +333,14 @@ public class SchematicCommand implements CommandExecutor {
|
|||||||
download(player, schematic);
|
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){
|
static void download(Player player, Schematic schematic){
|
||||||
if(schematic.getSchemOwner() != SteamwarUser.get(player.getUniqueId()).getId()){
|
if(schematic.getSchemOwner() != SteamwarUser.get(player.getUniqueId()).getId()){
|
||||||
player.sendMessage("§cDu darfst nur deine eigenen Schematics herunterladen!");
|
player.sendMessage("§cDu darfst nur deine eigenen Schematics herunterladen!");
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren
Wird nie durchlaufen, da filteredSchems keine Elemente enthält.
gefixt