ServerPlugin Kits für immer freischalten.

Dieses Thema im Forum "Programmierung" wurde erstellt von Lapura, 2. August 2015.

  1. Lapura
    Offline

    Lapura

    Registriert seit:
    28. Dezember 2014
    Beiträge:
    59
    Guten Tag,
    ich bin gerade dabei ein Kit-PvP Plugin zu programmieren, und ich möchte das so machen das man Kits für immer freischalten kann (1 mal kaufen und immer auswählen können.
    Ich wollte mal von euch einen Tipp wissen wie ihr das machen würdet. Ich dachte mir das ich das in einer Config abspeicher, und das bei jedem Kit immer dahinter steht true oder false [True = gekauft | false = noch nicht gekauft]
    Z.B.:
    Schütze: true
    Kämpfer: false
    Panzer: true

    Bitte um hilfe.
    LG, lukas
     
    #1
  2. Vanityra
    Offline

    Vanityra

    Registriert seit:
    9. Juni 2015
    Beiträge:
    219
    Ort:
    Heidelberg
    Minecraft:
    Vanityra
    Ich würde die Kits nummerieren sowie "true" und "false" durch "1" und "0" ersetzen. =)

    Achja: In einer Datenbank speichern. =)
     
    #2
  3. Lapura
    Offline

    Lapura

    Registriert seit:
    28. Dezember 2014
    Beiträge:
    59
    Und wo würdest du das abspeichern? Config, oder File?
     
    #3
  4. Vanityra
    Offline

    Vanityra

    Registriert seit:
    9. Juni 2015
    Beiträge:
    219
    Ort:
    Heidelberg
    Minecraft:
    Vanityra
    Press F5
     
    #4
  5. Lapura
    Offline

    Lapura

    Registriert seit:
    28. Dezember 2014
    Beiträge:
    59
    Ich möchte das aber nicht in einer Datenbank speichern.
    Also Config, oder File?
     
    #5
  6. Vanityra
    Offline

    Vanityra

    Registriert seit:
    9. Juni 2015
    Beiträge:
    219
    Ort:
    Heidelberg
    Minecraft:
    Vanityra
    Kenn mich da nicht so aus...

    in einer Database-File? :D
     
    #6
  7. Lapura
    Offline

    Lapura

    Registriert seit:
    28. Dezember 2014
    Beiträge:
    59
    hahah :D Oke ;) Thx
     
    #7
  8. Inkemann
    Offline

    Inkemann

    Registriert seit:
    3. Mai 2015
    Beiträge:
    341
    Ort:
    Aachen
    Minecraft:
    Inkemann
    1. Wenn du es in der Konfiguration speicherst (an sich möglich, die API bietet da mit Configuration und seinen Unterklassen tolle Möglichkeiten), dann würde ich empfehlen es nicht in der Standarddatei config.yml zu speichern sondern in einer anderen Datei (um dem Benutzer eine bessere Übersicht und Verwaltbarkeit zu gewährleisten). Und da bist du mit true und false ziemlich gut bedient, da das Schreiben und Auslesen von boolschen Werten ja von der API unterstützt wird. 1 und 0 würden hier nur unnötigen Aufwand und reduzierte Lesbarkeit bedeuten.
    2. Ansonsten würde ich SQLite empfehlen, eine Programmbibliothek für relationale Datenbanken, die nur eine Datei für die gesamte Datenbank nutzt und für die es auch gute Java-Schnittstellen gibt. Ist ziemlich schmal, aber für Anfänger vielleicht weniger zu empfehlen als die Konfiguration zu benutzen.

    Falls du dich für die erste Möglichkeit entscheidest, empfehle ich dir für jeden Nutzer einen Konfigurationspunkt mit seiner UUID anzulegen und dazu dann jeweils Unterpunkte mit den Werten (true/false).

    Code (Text):
    1. 1c0da02d-27d2-46f1-93c4-ba5b1bef64a8:
    2.   Schuetze: true
    3.   Kaempfer: false
    4.   Kartoffel: true
    5. 5d7d1c32-749c-4791-9752-0d0fb102d55a:
    6.   Schuetze: false
    7.   Kaempfer: false
    8.   Kartoffel: true
    Dann kannst du in deinem Plugin über die Methode getBoolean leicht an die jeweiligen Werte kommen:

    Code (Text):
    1. Player player = irgendsoeinSpieler;
    2. FileConfiguration config = deineConfig;
    3. if(config.getBoolean(player.getUniqueID().toString() + ".Kaempfer"))
    4. {
    5.   System.out.println("Der Spieler ist ein Kämpfer!");
    6. }
    Eine zweite Möglichkeit wäre für jedes Kit eine Liste von Spielern zu speichern die es freigeschaltet haben, halte ich zwar für mehr Aufwand für einen Anfänger, ist aber auch machbar.

    Code (Text):
    1. Schuetze: [1c0da02d-27d2-46f1-93c4-ba5b1bef64a8]
    2. Kaempfer: []
    3. Kartoffel: [1c0da02d-27d2-46f1-93c4-ba5b1bef64a8, 5d7d1c32-749c-4791-9752-0d0fb102d55a]
    Dann würde sich eine Abfrage entsprechend ändern.

    Code (Text):
    1. Player player = irgendsoeinSpieler;
    2. FileConfiguration config = deineConfig;
    3. List<String> liste = config.getList("Kaempfer");
    4. if(liste.contains(player.getUniqueID().toString())
    5. {
    6.   System.out.println("Der Spieler ist ein Kämpfer!");
    7. }

    Der Code ist frei aus dem Kopf geschrieben, ohne zu testen oder in die Docs zu gucken, ich übernehme keine Gewähr für irgendetwas :D
     
    #8