Bukkit Programmieren Boots Speichern

08/20/2015 18:48 Origenes#1
Hey Leute,
ich wollte mal fragen, weil ich boots programmieren wollte wie ich das Speichern kann, ob er das Kit schon gekauft hat oder nicht weil wenn man das Inventar Öffnet steht da ja in der Lore der Preis und wie kann ich mache, falls der die Boots schon gekauft hat, dass da steht Boots auswählen oder so am besten wäre es mit Mysql aber Config würde denke mal auch gehen ^^

Wär echt nett wenn ihr mir da helfen könntet

MFG Origenes
08/20/2015 19:07 ComputerBaer#2
Du hast es doch schon gelöst.

Der Spieler kauft es, du speicherst es ab "SpielerA: kit2" (so als Beispiel). Und wenn du dein Inventar erstellst musst du halt schauen "SpielerA schon ausgewählt" und wenn es der Fall ist Inventar für "Auswahl von SpielerA (also kit2)" anzeigen.

Ich glaube ich habe kein Kit- und Stiefel-Chaos nicht ganz durchschaut, aber das ist die grundlegende Funktion auch eher unerheblich.
08/20/2015 19:28 Origenes#3
Quote:
Originally Posted by ComputerBaer View Post
Du hast es doch schon gelöst.

Der Spieler kauft es, du speicherst es ab "SpielerA: kit2" (so als Beispiel). Und wenn du dein Inventar erstellst musst du halt schauen "SpielerA schon ausgewählt" und wenn es der Fall ist Inventar für "Auswahl von SpielerA (also kit2)" anzeigen.

Ich glaube ich habe kein Kit- und Stiefel-Chaos nicht ganz durchschaut, aber das ist die grundlegende Funktion auch eher unerheblich.
Ja aber wie soll ich das mit der Datenbank machen ? Einen Spieler und für alle boots einen neuen Varchar wo dan 1 oder 2 eingetragen ist oder wie?

Ja tut mir leid bin grad ziemlich durcheinander weil ich das gleiche auch noch für Kits brauche und nicht nur für Boots :D

Mfg Origenes
08/20/2015 20:20 ComputerBaer#4
Es kommt darauf an wie das genau aussieht was du vor hast, aber das kann ich leider nicht erkennen.

Der Spieler wählt genau ein Kit und danach genau ein "Boots" ? Dann könntest du spieler, kit, boots machen. Spieler könnte ein varchar mit name oder besser uuid sein, kit und boots ein varchar oder int mit dem du erkennst was er ausgewählt hat.

Er kann mehrere Sachen auswählen? Dann wäre die sauberste Lösung mehrereTabellen mit Beziehungen, die einfachste zwei (kit, boots) varchar/text in dem du eine Liste mit allen Bezeichnern speicherst.
08/20/2015 20:37 Origenes#5
Quote:
Originally Posted by ComputerBaer View Post
Es kommt darauf an wie das genau aussieht was du vor hast, aber das kann ich leider nicht erkennen.

Der Spieler wählt genau ein Kit und danach genau ein "Boots" ? Dann könntest du spieler, kit, boots machen. Spieler könnte ein varchar mit name oder besser uuid sein, kit und boots ein varchar oder int mit dem du erkennst was er ausgewählt hat.

Er kann mehrere Sachen auswählen? Dann wäre die sauberste Lösung mehrereTabellen mit Beziehungen, die einfachste zwei (kit, boots) varchar/text in dem du eine Liste mit allen Bezeichnern speicherst.
Nein tut mir leid, dass ich das so falsch erklärt habe, aber jedoch möchte ich nur Abfragen ob er die boots schon gekauft hat und wenn nicht, dass er zum kaufen weitergeleitet wird, aber wie mache ich das? Da ich ja dan Pro Boots was anderes erstellen muss oder wie sollte ich das am besten machen ich bin grad irgendwie Planlos die Boots sind fertig bloß die Kauf/auswähl funktion fehlt halt noch ^^

Ps: Danke für deine Hilfe
08/20/2015 21:42 ComputerBaer#6
Was genau?

Wie du es speicherst? Am einfachsten wäre es wohl wenn du in der Datenbank "spieler" und "gekauft" speicherst. "gekauft" ist dann eine Liste z.B. "boot1;boot2;boot3".
Am schönsten wäre es zwar mit drei Tabellen und besser abgespeicherten Informationen, aber ich werde hier jetzt keinen Vortrag zum Thema Datenbanken halten.

