Skocz do zawartości
  • 0

Pomoc w zapisywaniu hashmap


Pytanie

Witajcie :)

Chciałbym dowiedzieć się jak zapisywać zmienne HashMap.

Tworzyć i edytować je umiem, lecz gorzej jest z ich zapisem i odczytem. Zrobiłem sobie pluginik na bezużytecznego clickera i chciałbym zapisać kliknięcia danego gracza do hashmapy a później przy ponownym odtworzeniem gui - je odczytać z niej (to już będę umiał)

Tutaj jest plugin:

Download

Skan:

Click Me

 

Klasa Main:

Spoiler

 

Klasa Listanery:

Spoiler

 

I nic nie wnosząca klasa CommandGui:

Spoiler

 

Oraz potrzebny plugin.yml:

Spoiler

 

 

@TheMolkaPL podobno ty jesteś szpecem od tego, proszę bardzo o pomoc :) 

Edytowane przez knugi
Odnośnik do komentarza
https://skript.pl/temat/17194-pomoc-w-zapisywaniu-hashmap/
Udostępnij na innych stronach

9 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

To jest ten, który napisałem i do niego dodać hashmapy :)

 

// Pluginy piszę w Eclipse, chociaż tutaj edytor nie jest ważny

Edytowane przez knugi
Odnośnik do komentarza
https://skript.pl/temat/17194-pomoc-w-zapisywaniu-hashmap/#findComment-117750
Udostępnij na innych stronach

  • 0

Chodzi mi o zapisywanie do pliku hashmapy (najlepiej również co jakiś czas - to będę musiał  Bukkit run czy coś takiego zrobić i w nim wykonywać metodę, coś mi tak świta tak?) I podczas startu pluginu odczytywać ją do ramu (chyba tam się zapisują zmienne :P ) czyli w głównej klasie by była Mapa hashmapowa na której by był <String, Integer> i dwie metody saveMap i loadMap :)

Proszę o dokładny przykład, jeżeli mógłbyś to proszę o przerobienie owego pluginy na zapis a później z tego przykładu ogarnę co i jak :D

Odnośnik do komentarza
https://skript.pl/temat/17194-pomoc-w-zapisywaniu-hashmap/#findComment-117770
Udostępnij na innych stronach

  • 0

To jeszcze powiedz mi w jakim byś chciał to formacie zapisać. Jest ich na prawdę masa, do wielu z nich są biblioteki do ich obsługi, kilka z nich można obsłużyć prosto ze standardowej biblioteki. Oczywiście można użyć ObjectOutputStream (do zapisu) oraz ObjectInputStream (do odczytu), wtedy będziemy mieli unikalny "format" dla naszego pliku, poprzez wygenerowane przez nas unikalne ID serializacji. Dokumentacja interfejsu Serializable mówi o tym ID następująco:

The serialization runtime associates with each serializable class a version number, called a serialVersionUID, which is used during deserialization to verify that the sender and receiver of a serialized object have loaded classes for that object that are compatible with respect to serialization. If the receiver has loaded a class for the object that has a different serialVersionUID than that of the corresponding sender's class, then deserialization will result in an InvalidClassException. A serializable class can declare its own serialVersionUID explicitly by declaring a field named "serialVersionUID" that must be static, final, and of type long:

 ANY-ACCESS-MODIFIER static final long serialVersionUID = 42L;

Odnośnik do komentarza
https://skript.pl/temat/17194-pomoc-w-zapisywaniu-hashmap/#findComment-117771
Udostępnij na innych stronach

  • 0

Dla mnie może to być nawet zwykły config bukkita, inne yaml configuration czy nawet przez obsługi wejścia/wyjścia.

Napisz tak jak dla Ciebie wygodniej a ja się do tego dostosuję :)

Odnośnik do komentarza
https://skript.pl/temat/17194-pomoc-w-zapisywaniu-hashmap/#findComment-117773
Udostępnij na innych stronach

  • 0
11 minut temu, knugi napisał:

Dla mnie może to być nawet zwykły config bukkita, inne yaml configuration czy nawet przez obsługi wejścia/wyjścia.

Napisz tak jak dla Ciebie wygodniej a ja się do tego dostosuję :)

No to już masz wszystko wypisane wraz z przykładami w dokumentacji tych dwóch klas. Wystarczy się tylko do nich dostosować. ;) Jeżeli masz jakieś problemy to sprawdź czy wszystkie obiekty które próbujesz zapisać implementują Serializable - inaczej wystąpi wyjątek NotSerializableException.

Odnośnik do komentarza
https://skript.pl/temat/17194-pomoc-w-zapisywaniu-hashmap/#findComment-117775
Udostępnij na innych stronach

  • 0

Dzięki, miałem mały problem, lecz sobie z nim poradziłem, otóż to tylko odczytuje, a jeżeli nie ma pliku to wywala błąd ... Ale zrobiłem przed ładowaniem mapy sprawdzanie czy jest dany plik, jeżeli nie ma to go tworzy. Dzięki wielkie !

Edytowane przez knugi
Odnośnik do komentarza
https://skript.pl/temat/17194-pomoc-w-zapisywaniu-hashmap/#findComment-117777
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...