SteamWar/BungeeCore
Archiviert
13
2

ModCommand #445

Zusammengeführt
Lixfel hat 21 Commits von ModCommand nach master 2023-02-14 09:13:46 +01:00 zusammengeführt
Mitglied

Ermöglicht das einstufen von mods ingame, sowie das finden von uneingestuften mods.

Ermöglicht das einstufen von mods ingame, sowie das finden von uneingestuften mods.
zOnlyKroks hat 2 Commits 2023-01-04 15:16:42 +01:00 hinzugefügt
Push initial implementation
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
1bec6c4cd4
Check if mod exists in database
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
e0a1542b03
zOnlyKroks hat den Titel von ModCommand zu WIP: ModCommand 2023-01-04 15:17:27 +01:00 geändert
Lixfel hat 2023-01-04 18:41:09 +01:00 Änderungen angefragt
Lixfel hat einen Kommentar hinterlassen
Besitzer

Statt /classifymod next evtl. direkt /classifymod? Dazu evtl. die Möglichkeit, die Klassifizierungsoptionen direkt im Chat anzuklicken, oder besser eine GUI (wegen Autoscrolling). Dann hast du auch nicht die Namensambiguität.

Statt /classifymod next evtl. direkt /classifymod? Dazu evtl. die Möglichkeit, die Klassifizierungsoptionen direkt im Chat anzuklicken, oder besser eine GUI (wegen Autoscrolling). Dann hast du auch nicht die Namensambiguität.
@ -163,6 +163,8 @@ public class BungeeCore extends Plugin {
new CalendarCommand();
new CalendarListener();
new ModCommand();
Besitzer

Wird das CommandFramework nicht anders initialisiert?

Wird das CommandFramework nicht anders initialisiert?
Autor
Mitglied

nein. und es funktioniert so

nein. und es funktioniert so
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +13,4 @@
public class ModCommand extends SWCommand {
private static final Statement set = new Statement("UPDATE Mods Set ModType = ? WHERE ModName = ?");
Besitzer

Der Modname ist nicht eindeutig (Modloader spielt auch noch eine Rolle)

Der Modname ist nicht eindeutig (Modloader spielt auch noch eine Rolle)
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +16,4 @@
private static final Statement set = new Statement("UPDATE Mods Set ModType = ? WHERE ModName = ?");
private static final Statement findFirst = new Statement("SELECT * FROM Mods WHERE ModType = 0 LIMIT 1");
private static final Statement get = new Statement("SELECT * FROM Mods WHERE ModName = ?");
Besitzer

Bitte wenn direkt korrekt mit allem drum und dran im SQL-Modul als Mod-Klasse machen. Allgemein gerade schwieriger Zeitpunkt, weil das auch irgendwann demnächst in den CommonCore kommt.

Bitte wenn direkt korrekt mit allem drum und dran im SQL-Modul als Mod-Klasse machen. Allgemein gerade schwieriger Zeitpunkt, weil das auch irgendwann demnächst in den CommonCore kommt.
Autor
Mitglied

Wie meinst du das mi als Mod-Klasse? Würde ich interpretieren vom test her das ich die ganze klasse ins sql modul schiebe.

Wie meinst du das mi als Mod-Klasse? Würde ich interpretieren vom test her das ich die ganze klasse ins sql modul schiebe.
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +19,4 @@
private static final Statement get = new Statement("SELECT * FROM Mods WHERE ModName = ?");
public ModCommand() {
super("mod", "bungeecore.teamchat", "mods");
Besitzer

Bitte nur /classifymod, und die Berechtigung sollte eher an bungeecore.softreload gebunden werden. Wobei ich denke, dass das doch hier nicht korrekt ist mit dem CommandFramework, das arbeitet doch gar nicht mit diesen Berechtigungen?

Bitte nur /classifymod, und die Berechtigung sollte eher an bungeecore.softreload gebunden werden. Wobei ich denke, dass das doch hier nicht korrekt ist mit dem CommandFramework, das arbeitet doch gar nicht mit diesen Berechtigungen?
Autor
Mitglied

werde ich bald testen

werde ich bald testen
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +27,4 @@
SteamwarUser user = SteamwarUser.get(p.getUniqueId());
UserGroup group = user.getUserGroup();
if(!group.isAdminGroup()) {
Besitzer

Auch hier.

Auch hier.
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +34,4 @@
boolean modExists = get.select(ResultSet::next,modName);
System.out.println(modExists);
Besitzer

DebugCode

DebugCode
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +46,4 @@
Message.send("MOD_CHANGED_TYPE",p,modName,newModType);
}
@Register(value = {"next"},description = "MOD_COMMAND_NEXT_USAGE")
Besitzer

Die Description braucht es nicht.

Die Description braucht es nicht.
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +51,4 @@
SteamwarUser user = SteamwarUser.get(p.getUniqueId());
UserGroup group = user.getUserGroup();
if(!group.isAdminGroup()) {
Besitzer

Ich glaube, dafür gibt es schon eine Restriktionsmöglichkeit im CommandSystem, bitte die direkt dafür nutzen.

Ich glaube, dafür gibt es schon eine Restriktionsmöglichkeit im CommandSystem, bitte die direkt dafür nutzen.
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +68,4 @@
return;
}
Message.send("MOD_FOUND_NEXT_MOD",p,foundMod);
Besitzer

Bitte noch die Information hinzufügen, welcher Modloader.

Bitte noch die Information hinzufügen, welcher Modloader.
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -32,4 +31,3 @@
import net.md_5.bungee.api.chat.ClickEvent;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import java.net.InetSocketAddress;
Besitzer

Unrelated Changes bitte entfernen (das gibt dir sonst Mergeconflicts mit deinem Whois-Branch)

Unrelated Changes bitte entfernen (das gibt dir sonst Mergeconflicts mit deinem Whois-Branch)
zOnlyKroks markierte diese Unterhaltung als gelöst
Besitzer

Nur mal so ne Anmerkung:
Mein Plan war so ein Frontend für die Mods-Tabelle auch in das EventTool ein zu bauen (Chaoscaot/steamwar_multitool#4)

Nur mal so ne Anmerkung: Mein Plan war so ein Frontend für die Mods-Tabelle auch in das EventTool ein zu bauen (https://steamwar.de/devlabs/Chaoscaot/steamwar_multitool/issues/4)
Besitzer

Das halte ich für den falschen Ort, die Ingame-Lösung finde ich viel komfortabler.

Das halte ich für den falschen Ort, die Ingame-Lösung finde ich viel komfortabler.
Besitzer

Eine nicht Ingame-Lösung ist nicht an ein TUI oder ein Kisten-GUI gebunden, was die Darstellung um einiges verbessert, imho.

Eine nicht Ingame-Lösung ist nicht an ein TUI oder ein Kisten-GUI gebunden, was die Darstellung um einiges verbessert, imho.
zOnlyKroks hat 1 Commit 2023-01-04 20:31:39 +01:00 hinzugefügt
Push fixes
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
dc234b2b33
Autor
Mitglied

warum nicht beides

warum nicht beides
Besitzer

Weil ich kaum glaube, das Chaoscaot eine deutlich bessere grafische Repräsentation als phpMyAdmin geschaffen hat.

Weil ich kaum glaube, das Chaoscaot eine deutlich bessere grafische Repräsentation als phpMyAdmin geschaffen hat.
Autor
Mitglied

die commands bleiben erstmal, gui werde ich aber parralel dazu einarbeiten.

die commands bleiben erstmal, gui werde ich aber parralel dazu einarbeiten.
zOnlyKroks hat 1 Commit 2023-01-06 22:11:31 +01:00 hinzugefügt
wip ingame gui
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
c59da8ff49
zOnlyKroks hat 1 Commit 2023-01-06 23:41:07 +01:00 hinzugefügt
Ingamegui Working
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
d58ae049cf
zOnlyKroks hat den Titel von WIP: ModCommand zu ModCommand 2023-01-06 23:41:22 +01:00 geändert
zOnlyKroks hat 1 Commit 2023-01-06 23:41:44 +01:00 hinzugefügt
remove typo
Einige Prüfungen sind fehlgeschlagen
SteamWarCI Build failed
60f6a9cb4c
Chaoscaot hat 2023-01-07 18:00:20 +01:00 Änderungen angefragt
@ -0,0 +23,4 @@
private static final Statement get = new Statement("SELECT * FROM Mods WHERE ModName = ? AND Platform = ?");
private static final Statement getAll = new Statement("SELECT * FROM Mods ORDER BY ModName DESC LIMIT ?, ?");
Besitzer

SQL-Statements gehören in das SQL-Package, da sollte es eine Mod-Klasse geben, da gehören die rein

SQL-Statements gehören in das SQL-Package, da sollte es eine Mod-Klasse geben, da gehören die rein
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +31,4 @@
@Register()
public void genericCommand(ProxiedPlayer p) {
SWStreamInv<ModEntry> swStreamInv = new SWStreamInv<>(p,Message.parse("MOD_COMMAND_GUI_TITLE",p), (click, element) -> {
Besitzer

Das Inventar im aktuellen Status ist etwas Fraglich, es zeigt einem alle Mods an (ca. 1700, 38 Seiten).

Es sollte nur die nicht-Klassifizierten anzeigen oder alle mit ein Paar Filter funktionen eg. Name, Klassifizierung

Das Inventar im aktuellen Status ist etwas Fraglich, es zeigt einem alle Mods an (ca. 1700, 38 Seiten). Es sollte nur die nicht-Klassifizierten anzeigen oder alle mit ein Paar Filter funktionen eg. Name, Klassifizierung
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +45,4 @@
int modPlatform = element.platform.get();
swInventory.addItem(2,new SWItem("GRAY_CONCRETE","Unclassified"), (click1 -> set.update(0,modName,modPlatform)));
swInventory.addItem(3,new SWItem("GREEN_CONCRETE", "Allowed"), (click1 -> set.update(1,modName,modPlatform)));
Besitzer

Nach dem Komma (überall) sollte auch eine Leerzeichen hin, aber wenn dann nicht noch mischen.

Nach dem Komma (überall) sollte auch eine Leerzeichen hin, aber wenn dann nicht noch mischen.
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +47,4 @@
swInventory.addItem(2,new SWItem("GRAY_CONCRETE","Unclassified"), (click1 -> set.update(0,modName,modPlatform)));
swInventory.addItem(3,new SWItem("GREEN_CONCRETE", "Allowed"), (click1 -> set.update(1,modName,modPlatform)));
swInventory.addItem(4,new SWItem("YELLOW_CONCRETE", "Pending"),(click1 -> set.update(2,modName,modPlatform)));
swInventory.addItem(5,new SWItem("RED_CONCRETE","Forbidden"),(click1 -> set.update(3,modName,modPlatform)));
Besitzer

Funktionieren die Dinger auch pre-Flattinging (pre 1.13), vllt. Farbstoffe?

Funktionieren die Dinger auch pre-Flattinging (pre 1.13), vllt. Farbstoffe?
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +48,4 @@
swInventory.addItem(3,new SWItem("GREEN_CONCRETE", "Allowed"), (click1 -> set.update(1,modName,modPlatform)));
swInventory.addItem(4,new SWItem("YELLOW_CONCRETE", "Pending"),(click1 -> set.update(2,modName,modPlatform)));
swInventory.addItem(5,new SWItem("RED_CONCRETE","Forbidden"),(click1 -> set.update(3,modName,modPlatform)));
swInventory.addItem(6,new SWItem("PURPLE_CONCRETE", "YT_only"),(click1 -> set.update(4,modName,modPlatform)));
Besitzer

Namen an besten auch in die .properties Datei und keine Unterstriche als Leerzeichen

Namen an besten auch in die .properties Datei und keine Unterstriche als Leerzeichen
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +119,4 @@
return;
}
Message.send("MOD_FOUND_NEXT_MOD",p,foundMod.getKey(), Mod.Platform.getByValue(foundMod.getValue()));
Besitzer

Hier sollten noch Klickbare Nachrichten zum einstufen hinzukommen

Hier sollten noch Klickbare Nachrichten zum einstufen hinzukommen
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +122,4 @@
Message.send("MOD_FOUND_NEXT_MOD",p,foundMod.getKey(), Mod.Platform.getByValue(foundMod.getValue()));
}
private class ModEntry {
Besitzer

Kann auch durch Mod klasse ersetzt werden

Kann auch durch Mod klasse ersetzt werden
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -91,6 +102,7 @@ public class Mod {
ModType(int value){
this.value = value;
}
@Getter
Besitzer

In Zeile 71 gibts so etwas ähnliches, wird auch oben genutzt anstatt getValue

In Zeile 71 gibts so etwas ähnliches, wird auch oben genutzt anstatt `getValue`
zOnlyKroks markierte diese Unterhaltung als gelöst
zOnlyKroks hat 1 Commit 2023-01-08 14:21:35 +01:00 hinzugefügt
Finalise GUI and implement item names (not yet final)
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
69aa98e82e
Lixfel hat 2023-01-10 11:53:37 +01:00 Änderungen angefragt
Lixfel hat einen Kommentar hinterlassen
Besitzer

Irgendwie habe ich bei dem Branch das Gefühl, man habe einfach mal sämtliche Ideen von Objektorientierung und Kapselung aus dem Fenster geworfen und damit alles komplexer gemacht, als es hätte sein müssen.

Irgendwie habe ich bei dem Branch das Gefühl, man habe einfach mal sämtliche Ideen von Objektorientierung und Kapselung aus dem Fenster geworfen und damit alles komplexer gemacht, als es hätte sein müssen.
@ -0,0 +1,191 @@
package de.steamwar.bungeecore.commands;
Besitzer

Fehlender License-Header

Fehlender License-Header
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +26,4 @@
public ModCommand() {
super("mod", "bungeecore.softreload", "mods");
}
private static FilterType filtertype = FilterType.ALL;
Besitzer

Das das dann der Filter für alle Nutzer zeitgleich angepasst/gesetzt wird, halte ich für ziemlich problematisch.

Das das dann der Filter für alle Nutzer zeitgleich angepasst/gesetzt wird, halte ich für ziemlich problematisch.
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +28,4 @@
}
private static FilterType filtertype = FilterType.ALL;
@Register()
Besitzer

Klammer hier unnötig.

Klammer hier unnötig.
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +35,4 @@
private void openGui(ProxiedPlayer p) {
SWStreamInv<ModEntry> swStreamInv = new SWStreamInv<>(p,Message.parse("MOD_COMMAND_GUI_TITLE",p), (click, element) -> {
SWInventory swInventory = new SWInventory(p,9,Message.parse("MOD_COMMAND_GUI",p));
Besitzer

Könnten wir diese Lambda-Funktion (mit nur dem Spieler und Mod als Argument) bitte der Lesbarkeit wegen in eine separate Methode auslagern?

Könnten wir diese Lambda-Funktion (mit nur dem Spieler und Mod als Argument) bitte der Lesbarkeit wegen in eine separate Methode auslagern?
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +40,4 @@
String modName = element.modName;
int modPlatform = element.platform.get();
swInventory.addItem(2, new SWItem(Message.parse("MOD_UNCLASSIFIED",p),8), (click1 -> Mod.set.update(0, modName, modPlatform)));
Besitzer

Nach dem Klassifizieren würde ich direkt wieder die Hauptgui öffnen (es ist unwahrscheinlich, dass man den gleichen Mod hintereinander mehrfach klassifizieren möchte)

Nach dem Klassifizieren würde ich direkt wieder die Hauptgui öffnen (es ist unwahrscheinlich, dass man den gleichen Mod hintereinander mehrfach klassifizieren möchte)
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +51,4 @@
openGui(p);
});
swInventory.open();
Besitzer

In dem Fall wird hier anders als in Zeile 50 die GUI nicht vorher geschlossen. Musst du testen/untersuchen, ob das gemacht werden sollte und beide Fälle nach Untersuchungsergebnis vereinheitlichen.

In dem Fall wird hier anders als in Zeile 50 die GUI nicht vorher geschlossen. Musst du testen/untersuchen, ob das gemacht werden sollte und beide Fälle nach Untersuchungsergebnis vereinheitlichen.
Autor
Mitglied

Ich tue das in den anderen fällen weil es sich komisch verhalten hat. Hier tut es ohne probleme

Ich tue das in den anderen fällen weil es sich komisch verhalten hat. Hier tut es ohne probleme
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +136,4 @@
Message.send("MOD_COMMAND_INFO",p,modName,platform.name(),Mod.ModType.valueOf(getModType(modName,platform.get())).name());
}
private int getModType(String modName,int modPlatform) {
Besitzer

Wenn du das Mod-Object hast, weißt du schon, welcher Typ das ganze ist...

Wenn du das Mod-Object hast, weißt du schon, welcher Typ das ganze ist...
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +164,4 @@
Message.send("MOD_FOUND_NEXT_MOD",p,"MOD_OPEN_GUI",new ClickEvent(ClickEvent.Action.RUN_COMMAND,""),foundMod.getKey(),Mod.Platform.getByValue(foundMod.getValue()));
}
private enum FilterType {
Besitzer

Wie wäre es, statt ALL null zu verwenden und dann einfach stattdessen das reguläre Mod.ModType-Enum?

Wie wäre es, statt ALL null zu verwenden und dann einfach stattdessen das reguläre Mod.ModType-Enum?
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -0,0 +179,4 @@
}
}
private class ModEntry {
Besitzer

Warum hier eine separate WrapperClasse und nicht einfach Mod verwenden?

Warum hier eine separate WrapperClasse und nicht einfach Mod verwenden?
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -32,4 +31,3 @@
import net.md_5.bungee.api.chat.ClickEvent;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import java.net.InetSocketAddress;
Besitzer

Die Änderungen dieser Datei bitte aus diesem Branch entfernen.

Die Änderungen dieser Datei bitte aus diesem Branch entfernen.
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -22,3 +24,3 @@
public class Mod {
private static final Statement get = new Statement("SELECT * FROM Mods WHERE ModName = ? AND Platform = ?");
public static final Statement get = new Statement("SELECT * FROM Mods WHERE ModName = ? AND Platform = ?");
Besitzer

Nein, das bleibt definitiv private.

Nein, das bleibt definitiv private.
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -27,0 +31,4 @@
public static final Statement getAll = new Statement("SELECT * FROM Mods ORDER BY ModName DESC LIMIT ?, ?");
public static final Statement getAllFiltered = new Statement("SELECT * FROM Mods WHERE ModType = ? ORDER BY ModName DESC LIMIT ?, ?");
Besitzer

Auch hier alle private. Das SQL-Zeugs bleibt in .sql. Du reichst dann wenn eine List<Mod> nach draußen, alles außerhalb hat nichts mit SQL am Hut.

Auch hier alle private. Das SQL-Zeugs bleibt in .sql. Du reichst dann wenn eine List\<Mod> nach draußen, alles außerhalb hat nichts mit SQL am Hut.
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -72,2 +81,4 @@
return value;
}
public static Platform getByValue(int val) {
Besitzer

Die Methode braucht es nicht, schließlich sind Mod-Objects schon entsprechend geparst.

Die Methode braucht es nicht, schließlich sind Mod-Objects schon entsprechend geparst.
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -81,3 +99,3 @@
YOUTUBER_ONLY(4);
static ModType valueOf(int value){
public static ModType valueOf(int value){
Besitzer

lass es private/Package-private.

lass es private/Package-private.
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -91,6 +109,7 @@ public class Mod {
ModType(int value){
this.value = value;
}
@Getter
Besitzer

Dann nicht mehr benötigt.

Dann nicht mehr benötigt.
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -659,0 +665,4 @@
MOD_FOUND_NEXT_MOD=§7Next unclassified mod is {0}!
MOD_COMMAND_NOT_FOUND_IN_DATABASE=§7The Mod {0} on platform {1} was§c not §7found in the database!
MOD_COMMAND_INFO=§7The mod {0} on platform {1} is of the type {2}.
MOD_COMMAND_GUI_TITLE=§7Unclassified Mods
Besitzer

GUI-Titel sind die einzigen Fälle, wo kein Color-Coding stattfinden sollte.

GUI-Titel sind die einzigen Fälle, wo kein Color-Coding stattfinden sollte.
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -659,0 +674,4 @@
MOD_FORBIDDEN=Forbidden
MOD_YT=YT Only
MOD_ALL=All
MOD_ITEM_BACK=Back
Besitzer

Color-Coding bei diesem Eintrag und den Vorhergehenden fehlend.

Und bitte auch eine deutsche Übersetzung!

Color-Coding bei diesem Eintrag und den Vorhergehenden fehlend. Und bitte auch eine deutsche Übersetzung!
Autor
Mitglied

jap, die sind noch wip

jap, die sind noch wip
zOnlyKroks markierte diese Unterhaltung als gelöst
zOnlyKroks hat 1 Commit 2023-01-10 13:27:22 +01:00 hinzugefügt
Finalise GUI and implement item names (not yet final)
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
8def39d376
zOnlyKroks hat 1 Commit 2023-01-13 22:05:19 +01:00 hinzugefügt
Fix pushed commoncore
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
5d979310ff
YoyoNow hat 1 Commit 2023-01-13 22:18:43 +01:00 hinzugefügt
Revert CommonCore
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
aa9bd8b00f
Lixfel hat 2023-01-15 12:54:30 +01:00 Änderungen angefragt
Lixfel hat einen Kommentar hinterlassen
Besitzer

Was mir jetzt erstmal nur so aufgefallen ist (habe noch nicht alles durchgeschaut)

Was mir jetzt erstmal nur so aufgefallen ist (habe noch nicht alles durchgeschaut)
@ -32,4 +31,3 @@
import net.md_5.bungee.api.chat.ClickEvent;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import java.net.InetSocketAddress;
Besitzer

Chrmm. Diesen Changediff bitte aufräumen. (Du hast die Datei anderweitig nicht verändert).

Chrmm. Diesen Changediff bitte aufräumen. (Du hast die Datei anderweitig nicht verändert).
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -135,6 +136,7 @@ public class ConnectionListener extends BasicListener {
public void onDisconnect(PlayerDisconnectEvent e){
ChallengeCommand.remove(e.getPlayer());
MsgCommand.remove(e.getPlayer());
ModCommand.playerFilterType.remove(e.getPlayer());
Besitzer

Das gibt einen MergeConflict mit deinem anderen Branch (nur schonmal vorneweg die Warnung)

Das gibt einen MergeConflict mit deinem anderen Branch (nur schonmal vorneweg die Warnung)
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -47,6 +62,53 @@ public class Mod {
return new Mod(modName, platform, ModType.UNKLASSIFIED);
}
public static Mod get(String modName, int platform) {
Besitzer

Die Methode dürfte nach den anderen Änderungen nicht mehr nötig sein.

Die Methode dürfte nach den anderen Änderungen nicht mehr nötig sein.
Lixfel markierte diese Unterhaltung als gelöst
@ -50,0 +66,4 @@
return get(modName,Mod.Platform.valueOf(platform));
}
public static ModType getModType(String modName,Mod.Platform platform) {
Besitzer

Mach daraus doch bitte eine normale Member-Methode. (also getModType(){return modType;})

Mach daraus doch bitte eine normale Member-Methode. (also getModType(){return modType;})
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -50,0 +70,4 @@
return get(modName,platform).modType;
}
public static void setMod(Mod.ModType newModType,String modName,Mod.Platform platform) {
Besitzer

Bitte umbenennen in setModType und in Member-Funktion umwandeln (wie getModType)!

Bitte umbenennen in setModType und in Member-Funktion umwandeln (wie getModType)!
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -50,0 +74,4 @@
set.update(newModType.value ,modName,platform.value);
}
public static boolean doesModExist(String modName,Mod.Platform modPlatform) {
Besitzer

Schöner wäre (weil ansonsten doppelter Datenbankzugriff) wenn du die derzeitige get()-Methode umbennenen würdest in z.B. getOrCreate() und den eigentlichen get() Anteil der Methode in eine neue get()-Methode auslagerst, welche einfach null zurückliefert, wenn der Mod nicht existiert. (Weniger Codeduplication, weniger DB-Calls)

Schöner wäre (weil ansonsten doppelter Datenbankzugriff) wenn du die derzeitige get()-Methode umbennenen würdest in z.B. getOrCreate() und den eigentlichen get() Anteil der Methode in eine neue get()-Methode auslagerst, welche einfach null zurückliefert, wenn der Mod nicht existiert. (Weniger Codeduplication, weniger DB-Calls)
Lixfel markierte diese Unterhaltung als gelöst
@ -50,0 +82,4 @@
return Mod.getAll.select(rs -> {
List<Mod> f = new ArrayList<>();
while(rs.next()){
Mod entry = new Mod(rs.getString("ModName"), Mod.Platform.valueOf(rs.getInt("Platform")),Mod.ModType.valueOf(rs.getInt("ModType")));
Besitzer

Es wäre evtl. geschickt, einen neuen Konstruktor, welcher ein ResultSet nimmt und SQLExceptions wirft zu machen.

Es wäre evtl. geschickt, einen neuen Konstruktor, welcher ein ResultSet nimmt und SQLExceptions wirft zu machen.
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -50,0 +83,4 @@
List<Mod> f = new ArrayList<>();
while(rs.next()){
Mod entry = new Mod(rs.getString("ModName"), Mod.Platform.valueOf(rs.getInt("Platform")),Mod.ModType.valueOf(rs.getInt("ModType")));
f.add(entry);
Besitzer

du kannst das new inlinen (also f.add(new Mod...))

du kannst das new inlinen (also f.add(new Mod...))
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -50,0 +89,4 @@
},page * elementsPerPage, elementsPerPage);
}
public static List<Mod> getAllModsFiltered(int page,int elementsPerPage, Mod.ModType filter) {
Besitzer

Statt filtered würde ich eher getAllModsOfType verwenden... (auch SQL-Statement so umbenennen)

Statt filtered würde ich eher getAllModsOfType verwenden... (auch SQL-Statement so umbenennen)
Autor
Mitglied

damit würde ich aber permanent einen filter applien. wenn ich dies aber nicht möchte, brauch ich das statement ohne filter

damit würde ich aber permanent einen filter applien. wenn ich dies aber nicht möchte, brauch ich das statement ohne filter
Besitzer

Was ja auch der Methodenname "ofType" impliziert. Damit ändert sich ja nichts am Methodeninhalt, nur statt filtered - ofType im Namen.

Was ja auch der Methodenname "ofType" impliziert. Damit ändert sich ja nichts am Methodeninhalt, nur statt filtered - ofType im Namen.
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -50,0 +100,4 @@
},filter.value, page * elementsPerPage, elementsPerPage);
}
public static Pair<String,Integer> findFirstMod() {
Besitzer

Gib hier doch einfach einen Mod zurück. Spart die obskuren apache-Imports und macht dir doch auch sonst das Leben einfacher, oder?

Gib hier doch einfach einen Mod zurück. Spart die obskuren apache-Imports und macht dir doch auch sonst das Leben einfacher, oder?
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -68,2 +130,4 @@
this.value = value;
}
static Platform valueOf(int value){
Besitzer

Sollte mit den anderen Änderungen nicht mehr nötig sein.

Sollte mit den anderen Änderungen nicht mehr nötig sein.
Autor
Mitglied

durch static kontext noch nötig

durch static kontext noch nötig
zOnlyKroks markierte diese Unterhaltung als gelöst
zOnlyKroks hat 1 Commit 2023-01-16 20:01:35 +01:00 hinzugefügt
Update messanges
Einige Prüfungen sind fehlgeschlagen
SteamWarCI Build failed
fe67ad4b60
zOnlyKroks hat 1 Commit 2023-01-16 20:03:38 +01:00 hinzugefügt
Revert unwanted changes
Einige Prüfungen sind fehlgeschlagen
SteamWarCI Build failed
fc5c4922db
zOnlyKroks hat 1 Commit 2023-01-16 20:12:03 +01:00 hinzugefügt
Push fixes
Einige Prüfungen sind fehlgeschlagen
SteamWarCI Build failed
58fb831950
Besitzer

Merge conflicts bitte beheben.

Merge conflicts bitte beheben.
Lixfel hat 2023-01-17 19:12:22 +01:00 Änderungen angefragt
Lixfel hat einen Kommentar hinterlassen
Besitzer

Merge conflicts bitte nicht vergessen. Deine SQL-Klasse ist immer noch absoluter murks.

Merge conflicts bitte nicht vergessen. Deine SQL-Klasse ist immer noch absoluter murks.
@ -20,2 +20,4 @@
package de.steamwar.bungeecore.sql;
import lombok.Getter;
import org.apache.commons.lang3.tuple.ImmutablePair;
Besitzer

Unused imports bitte verwerfen.

Unused imports bitte verwerfen.
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -48,2 +63,4 @@
}
public static Mod get(String modName, int platform) {
return get(modName,Mod.Platform.valueOf(platform));
Besitzer

Hier wird ggf immer noch der Mod erstellt! Bitte benenne die andere Methode getOrCreate um, rufe diese hier nicht auf und nimm hier keinen int als Argument! Nutze dann stattdessen in getOrCreate diese get-Methode (keine Code duplication).

Hier wird ggf immer noch der Mod erstellt! Bitte benenne die andere Methode getOrCreate um, rufe diese hier nicht auf und nimm hier keinen int als Argument! Nutze dann stattdessen in getOrCreate diese get-Methode (keine Code duplication).
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -50,0 +70,4 @@
return get(modName,platform).modType;
}
public void setModType(Mod.ModType newModType,String modName,Mod.Platform platform) {
Besitzer

Bitte modName und platform aus den Argumenten entfernen und von dieser Mod-Instanz verwenden.

Bitte modName und platform aus den Argumenten entfernen und von dieser Mod-Instanz verwenden.
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -50,0 +92,4 @@
findFirst.select(rs -> {
String name = rs.getString("ModName");
int platform = rs.getInt("Platform");
return get(name,Platform.valueOf(platform));
Besitzer

Du hast hier doch bereits schon auch den ModType, warum erstellst du nicht direkt ein Mod-Objekt? So machst du stattdessen nochmal einen Datenbankaufruf!

Du hast hier doch bereits schon auch den ModType, warum erstellst du nicht direkt ein Mod-Objekt? So machst du stattdessen nochmal einen Datenbankaufruf!
zOnlyKroks markierte diese Unterhaltung als gelöst
@ -50,0 +94,4 @@
int platform = rs.getInt("Platform");
return get(name,Platform.valueOf(platform));
});
return null;
Besitzer

Wie wäre es, statt immer null zu returnen, dein Ergebnis von findFirst zu returnen?

Wie wäre es, statt immer null zu returnen, dein Ergebnis von findFirst zu returnen?
zOnlyKroks markierte diese Unterhaltung als gelöst
zOnlyKroks hat 1 Commit 2023-01-21 16:31:22 +01:00 hinzugefügt
Smaller tweaks
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
334459b848
zOnlyKroks hat 2 Commits 2023-01-23 15:40:53 +01:00 hinzugefügt
# Conflicts:
#	src/de/steamwar/bungeecore/listeners/ConnectionListener.java
#	src/de/steamwar/bungeecore/sql/Mod.java
Resolve Merge Conflicts
Einige Prüfungen sind fehlgeschlagen
SteamWarCI Build failed
7dee43c868
zOnlyKroks hat 1 Commit 2023-01-23 15:44:40 +01:00 hinzugefügt
Fix more weird errors
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
87efa9659d
zOnlyKroks hat ein Review von Lixfel 2023-01-23 15:45:32 +01:00 angefragt
Lixfel hat 1 Commit 2023-02-02 11:02:39 +01:00 hinzugefügt
Fix Bugs and code problems
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
48cdfe35f0
Signed-off-by: Lixfel <agga-games@gmx.de>
Lixfel hat die Änderungen 2023-02-02 11:03:31 +01:00 genehmigt
Lixfel hat einen Kommentar hinterlassen
Besitzer

Bitte noch einmal ausgiebig testen @zOnlyKroks ! Da waren immer noch offensichtliche Bugs drinnen, und ich weiß nicht, ob ich alle erwischt habe.

Bitte noch einmal ausgiebig testen @zOnlyKroks ! Da waren immer noch offensichtliche Bugs drinnen, und ich weiß nicht, ob ich alle erwischt habe.
@ -0,0 +1,147 @@
/*
This file is a part of the SteamWar software.
Copyright (C) 2020 SteamWar.de-Serverteam
Besitzer

Du kannst dein Template auch mal Updaten :D

Du kannst dein Template auch mal Updaten :D
zOnlyKroks markierte diese Unterhaltung als gelöst
zOnlyKroks hat 1 Commit 2023-02-06 17:19:14 +01:00 hinzugefügt
Fix license header
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
e3f84c0b4d
zOnlyKroks hat 1 Commit 2023-02-06 17:19:29 +01:00 hinzugefügt
Merge branch 'master' into ModCommand
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
b0eedf3944
zOnlyKroks hat 1 Commit 2023-02-12 20:34:28 +01:00 hinzugefügt
Merge branch 'master' into ModCommand
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
01322548ef
Lixfel hat Commit 6e2546a596 in master 2023-02-14 09:13:46 +01:00 gemerged
Lixfel löschte die Branch ModCommand 2023-02-14 09:13:48 +01:00
Dieses Repo ist archiviert. Du kannst Pull-Requests nicht kommentieren.
Keine Beschreibung angegeben.