ProtocolLib

ProtocolLib

Biblioteka do przechwytywania wysyłanych i odbieranych pakietów Minecraft.

0 polubień • 0 pobrań
Dostępne pliki
41
Obsługiwane wersje
20
Najnowszy plik
04.06.2020

ProtocolLib

ProtocolLib w dużej mierze przeniósł się na Spigot! Jeśli potrzebujesz wsparcia, zajrzyj tam!

Niektóre zadania są niemożliwe do wykonania przy użyciu standardowego API Bukkit i mogą wymagać pracy bezpośrednio z Minecraftem, a nawet modyfikacji samej gry. Częstą techniką jest modyfikowanie pakietów przychodzących i wychodzących, lub wstrzykiwanie niestandardowych pakietów do strumienia. To dość uciążliwe, i większość implementacji przestanie działać zaraz po wydaniu nowej wersji Minecraft, głównie z powodu obfuskacji.

Co istotne, różne wtyczki, które używają tego podejścia, mogą ingerować w te same klasy, co prowadzi do nieprzewidywalnych skutków. Często to powoduje awarie wtyczek, ale może też prowadzić do subtelniejszych błędów.

Links

Support

Proszę utworzyć zgłoszenie z jak największą ilością informacji, jeśli napotkasz problem, który nie został jeszcze zgłoszony. Komentarze z dużym śladem stosu będą usunięte.

Jeśli potrzebujesz pomocy z API, proszę użyj panelu zgłoszeń. Jeśli twoje pytanie nie może być publicznie dostępne z jakiegokolwiek powodu (w tym błędy bezpieczeństwa), wyślij mi wiadomość prywatną zamiast tego.

For server operators

Pobierz ProtocolLib z powyższego linku. Sam w sobie nie robi nic, ale umożliwia działanie innym wtyczkom.

FAQ

Najczęściej zadawane pytania

  • Dlaczego pojawiają się wyjątki FieldAccessException, gdy próbuję odczytywać lub zapisywać pakiety?
Quote:

Powodem tych wyjątków jest to, że ProtocolLib nie używa formatu pakietu opisanego na Wiki, lecz reprezentacji w pamięci tych pakietów. Często reprezentacja w pamięci będzie używać liczb całkowitych zamiast krótkich (short) i bajtów, i będzie bezpośrednio przechowywać bardziej złożone obiekty (jak ItemStacks).

Możesz określić reprezentację w pamięci na podstawie kodu źródłowego Minecrafta, lub po prostu użyć PacketWrapper, gdzie zrobiłem całą tę pracę za Ciebie.

Examples

Kod źródłowy wielu programów przykładowych, które wykorzystują ProtocolLib, można znaleźć w tym wątku na głównym forum wsparcia.

Możesz również być zainteresowany PacketWrapper, biblioteką, która umożliwia modyfikowanie pakietu bez konieczności dekompilowania kodu źródłowego Minecraft.

Na koniec, dla bardziej zaawansowanych użytkowników, którzy chcą używać ProtocolLib, gdy jest dostępny, ale nadal polegać na własnym systemie nasłuchiwania pakietów, polecam zajrzeć do tego wątku. Wyjaśniam, gdzie i jak wstrzykiwać kod do CraftBukkit, aby przechwytywać wysyłane i odbierane pakiety samodzielnie.

Maven repository

Jeśli używasz Maven, będziesz mógł automatycznie pobrać JAR, JavaDoc i powiązane źródła z Maven Central. Możesz dodać go jako zależność w ten sposób:

<dependencies>
  <dependency>
    <groupId>net.dmulloy2</groupId>
    <artifactId>ProtocolLib</artifactId>
    <version>5.4.0</version>
  </dependency>
  <!-- And so on -->
</dependencies>

Commands

Protocol

Główne polecenie administracyjne. Obsługuje następujące podpolecenia:

  • config: Przeładuj plik konfiguracyjny.
  • check: Sprawdź dostępność nowych wersji na BukkitDev.
  • update: Sprawdź najnowsze wersje i automatycznie pobierz JAR. Serwer musi zostać zrestartowany, aby to zadziałało.
  • timings: Włącz/wyłącz mierzenie ilości czasu CPU poświęcanego każdej wtyczce. Zobacz tutaj po więcej informacji.
  • listeners: Wyświetla, które wtyczki używają ProtocolLib i typy pakietów, które przechwytują.

