Skocz do zawartości
  • 0

Sprawdzanie przedmiotu gracza


Pytanie

W skrócie:

Chce aby przy akcji xyz porównywało itemek gracza(w mainhandzie) do Enuma z wypisanymi narzedziami, jezeli enum zawiera dane narzedzie to warunek sie spełnia  
 

i tu mam problem:

Na poczatku mialem to normalnie array lista przedmiotow i loopowałem przez całą liste i porównywałem, ale znalazłem cos o tych enumach tyle ze totalnie nie ogarniam ich głebszego działania :/ 

próbowałem na kilka sposobów ale to czyste strzały 

Miałem jeden taki pomysł ale nie wiem czy to aby na pewno dobre rozwiazanie:

https://imgur.com/a/uS8r7HM

i potem po prostu porównac przedmiot gracza jako stringa do tej listy wartosci enuma i sprawdzic czy sie pokrywa z jakąkolwiek

Nie prosze o kod a ewentualny lekki snippet czy wyjasnienie jak to działa 😛

Sory za chaotyczne opisanie ale mamy taka godzine jaka mamy xD

 

*EDIT: glownie tez chodzi o to zeby jakby ten enum byl podzielony na kategorie czyli siekiery, kilofy, itd..

 

Edytowane przez JoJeki
wysłałem za szybko
Odnośnik do komentarza
https://skript.pl/temat/54593-sprawdzanie-przedmiotu-gracza/
Udostępnij na innych stronach

3 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 1

Krótkie wytłumaczenie:

Enumy to typ wyliczeniowy, który służy do definiowania stałych wartości. Każdy element enumu reprezentuje stałą wartość i jest definiowany jako oddzielna nazwa.

W przypadku twojego pluginu możesz utworzyć enum, w którym definiujesz stałe wartości reprezentujące poszczególne narzędzia, a następnie porównać przedmiot gracza z każdą z tych stałych. W ten sposób, jeśli przedmiot gracza będzie pasował do jednej z wartości enum, to wiadomo, że gracz trzyma narzędzie, które Cię interesuje.

Przykładowy kod tworzący enum, w którym definiujemy stałe wartości reprezentujące poszczególne narzędzia:
 

public enum Narzędzia {
    MIECZ,
    KILOF,
    SIEKIERA,
    MOTYKA
}

W tym przypadku, jeśli chcesz sprawdzić, czy przedmiot gracza jest jednym z narzędzi, możesz użyć metody values() na enumie, która zwróci tablicę z wszystkimi wartościami enumu. Następnie możesz loopować przez każdą wartość enumu i porównać ją z przedmiotem gracza.

for (Narzędzia narzędzie : Narzędzia.values()) {
    if (gracz.getInventory().getItemInMainHand().getType().name().equalsIgnoreCase(narzędzie.name())) {
        // kod, który ma się wykonać, gdy gracz trzyma jedno z narzędzi
    }
}

W tym przykładzie, gracz.getInventory().getItemInMainHand().getType().name() zwróci nazwę przedmiotu, którym gracz trzyma w głównej dłoni. Następnie porównujemy tę nazwę z nazwą każdej wartości enumu przy użyciu metody name(). Jeśli nazwa przedmiotu pasuje do nazwy jednej z wartości enumu, to kod wewnątrz bloku if zostanie wykonany.

Mam nadzieję że pomogłem chociaż z Javą u mnie to tak średnio. :P

Odnośnik do komentarza
https://skript.pl/temat/54593-sprawdzanie-przedmiotu-gracza/#findComment-330959
Udostępnij na innych stronach

  • 0
2 godziny temu, xMarmo321 napisał:

Krótkie wytłumaczenie:

Enumy to typ wyliczeniowy, który służy do definiowania stałych wartości. Każdy element enumu reprezentuje stałą wartość i jest definiowany jako oddzielna nazwa.

W przypadku twojego pluginu możesz utworzyć enum, w którym definiujesz stałe wartości reprezentujące poszczególne narzędzia, a następnie porównać przedmiot gracza z każdą z tych stałych. W ten sposób, jeśli przedmiot gracza będzie pasował do jednej z wartości enum, to wiadomo, że gracz trzyma narzędzie, które Cię interesuje.

Przykładowy kod tworzący enum, w którym definiujemy stałe wartości reprezentujące poszczególne narzędzia:
 

public enum Narzędzia {
    MIECZ,
    KILOF,
    SIEKIERA,
    MOTYKA
}

W tym przypadku, jeśli chcesz sprawdzić, czy przedmiot gracza jest jednym z narzędzi, możesz użyć metody values() na enumie, która zwróci tablicę z wszystkimi wartościami enumu. Następnie możesz loopować przez każdą wartość enumu i porównać ją z przedmiotem gracza.

for (Narzędzia narzędzie : Narzędzia.values()) {
    if (gracz.getInventory().getItemInMainHand().getType().name().equalsIgnoreCase(narzędzie.name())) {
        // kod, który ma się wykonać, gdy gracz trzyma jedno z narzędzi
    }
}

W tym przykładzie, gracz.getInventory().getItemInMainHand().getType().name() zwróci nazwę przedmiotu, którym gracz trzyma w głównej dłoni. Następnie porównujemy tę nazwę z nazwą każdej wartości enumu przy użyciu metody name(). Jeśli nazwa przedmiotu pasuje do nazwy jednej z wartości enumu, to kod wewnątrz bloku if zostanie wykonany.

Mam nadzieję że pomogłem chociaż z Javą u mnie to tak średnio. :P

Dziękuję ślicznie za wyjaśnienie ^^

Odnośnik do komentarza
https://skript.pl/temat/54593-sprawdzanie-przedmiotu-gracza/#findComment-330968
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ę...