Skocz do zawartości
  • 0

Plugin na plecak


Killerek01
 Udostępnij

Pytanie

11 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
1 godzinę temu, LloydPL napisał:

robisz inventory, otwierasz je graczowi i zapisujesz po zamknięciu w np. folderze pluginu żeby się nie usunęło po restarcie

Lub jest trudniejsza opcja z zapisem mysql ale z tym by było trochę zabawy ;v

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
  • 1. Deserializacja i serializacja itemów
    public interface Serializator{
      
    	public abstract String deserialize(List<ItemStack> items);
    
    	public abstract List<ItemStack> serialize(String string);
    }

    masz tu mały przykład interfejsu, po prostu zaimplementuj go do swojej klasy, dziedzicz te metody no i się baw

  • 2. W deserialize mozesz sobie robic najlepiej wszystko uzywajac ":" i ";", ja tak np. zapisuje particlesy gracza do mysql, "Flame_Particles:1;Heart_Particles:7"
    w serialize po prostu bierzesz tego stringa gracza, który jest już zapisany, np. w pliku .yml i tworzysz nowa kolekcje, dodajesz do niej itemstacki, możesz sobie zrobić jakiś itemstackparser w utilsach i po prostu 'new ItemStackParser(String deserialized).getItemStack();

  • 3. No i oczywiście tą liste z itemami przy wejściu gracza lub wlaczeniu pluginu wgrywasz na nowo, a tak to zapisujesz do mapki i przy wyjściu gracza lub wylaczeniu pluginu dajesz tego stringa z deserialize do np. yml, a z resztą baw się sam, jest dużo sposobów.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, yooniks napisał:
  • 1. Deserializacja i serializacja itemów
    public interface Serializator{
      
    	public abstract String deserialize(List<ItemStack> items);
    
    	public abstract List<ItemStack> serialize(String string);
    }

    masz tu mały przykład interfejsu, po prostu zaimplementuj go do swojej klasy, dziedzicz te metody no i się baw

  • 2. W deserialize mozesz sobie robic najlepiej wszystko uzywajac ":" i ";", ja tak np. zapisuje particlesy gracza do mysql, "Flame_Particles:1;Heart_Particles:7"
    w serialize po prostu bierzesz tego stringa gracza, który jest już zapisany, np. w pliku .yml i tworzysz nowa kolekcje, dodajesz do niej itemstacki, możesz sobie zrobić jakiś itemstackparser w utilsach i po prostu 'new ItemStackParser(String deserialized).getItemStack();

  • 3. No i oczywiście tą liste z itemami przy wejściu gracza lub wlaczeniu pluginu wgrywasz na nowo, a tak to zapisujesz do mapki i przy wyjściu gracza lub wylaczeniu pluginu dajesz tego stringa z deserialize do np. yml, a z resztą baw się sam, jest dużo sposobów.

wut, już pomijam te redundant keywordy przy metodach, to kompletnie nie pasują nazwy metod, bo deserializacja powinna zwracać kolekcję itemstacków, a serializacja jakiś obiekt (json czy mapka string -> object, w/e).

a tak to masz kilka możliwości: base64(yaml,sql), blob, json, flat(mapping key-value), no i można też robic brzydko jak np. tworzyć gdzieś w niedostępnym dla gracza miejscu skrzynkę i w niej przechowywać przedmioty.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
14 godzin temu, insertt napisał:

wut, już pomijam te redundant keywordy przy metodach, to kompletnie nie pasują nazwy metod, bo deserializacja powinna zwracać kolekcję itemstacków, a serializacja jakiś obiekt (json czy mapka string -> object, w/e).

a tak to masz kilka możliwości: base64(yaml,sql), blob, json, flat(mapping key-value), no i można też robic brzydko jak np. tworzyć gdzieś w niedostępnym dla gracza miejscu skrzynkę i w niej przechowywać przedmioty.

Ale to jest wg. mnie najlepszy sposób dla osoby która się za dobrze nie zna na javie, ja sam w jednym pluginie starym mam tak, a już w nowym, większym pod pvp mam inaczej.

A nazwy metod od tak walnąłem, właśnie mi coś nie pasowało, i zrobiłbym jsona zamiast stringa z ";", ale @Killerek01 wgl by nie ogarnął.

8 godzin temu, SKsteiner napisał:

Wyciąć z kguildsów. :thinkppa:

tak to kolega się niczego nie nauczy

Edytowane przez yooniks
Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

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