Wszystkie te polecenia wymagają uprawnienia protocol.admin.

Przykład:

/protocol update

Packet

Dodaj lub usuń nasłuchiwacz pakietów debugowania. To przydatne dla autorów wtyczek, którzy chcą po prostu zobaczyć, kiedy pakiet jest wysyłany i co zawiera.

Podpolecenia:

  • add: Dodaj nasłuchiwacz pakietów o podanym identyfikatorze pakietu.
  • remove: Usuń jeden lub wszystkie nasłuchiwacze pakietów o podanych identyfikatorach pakietów.
  • names: Wyświetl nazwę każdego podanego identyfikatora pakietu.

Parametry (w kolejności):

  1. Strona połączenia: albo client lub server.
  2. Wiele zakresów identyfikatorów: może to być pojedynczy identyfikator pakietu, na przykład 14, lub zakres 10 - 15. Domyślnie 0 - 255, jeśli nie podano.
  3. Szczegółowe: jeśli TRUE, wyświetla pełną zawartość pakietu.

Przykład:

/packet add client 10-13 true

Dla wersji 3.0.0 i nowszych, powinieneś określić protokół, nadawcę i nazwę zamiast tego:

/packet add play server chat true

W 3.4.0-SNAPSHOT i nowszych, możesz także wyświetlać pakiet przed jego modyfikacją przez dowolnych nasłuchiwaczy pakietów:

/packet add play server chat compare

Usuń wszystkie nasłuchiwacze:

/packet remove client
/packet remove server

Należy pamiętać, że to polecenie rzadko powinno być używane na serwerze produkcyjnym. Nasłuchiwanie zbyt wielu pakietów może spowodować awarię serwera.

Filter

System filtrów (wprowadzony w 2.4.1) używa wbudowanego interpretera JavaScript w JVM 6 (Rhino), aby rozszerzyć możliwość polecenia pakietu o filtrowanie - teraz możliwe jest na przykład, aby wyświetlać tylko zdarzenia metadanych encji (packet add server 40) dla danego identyfikatora encji:

> packet add server 40 true
Added listener ListeningWhitelist{priority=MONITOR, packets=[40]}
> filter add entity_filter 40
Enter filter program ('}' to complete or CANCEL):
function(event, packet) {
>   return packet.a == 1000; 
>}
Added filter entity_filter.

To powinno być dużo wygodniejsze niż kompilowanie testowej wtyczki i ponowne uruchamianie całego serwera. Należy pamiętać, że ta funkcja jest domyślnie wyłączona ze względów bezpieczeństwa. Aby ją włączyć, dodaj "debug: true" do config.yml.

Konfiguracja

A small set of configuration options are available:

Opis projektu pochodzi z CurseForge i został udostępniony po polsku. Szczegóły konfiguracji, zależności oraz aktualne komunikaty autora sprawdź na w źródłowym katalogu CurseForge.

