Sprawdzanie wersji gracza (Skrypt/Plugin)

Zombie
szymhal
szymhal
9 lat temu

Siema, mam w sumie taką rozkminę, jak sprawdzać wersje graczy. Znalazłem taki temat: https://www.spigotmc.org/threads/tutorial-getting-the-players-client-version.134397/ Tylko, że w pisaniu i rozumieniu pluginów jestem zielony, Chciałem zrobić coś takiego: Gracz wpisuje komende /wersja i pokazuje mu jego wersje. Np: Gdy otwiera menu z dostępnymi serwerami, wtedy serwer sprawdza jego wersje i otwiera odpowiednie menu, gdzie sa podane serwery na jego wersje. Myślałem i szukałem tego wszędzie, może i nie do końca. Jak macie jakieś propozycje, to z góry dziękuje za wypowiedzi

luxDev
luxDev Pionier
9 lat temu

Najprostszym sposobem zrobsisz to tak:

((CraftPlayer) player).getHandle().playerConnection.networkManager.getVersion();

To zwraca ci wersje, w np. takim formacie 1.8 = 47

Tutaj masz wszystkie wersje protokołów http://wiki.vg/Protocol_version_numbers

szymhal
szymhal
9 lat temu

Ale to jako w formie pluginu? Napisałem, że jestem zielony w te klocki...

DBanaszewski
DBanaszewski α-tester v3
9 lat temu

Musisz sam zrobić plugin ;) Jak nie umiesz to mogę zrobić :)

szymhal
szymhal
9 lat temu

@DBanaszewski jak umiesz i zrobisz to dobrze i jak zobacze czy kod jest czysty i nie ma tam żadnych niedomówień to bardzo proszę i z góry dziękuje.

piratjsk
piratjsk Pionier
9 lat temu

Jeśli chcesz to w formie skryptu (dla pluginu Skript) to dodatek TuSKe dodaje wyrażenie:

(mc|minecraft) version of %player%
%player%'[s] (mc|minecraft) version

dzięki czemu można korzystać z warunków typu if player's version is "1.7".

Skrypt na komendę /wersja wyglądałaby np. tak:

command /wersja:
  trigger:
    send "Twoja wersja: %player's version%"
DBanaszewski
DBanaszewski α-tester v3
9 lat temu

Zrobię i dam na Githuba ;)

DBanaszewski
DBanaszewski α-tester v3
9 lat temu

A jeżeli mogę to plugin ma działać od jakiej wersji (od jakiej wersji musi on sprawdzać wersję [np. od 1.7.2 do 1.11.2]) ?

szymhal
szymhal
9 lat temu

Tak, na wszystkie. (1.7 - 1.11)

DBanaszewski
DBanaszewski α-tester v3
9 lat temu

Czyli od 1.7.2 do 1.11.2 :) - poniżej 1.7.2 nie zrobię, bo inaczej jest numerowane :/

DBanaszewski
DBanaszewski α-tester v3
9 lat temu

Jeszcze jedno pytanko - jaka ma być dokładna komenda na to?

szymhal
szymhal
9 lat temu

/wersja Może być też ewentualnie /wersja wtedy pokazuje wersje danego gracza.

DBanaszewski
DBanaszewski α-tester v3
9 lat temu

Plugin będzie działał od wersji 1.7.2 do 1.11.2 (i późniejszych) ponieważ zastosowałem pobieranie klasy CraftPlayer dla każdej wersji (trochę linijek kodu 😃)

DBanaszewski
DBanaszewski α-tester v3
9 lat temu

Plugin w wersji 1.0 wydany. Github: https://github.com/PLBananek/CVersion Download: https://github.com/PLBananek/CVersion/releases

Wymagania:

  • Java 8
  • ProtocolLib

Błędy proszę zgłaszać na Githubie :)

szymhal
szymhal
9 lat temu

@piratjsk Wiesz może dlaczego wywala mi taki błąd w konsoli: http://screenshot.sh/mKPAzaGRQBFQ5 Skoro pobieram wersje stąd: https://www.spigotmc.org/resources/tuske.25136/ I jest ona na wersje 1.7 - 1.10? Serwer jest na wersji 1.8.

DBanaszewski
DBanaszewski α-tester v3
9 lat temu

Jakiejś klasy nie może znaleźć. Patrzyłeś mój plugin? Plugin powinienen działać na wersjach od 1.7.2 do obecnej wersji 1.11.2.

szymhal
szymhal
9 lat temu

Zacznijmy od tego, iż wole by plugin był na jave 7. W skrypcie mi się wygodniej pracuje, iż tam mozna tworzyć własne argumenty. Dlatego pytam o ten skrypt. Pisze że jest na wersje 1.7 - 1.11 a tu nic, nie działa na 1.8...

piratjsk
piratjsk Pionier
9 lat temu

Z jakiej wersji Skript korzystasz? Ten błąd jest spowodowany tym, że dodatek korzysta z metody (Skript.classExists(String className)), która nie istnieje. Według githuba została ona dodana w grudniu 2014 roku, a z tego co widzę to ostatnia wersja Skript na dev.bukkit.org jest z marca 2014. Więc jeśli korzystasz z wersji z bukkit dev to najwyższy czas zastąpić ją jakąś nowszą, np. taką pobraną stąd.

szymhal
szymhal
9 lat temu

piratjsk:

command /wersja: trigger: send "Twoja wersja: %player's version%"

Dzięki działa, ale teraz skrypt wywala mi bład: [13:38:07 INFO]: [Skript] Reloading skrypt.sk... [13:38:07 ERROR]: Can't understand this expression: player's version (skrypt.sk, line 3: send "Twoja wersja: %player's version%"') [13:38:07 INFO]: [Skript] Encountered 1 error while reloading skrypt.sk!

piratjsk
piratjsk Pionier
9 lat temu

Nom, napisałem to z błędem (ale powyżej podałem dokładną poprawną składnię tego wyrażenia), powinno być:

command /wersja:
  trigger:
    send "Twoja wersja: %player's mc version%"