Skocz do zawartości
  • 0
Killerek01

Plugin na plecak

Pytanie

Użytkownik

Cześć, przychodzę z pytaniem jak można zapisywać GUI np skrzynki robię plugin na plecak I zastanawiam się czy tak wogule można, jeżeli tak to bym poprosił o jakiś przykład czy może poradnik bo sam nic nie znalazłem. 

Za pomoc bardzo dziękuję. 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

11 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

Użytkownik
  • 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

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Użytkownik
  • 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.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Użytkownik
  • 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.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Użytkownik
  • 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

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Losowy awatar
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×