WIP: Add SchemSearch #467
Keine Reviewer
Label
Kein Label
Bug
Codeverbesserung
Einsteiger Freundlich
Idee
In Arbeit
Neues Feature
Prio A
Security Breach
Überprüfung notwendig
Verbesserung
Zu Beobachten
Kein Meilenstein
Niemand zuständig
2 Beteiligte
Fällig am
Kein Fälligkeitsdatum gesetzt.
Abhängigkeiten
Keine Abhängigkeiten gesetzt.
Referenz: SteamWar/BungeeCore#467
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren
Keine Beschreibung angegeben.
Branch "schemsearch" löschen
Das Löschen eines Branches ist permanent. Obwohl der Branch für eine kurze Zeit weiter existieren könnte, kann diese Aktion in den meisten Fällen NICHT rückgängig gemacht werden. Fortfahren?
Muss es mir nochmal im Detail anschauen, konnte bislang nur darüberfliegen.
@ -0,0 +1,22 @@
package de.steamwar.bungeecore.listeners;
License header
@ -0,0 +1,28 @@
package de.steamwar.bungeecore.network.handlers;
.
@ -0,0 +1,303 @@
package de.steamwar.bungeecore.util;
.
@ -1 +1 @@
Subproject commit 595df40e1e9078c310cbbb4bbded07744c361f15
Subproject commit e8d964d8333f353d9995e8319694077e0f8e063b
Der Commit ist schon im CommonCore-Master?
@ -0,0 +49,4 @@
public class SchematicSearch {
private static final Gson gson = new Gson();
private static final String searchBinary = "/home/chaoscaot/schemsearch/target/release/schemsearch-cli";
Falscher Pfad.
@ -0,0 +55,4 @@
private static ScheduledTask watchdog;
private static void startQueueWatchdog() {
watchdog = BungeeCore.get().getProxy().getScheduler().schedule(BungeeCore.get(), () -> {
Warum den Task ständig starten und stoppen und nicht den Thread ständig offen lassen und einfach eventbasiert auf notifyAll() warten lassen?
@ -0,0 +74,4 @@
public static void queueSearch(ProxiedPlayer player, SchematicNode node, SchematicSearchBehavior behavior) {
SteamwarUser user = SteamwarUser.get(player.getUniqueId());
synchronized (searchQueue) {
if(user.getUserGroup().isAdminGroup()) {
Lass solche Spezialberechtigungen raus.
@ -0,0 +135,4 @@
return removed;
}
private static File schematicNodeToTempFile(NodeData node) {
Der Code in der Funktion (und den folgenden Methoden) wirkt sehr C-mäßig geschrieben. Evtl. kann man das nochmal etwas eleganter formulieren.
@ -0,0 +169,4 @@
this.behavior = behavior;
}
private static String readInputStream(InputStream is) throws IOException {
BufferedInputStream.readline()?
@ -0,0 +187,4 @@
}
private void start() {
task = BungeeCore.get().getProxy().getScheduler().runAsync(BungeeCore.get(), () -> {
Warum hier zwei verschiedene Tasks und nicht diesen Task mit dem "watchdog" konsolidieren?
@ -0,0 +191,4 @@
try {
NodeData data = NodeData.get(node);
if (!data.getNodeFormat()) {
Message.send("SCHEMATIC_SEARCH_NOT_SUPPORTED", player);
Man könnte auch den Grund (altes Format) mit angeben, um dem User zu helfen.
@ -0,0 +203,4 @@
InputStream stderr = process.getErrorStream();
String bar = "";
while (!process.waitFor(200, TimeUnit.MILLISECONDS)) {
Ich weiß nicht, was das harte Timing hier soll, und wie zuverlässig das hier so ist... (und ob das überhaupt nötig ist)
@ -0,0 +274,4 @@
} catch (IOException | InterruptedException e) {
end();
} catch (Exception e) {
end();
Wie wäre es mit einem finally { end(); }? Und welche ungenannten Exception können da noch auftreten, dass die nochmal separat in einer SecurityException gewrappt werden müssen?
@ -121,6 +121,7 @@ MOD_USE_MODSENDER=§cPlease use the §c§lFabricModSender§c (https://steamwar.d
#Various commands
Deutsche Fassung fehlt noch.
@ -690,0 +693,4 @@
SCHEMATIC_SEARCH_QUEUED=§7Your search has been queued and will be executed shortly.
SCHEMATIC_SEARCH_STARTED=§7Your search for "§e{0}§7" has started.
SCHEMATIC_SEARCH_NO_RESULTS=§cNo results found.
SCHEMATIC_SEARCH_RESULT_HEADER=§7Searched in §e{0} §7schematics in§e{1}.
Fehlt ein Leerzeichen? Und (ka was dabei gesucht wird) ist es grammatikalisch korrekt? (Searched {0} schematics in {1})?
@ -690,0 +695,4 @@
SCHEMATIC_SEARCH_NO_RESULTS=§cNo results found.
SCHEMATIC_SEARCH_RESULT_HEADER=§7Searched in §e{0} §7schematics in§e{1}.
SCHEMATIC_SEARCH_RESULT=§7{0}: §e{1}§7% §8(§e{2}§7,§e{3},§e{4}§8)
SCHEMATIC_SEARCH_RESULT_HOVER=§7Click to get more info about {0}.
for more info?
@ -690,0 +698,4 @@
SCHEMATIC_SEARCH_RESULT_HOVER=§7Click to get more info about {0}.
SCHEMATIC_SEARCH_NOT_SUPPORTED=§cThis schematic is not supported by the schematic search.
SCHEMATIC_SEARCH_REMOVED_FROM_QUEUE=§cYour search has been removed from the queue because you switched servers.
SCHEMATIC_SEARCH_REMOVED_FROM_QUEUE_SOFTRELOAD=§cYour search has been removed from the queue because of an update.
software update
@ -690,0 +699,4 @@
SCHEMATIC_SEARCH_NOT_SUPPORTED=§cThis schematic is not supported by the schematic search.
SCHEMATIC_SEARCH_REMOVED_FROM_QUEUE=§cYour search has been removed from the queue because you switched servers.
SCHEMATIC_SEARCH_REMOVED_FROM_QUEUE_SOFTRELOAD=§cYour search has been removed from the queue because of an update.
SCHEMATIC_SEARCH_CANCELED_SOFTRELOAD=§cYour search has been canceled because of an update.
cancelled?
Muss ich mir nochmal in Ruhe genauer ansehen.
@ -651,0 +657,4 @@
SCHEMATIC_SEARCH_RESULT_HOVER=§7Klicke für mehr Informationen
SCHEMATIC_SEARCH_NOT_SUPPORTED=§cDiese Schematic ist in einem alten Format und kann nicht genutzt werden.
SCHEMATIC_SEARCH_REMOVED_FROM_QUEUE=§cDeine Suche wurde aus der Warteschlange entfernt, weil du den Server gewechselt hast.
SCHEMATIC_SEARCH_REMOVED_FROM_QUEUE_SOFTRELOAD=§cWegen eines Software Updates wurde deine Suche aus der Warteschlange entfernt.
Deutsch Softwareupdate statt Software Update
Add SchemSearchzu WIP: Add SchemSearch