Wie du den "Shop" schreibst? Das kann ich nicht detailiert erklären. InventoryClickEvent ist hier wohl das Schlüsselwort.
08/20/2015 22:32 Origenes#7
Quote:
Originally Posted by ComputerBaer View Post
Was genau?

Wie du es speicherst? Am einfachsten wäre es wohl wenn du in der Datenbank "spieler" und "gekauft" speicherst. "gekauft" ist dann eine Liste z.B. "boot1;boot2;boot3".
Am schönsten wäre es zwar mit drei Tabellen und besser abgespeicherten Informationen, aber ich werde hier jetzt keinen Vortrag zum Thema Datenbanken halten.

Wie du den "Shop" schreibst? Das kann ich nicht detailiert erklären. InventoryClickEvent ist hier wohl das Schlüsselwort.

Ja das alles ist nicht das Problem aber wie kann ich das auslesen ? Einfach aus der Datenbank mit "SELECT Boots FROM PunkteSystem WHERE UUID = ?" z.B. aber wie kann ich dan genau prüfen welche er alles gekauft hat ?
08/21/2015 15:51 False#8
Quote:
Originally Posted by Origenes View Post
Ja das alles ist nicht das Problem aber wie kann ich das auslesen ? Einfach aus der Datenbank mit "SELECT Boots FROM PunkteSystem WHERE UUID = ?" z.B. aber wie kann ich dan genau prüfen welche er alles gekauft hat ?
Da gibt es viele Möglichkeiten.... z.b erstellst du eine Player liste wo Spielername UUID etc.. drin steht und dann eine "buyedBoots" Tabelle...In dieser Tabelle gibt es dann nur UUID(Spieler) und Boots(ID) und für die ID hast du dann in JAVA constanten....


Wie die Abfrage dann geht mit SQL ist nun deine Hausaufgabe...kleiner Tipp: JOIN
08/21/2015 16:35 Origenes#9
Quote:
Originally Posted by .ƒaℓsє. View Post
Da gibt es viele Möglichkeiten.... z.b erstellst du eine Player liste wo Spielername UUID etc.. drin steht und dann eine "buyedBoots" Tabelle...In dieser Tabelle gibt es dann nur UUID(Spieler) und Boots(ID) und für die ID hast du dann in JAVA constanten....


Wie die Abfrage dann geht mit SQL ist nun deine Hausaufgabe...kleiner Tipp: JOIN
Wie gesagt mein Problem ist nur das Auslesen, weil wie kann ich aus einem String auslesen welche Boots er bis jetzt gekauft hat?
08/21/2015 17:12 False#10
Quote:
Originally Posted by Origenes View Post
Wie gesagt mein Problem ist nur das Auslesen, weil wie kann ich aus einem String auslesen welche Boots er bis jetzt gekauft hat?
Habe ich doch grade erklärt o.O

Du hast eine Tabelle User :


Username | UUID
PLAYERNAME UUID
PLAYERNAME UUID
PLAYERNAME UUID
PLAYERNAME UUID
PLAYERNAME UUID



Und eine Tabelle wo gekaufte Sachen Drin stehen bzw nur gekaufte Schuhe:


UUID | Schuhe
UUID 1
UUID 2
UUID 5
UUID 1




Konstanten :


DiamondSchuhe = 1
LederSchuhe = 2
etc...


Nun holst du per Sql dir alle Einträge aus der "gekaufte schuhe" Tabelle die die UUID des gesuchten Spielers haben...somit hast du ein Array mit z.b [1,2]...
Somit hätte der Spieler Dia und Leder Schuhe gekauft...


Die ganze lösung werde ich nicht sagen, da du auch lernen solltest und nicht nur c&p ;)
Tipp : WHERE und JOIN (Wobei man sich streiten kann ob man die User Tabelle dafür brauch)
08/21/2015 17:57 Origenes#11
So ich weiß jetz meinen Fehler ich muss jetz nurnoch wissen wie ich die Wörter in einem Array Zähle hat jemand eine Ahnung von euch? ;D
08/21/2015 19:38 ComputerBaer#12
In Java? meinArray.length
Oder was möchtest du haben?
08/21/2015 21:28 Origenes#13
Quote:
Originally Posted by ComputerBaer View Post
In Java? meinArray.length
Oder was möchtest du haben?
Habs schon von allein gelöst Thread kann geschlossen werden :D

PS: danke für eure Hilfe :)