Add Multi Personal Kits #228
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/FightSystem#228
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren
Keine Beschreibung angegeben.
Branch "multi-kits" 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?
Closes: #202
@ -64,0 +71,4 @@
SWListInv<PersonalKit> inv = new SWListInv<>(player, "§eKit wählen", false, entries, (clickType, kit) -> showKit(player, kit));
if(entries.isEmpty())
inv.setItem(22, new SWItem(Material.BARRIER, "§cKeine Kits gefunden"));
inv.setItem(48, Material.NETHER_STAR, "§eNeues Kit", clickType -> {
Ich würde hier schon die dynamicSize im SWListInv nutzen (vor allem, weil die meisten nicht mehr als eine Handvoll Kits haben werden) und dann die Neue-Kit-Option einfach als letzten Entry in nehmen (Mit PersonalKit = null). Geht aber natürlich auch so.
Ich finde hier sollten wir es auch etwas einheitlich mit dem Schematic GUI halten, deshalb hatte ich es auch so gebaut, dass es sich anfühlt wie das SchematicSystem
@ -64,0 +72,4 @@
if(entries.isEmpty())
inv.setItem(22, new SWItem(Material.BARRIER, "§cKeine Kits gefunden"));
inv.setItem(48, Material.NETHER_STAR, "§eNeues Kit", clickType -> {
SWAnvilInv anvilInv = new SWAnvilInv(player, "§eKit namen eingeben");
Inventartitel eher unkoloriert. Kitname singular & zusammengeschrieben
@ -64,0 +77,4 @@
anvilInv.setCallback(s -> {
SteamwarUser user = SteamwarUser.get(player.getUniqueId());
if(PersonalKit.nameInUse(user.getId(), Config.SchematicType.toDB(), s)) {
player.sendMessage(FightSystem.PREFIX + "§cDieser Kit name wird bereits genutzt!");
Kitname
@ -64,0 +97,4 @@
}
private static void showKit(Player player, PersonalKit kit) {
SWInventory inv = new SWInventory(player, 9, "§e" + kit.getName());
Lass den Fenster-Titel am besten ungefärbt.
@ -64,0 +99,4 @@
private static void showKit(Player player, PersonalKit kit) {
SWInventory inv = new SWInventory(player, 9, "§e" + kit.getName());
inv.setItem(0, Material.LEATHER_CHESTPLATE, "§aKit benutzen", clickType -> useKit(player, kit));
inv.setItem(1, Material.GLASS, "§bPreview", clickType -> preview(player, kit));
b kein Teil der Farbpalette (7??)
@ -64,0 +100,4 @@
SWInventory inv = new SWInventory(player, 9, "§e" + kit.getName());
inv.setItem(0, Material.LEATHER_CHESTPLATE, "§aKit benutzen", clickType -> useKit(player, kit));
inv.setItem(1, Material.GLASS, "§bPreview", clickType -> preview(player, kit));
inv.setItem(4, SWItem.getMaterial("WOOD_AXE"), "§6Kit bearbeiten", clickType -> openKitCreator(player, kit));
6 ist kein Teil der SW-Farbpalette, wir haben ja Stil und kein Weihnachtsbaumsyndrom wie nahezu alle anderen MC-Server): 78e (7 schätzungsweise die "korrekte" Farbe)
@ -64,0 +101,4 @@
inv.setItem(0, Material.LEATHER_CHESTPLATE, "§aKit benutzen", clickType -> useKit(player, kit));
inv.setItem(1, Material.GLASS, "§bPreview", clickType -> preview(player, kit));
inv.setItem(4, SWItem.getMaterial("WOOD_AXE"), "§6Kit bearbeiten", clickType -> openKitCreator(player, kit));
inv.setItem(8, Material.BARRIER, "§cKit Löschen", clickType -> {
löschen klein
@ -64,0 +117,4 @@
inv.open();
}
public static void preview(Player player, PersonalKit kit){
So eine Preview gibt es schon beim normalen Kit wählen, würde dich bitten, das wenn wiederzuverwenden. Ich fände es auch noch gut, wenn diese Ansicht mit den Kitoptionen (showKit) gemergt wird, dass dann im oberen Teil der GUI das Kit zu sehen ist und unten die Optionen dazu angezeigt werden (ich weiß, das macht eine kleine Veränderung der bisherigen Preview-GUI nötig, evtl. lässt du sie dann einfach das SWInventory zurückgeben, dass dann noch nachträglich anklickoptionen hinzugefügt werden können und dann halt die Aufrufende Funktion dann das Inventar .open() muss.
Bitte Code-Duplication entfernen!
👍
Einfach noch das löchen fixen & einmal den aktuellen Stand testen, dann kann die db angepasst werden und das System so in die freie Wildbahn entlassen werden.
@ -64,0 +105,4 @@
inv.setItem(49, SWItem.getMaterial("WOOD_AXE"), "§7Kit bearbeiten", clickType -> openKitCreator(player, kit));
inv.setItem(53, Material.BARRIER, "§cKit löschen", clickType -> {
player.closeInventory();
SWInventory conf = new SWInventory(player, 0, "§cKit " + kit.getName() + " wirklich löchen?");
Kit wirklich löchen?