13
0

Closes #31 schematic_search #39

Zusammengeführt
Lixfel hat 4 Commits von schematic_search nach master 2020-01-08 17:45:31 +01:00 zusammengeführt
2 geänderte Dateien mit 40 neuen und 4 gelöschten Zeilen
Nur Änderungen aus Commit 44f0f0bd37 werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@ -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) {
Veraltet
Review

Wird nie durchlaufen, da filteredSchems keine Elemente enthält.

Wird nie durchlaufen, da filteredSchems keine Elemente enthält.
Veraltet
Review

gefixt

gefixt
if(currentSchem.getSchemName().toLowerCase().contains(search.toLowerCase()))
filteredSchems.add(currentSchem);
Review

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.
Review

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) {
Review

Wie geschrieben, immer empty.

Wie geschrieben, immer empty.
Review

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();
}
} }

Datei anzeigen

@ -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);
Review

Könntest du den search-Befehl noch in der Suche hinterlegen?

Könntest du den search-Befehl noch in der Suche hinterlegen?
Review

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!");