Skocz do zawartości

nGen - Generator niczym z serwerów SkyGen!


Necekez1

Rekomendowane odpowiedzi

nGen - 1.0

Witam, przedstawiam wam mój pierwszy udostępniony publicznie plugin - nGen

Jest to generator itemów niczym z serwerów SkyGen

 

KOMENDY
 

Spoiler

/addgen <nazwa> - Tworzy generator
-

/remgen <nazwa> - Usuwa generator
-
/gen <nazwa> <slot1/slot2> <1-100(Szansa na drop)> - Dodaje item który ma dropić!

SHOWCASE

Spoiler

2023-05-21_12-34-03.gif

 

Jestem otwarty na opinie
Śmiało piszcie co dodać/usunąć/zmienić

 

Pobieranie

Kliknij tu, aby pobrać plugin!

Odnośnik do komentarza
Udostępnij na innych stronach

  • 5 miesięcy temu...

Kilka uwag:

 

  1. Przede wszystkim, powinieneś stworzyć jedną komendę, np ngen i tam dodać subkomendy add remove i edit
  2. Sprawdź konwencja nazewnictwa w javie. Przede wszystkim jak poprawnie nazywać package.
  3. Czemu połowa zmiennych i metod jest nazwana po polsku, a drugie pół po angielsku? 
  4. Zamiast wrzucać isInt i kolor do maina mógłbyś stworzyć klasę ze statycznymi metodami, np Utils i tam wrzucić pomocnicze metody.
  5. Pusta klasa GeneratosEvent.
  6. Zamiast zmiany wrzucać do configa i czytać ten config co sekundę (co jeśli ktoś chciałby custom czas?), zapisuj obiekty generatora w ramie. Stwórz sobie jakiś GeneratorStorage i tam przechowuj wszystkie generatory, a w tasku zrób foreacha na listę czy mapkę. 
  7. Akurat w tym przypadku jest to trochę pierdółka, ale ogólnie jest to dość ważny temat. Kod nie jest thread-safe. Jest to dość obszerne pojęcie, dlatego odsyłam do google, ale mogę w skrócie napisać, że chodzi o to, że masz na przykład kod x, y, z = player.getLocation().getDanyBlok(). W tym momencie pobierasz lokalizację gracza za każdym razem od nowa. Kod wykonywany jest synchronicznie, tzn leci linijka po linijce i następuje egzekucja danego fragmentu. Alee w czasie kiedy wykonywany jest Twój kod, dzieje się bardzo wiele wokół. Może na przykład dość do sytuacji, w czasie powiedzmy laga, że gracz zmienił pozycję, a Twój kod jest akurat wykonywany, tzn pobrałeś x, pobrałeś y, nagle jest lag, gracz zmienia pozycję i jest już w innym z, więc ma gena przesuniętego o jedną kratkę. Zapobieganie temu jest bardzo proste. Wystarczy, że pobierzesz raz do zmiennej player.getLocation() i będziesz operował na tej zmiennej.
  8. Możesz zrobić sobie klasę Messages, w której statycznie będziesz przetrzymywał wszystkie wiadomości, a wysyłać za pomocą player.sendMessage(Messages.USAGE_REM_GEN), w ten sposób będziesz miał łatwy dostęp do wszystkich wiadomości. 
  9. Nie używaj & w wiadomościach, bardzo przestarzałe podejście. Zamiast tego powinieneś dodawać kolory przy użyciu ChatColor: player.sendMessage(ChatColor.GRAY + "»...");
    albo jeszcze lepiej player.sendMessage(String.format("%s»...", ChatColor.GRAY)

Fajny plugin do poćwiczenia, na początek, ale brakuje tutaj trochę elementarnej wiedzy nt programowania jak i programowania w javie. Jeśli wprowadzisz chociaż część zaproponowanych poprawek, to  zobaczysz, że zacznie Ci się kodzić lepiej :)

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

  • 3 miesiące temu...
  • 2 miesiące temu...

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

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

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