ServerPlugin Listen speichern , nach Reload auslesen ?

Dieses Thema im Forum "Programmierung" wurde erstellt von Payno4, 16. Januar 2016.

  1. Payno4
    Offline

    Payno4

    Registriert seit:
    12. Februar 2015
    Beiträge:
    117
    Hei Community,

    ich suche nach einer Lösung , damit ich HashMaps und ArrayLists vor einem Reload speichern und danach wieder auslesen kann.
    Meine Idee wäre gewesen , den /stop Command umzuschreiben, sodass ich alle Listen unbehandelt in eine .yml Datei speichern und in dem onEnable teil dann wieder auslese und in die gegebenen Listen zurück "importieren" kann.

    Hat da vielleicht noch jemand eine bessere oder eine nicht so aufwendige Methode?
    Und wenn nein , wie kann man die obige Idee am besten umsetzten vor allem das auslesen und "importieren" ?

    Schon mal ein fettes Dankeschön im voraus. :)
     
    #1
  2. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
    Da du anscheinend noch nicht mal die bukkit wiki Seite bezüglich der bukkit-plugin programmierung gelesen hast solltest du das nachholen.
    http://wiki.bukkit.org/Plugin_Tutorial

    Ich kann dir aber jetzt schon sagen, das das nicht so funktionieren wird wie du dir das vorstellst, weil du garantiert ein "bukkit" Objekt speichern willst welches keine Instanz einer Klasse ist die ConfigurationSerializable implementiert.
    http://wiki.bukkit.org/Configuration_API_Reference
    Hier ein Beispiel :
    https://bukkit.org/threads/make-org-bukkit-location-serializable.56521/
     
    #2
    jensIO, Asgarioth und Verschraubt gefällt das.
  3. Asgarioth
    Offline

    Asgarioth

    Registriert seit:
    17. Juli 2014
    Beiträge:
    51
    Ort:
    Hessen
    Minecraft:
    Asgarioth
    Den Link zu einem Tutorial, wie man Plugins schreibt hat ja @GPSforLEGENDS schon gepostet. Das sowie ein paar Kapitel eines Einsteigerbuchs wären sicher förderlich.

    Neben der onEnable Methode existiert auch eine onDisable Methode. Dort gehören die Dinge hin, die beim Stop passieren sollen.

    Sowohl HashMaps wie auch ArrayLists sind Serializable, d.h. du kannst die Objekte speichern und auch lesen. Sowas lernt man normalerweise in den Grundlagen. Hier zum Einlesen:

    http://beginnersbook.com/2013/12/how-to-serialize-hashmap-in-java/

    Natürlich kannst du das nicht für beliebige Objekte machen (Stichworte Serializable sowie generell Konzepte der objektorientierten Programmierung).

    Warum du allerdings nicht einfach die relevanten Daten z.B. In eine yml-Datei speicherst wundert mich. Wäre in meinen Augen der leichtere Weg.
     
    #3
    jensIO gefällt das.
  4. skcxck
    Offline

    skcxck

    Registriert seit:
    9. November 2013
    Beiträge:
    12
    Ort:
    Frankfurt am Main
    Minecraft:
    skcxck
    #4
  5. Cyrox
    Online

    Cyrox

    Wenn du eh schon json hast, kannste den kram auch einfach direkt in eine datei schreiben.
    ObjectOutputStream macht das alles nur unnötig kompliziert
     
    #5
    jensIO gefällt das.