Stabilne ProtocolLib 4.5.1
ProtocolLib.jar 04.06.2020 1 MB
Stabilne ProtocolLib 4.4.0
ProtocolLib.jar 22.09.2018 1 MB
Stabilne ProtocolLib 4.2.1
ProtocolLib.jar 11.04.2017 1 MB
Stabilne ProtocolLib 4.2.0
ProtocolLib.jar 21.12.2016 1 MB
Stabilne ProtocolLib 4.1.0
ProtocolLib.jar 18.09.2016 1 MB
Stabilne ProtocolLib 4.0.2
ProtocolLib.jar 10.07.2016 1 MB
Stabilne ProtocolLib 4.0.1
ProtocolLib.jar 22.05.2016 1 MB
1.9
Stabilne ProtocolLib 4.0.0
ProtocolLib.jar 15.05.2016 1 MB
1.9
Stabilne ProtocolLib 3.6.5
ProtocolLib.jar 17.02.2016 1 MB
Stabilne ProtocolLib 3.6.4
ProtocolLib.jar 12.07.2015 1 MB
Stabilne ProtocolLib 3.4.0
ProtocolLib-3.4.0.jar 15.06.2014 1 MB
Stabilne ProtocolLib 3.3.1
ProtocolLib-3.3.1.jar 17.04.2014 1 MB
Stabilne ProtocolLib 3.2.0
ProtocolLib-3.2.0.jar 29.01.2014 1 MB
Stabilne ProtocolLib 3.1.2
ProtocolLib-3.1.2.jar 19.01.2014 1 MB
Stabilne ProtocolLib 3.1.0
ProtocolLib-3.1.0.jar 27.12.2013 1 MB
Stabilne ProtocolLib 3.0.1
ProtocolLib-3.0.1.jar 10.12.2013 1 MB
Stabilne ProtocolLib 2.7.3
ProtocolLib-2.7.3.jar 06.10.2013 1 MB
Stabilne ProtocolLib 2.7.0
ProtocolLib-2.7.0.jar 02.09.2013 1 MB
Stabilne ProtocolLib 2.6.0
ProtocolLib-2.6.0.jar 31.07.2013 1 MB
Stabilne ProtocolLib 2.5.0
ProtocolLib-2.5.0.jar 22.07.2013 1 MB
Stabilne ProtocolLib 2.4.7
ProtocolLib-2.4.7.jar 05.07.2013 878 KB
Stabilne ProtocolLib 2.4.5
ProtocolLib-2.4.5.jar 20.06.2013 878 KB
Stabilne ProtocolLib 2.4.3
ProtocolLib-2.4.3.jar 13.05.2013 875 KB
Stabilne ProtocolLib 2.4.1
ProtocolLib-2.4.1.jar 09.04.2013 854 KB
Stabilne ProtocolLib 2.3.0
ProtocolLib-2.3.0.jar 05.03.2013 826 KB
Stabilne ProtocolLib 2.2.0
ProtocolLib-2.2.0.jar 05.02.2013 811 KB
Stabilne ProtocolLib 2.1.0
ProtocolLib-2.1.0.jar 22.01.2013 747 KB
Stabilne ProtocolLib 2.0.0
ProtocolLib-2.0.0.jar 10.01.2013 740 KB
Stabilne ProtocolLib 1.9.0
ProtocolLib-1.9.0.jar 27.12.2012 688 KB
Stabilne ProtocolLib 1.8.1
ProtocolLib-1.8.1.jar 19.12.2012 660 KB
Stabilne ProtocolLib 1.8.0
ProtocolLib-1.8.0.jar 10.12.2012 659 KB
Stabilne ProtocolLib 1.7.1
ProtocolLib-1.7.1.jar 03.12.2012 644 KB
Stabilne ProtocolLib 1.7.0
ProtocolLib-1.7.0.jar 21.11.2012 644 KB
Stabilne ProtocolLib 1.6.0
ProtocolLib-1.6.0.jar 13.11.2012 634 KB
Stabilne ProtocolLib 1.5.1
ProtocolLib-1.5.1.jar 04.11.2012 614 KB
Stabilne ProtocolLib 1.5.0
ProtocolLib-1.5.0.jar 29.10.2012 569 KB
Stabilne ProtocolLib 1.4.2
ProtocolLib-1.4.2.jar 21.10.2012 557 KB
Stabilne ProtocolLib 1.4.1
ProtocolLib_1.4.1.zip 17.10.2012 506 KB
Stabilne ProtocolLib 1.4.0
ProtocolLib_1.4.0.zip 17.10.2012 506 KB
Stabilne ProtocolLib 1.3.2
ProtocolLib_1.3.2.zip 12.10.2012 476 KB
Stabilne ProtocolLib 1.3.0
ProtocolLib_1.3.0.zip 05.10.2012 464 KB
Przed instalacją

Jak bezpiecznie sprawdzić ten plugin

Wybierz zgodny plik

Oznaczenia wersji pochodzą z metadanych autora. Dobierz również właściwe oprogramowanie serwera i Javę.

Zachowaj kopię

Przed pierwszym startem skopiuj świat, konfigurację oraz dane pozostałych pluginów.

Przeczytaj log

Po uruchomieniu sprawdź brakujące zależności i pierwszy błąd związany z nazwą pluginu.

Zobacz pełną instrukcję instalacji