Łączenie przez MC Bedrock do serwera Java

Witajcie!

Zapewne wiecie, że serwery Java a serwery Bedrock to 2 różne rzeczy. Klient Java nie połączy się z Bedrock, a klient Bedrock nie połączy się z Java. A co gdyby pomiędzy połączeniem istniało Proxy?

Geyser

Geyser jest serwerem pośredniczącym, który tłumaczy “packety” pomiędzy klientem Bedrock a serwerem Java. Zasadę działania ilustruje grafika:

Rozwiązania można użyć dla serwerów Spigot (i pochodnych), BungeeCord (i pochodnych), Sponge oraz Velocity. Wymaganiem jest najnowsza wersja serwera.

UWAGA!

Nie wszystkie funkcje są w 100% dopracowane. Nie jest zalecane używanie tego rozwiązania na serwerze z antycheatem, packety poruszania się nie są tłumaczone w 100% dokładnie, przez co rozgrywka może być utrudniona, a nawet możesz dostać bana! Więcej informacji znajdziesz tutaj.

(Część dotycząca AntyCheata połownicznie nie dotyczy Matrixa, w wersji Spigot będzie on automatycznie omijał wszystkich graczy z Geysera, w wersji Bungee właściciel serwera musi włączyć opcję bungee_geysermc_support)

Instalacja (plugin)

(jeżeli nie jesteś właścicielem serwera, na który chcesz się połączyć, przejdź do sekcji Standalone)

Pobieramy plugin na naszą wersję serwera z oficjalnej strony. Instalacja jest bardzo prosta. Wrzucamy plik jar do folderu plugins i restartujemy serwer.
W configu zmieniamy następujące opcje:

  • bedrock.port na pożądany port serwera Bedrock, zalecane jest zostawić domyslny (jeżeli korzystasz z hostingu i posiadasz tylko jeden port, włącz funkcję bedrock.clone-remote-port),
  • (opcjonalne) bedrock.motd1 i bedrock.motd2 na pożądane MOTD serwera,
  • (opcjonalne) bedrock.server-name na nazwę serwera wyświetlaną w menu pauzy,
  • remote.address na auto (jeżeli masz problem z połączeniem możesz go zmienić na statyczny adres),
  • remote.port na port serwera Java (jeżeli nie wiesz jaki posiadasz port, możesz go znaleźć w konfiguracji serwera),
  • remote.auth-type na pożądany typ uwierzetylniania.
    • w przypadku serwera premium, zmieniamy go na online, użytkownicy będą musieli zalogować się do swojego konta Mojang/Microsoft przed dołączeniem na serwer w celu identyfikacji,
    • w przypadku serwera non-premium, zmieniamy go na offline, użytkownicy dołączą z nazwą taką jak ich Tag Gracza.
    • jest też trzeci typ konfiguracji (floodgate) pozwalający grać na serwerze typu premium bez logowania, po więcej informacji kliknij tutaj.

Po zmianach w konfiguracji jeszcze raz restartujemy serwer. Wszystko powinno już działać.

Instalacja (Standalone)

Drugą opcją instalacji jest Standalone. Przydaje się to w momencie, kiedy chcemy się połączyć na serwer, którego nie jesteśmy właścicielem i/lub chcemy użyć proxy na telefonie. Wymagana jest co najmniej Java 8.
Pierwszym krokiem będzie pobranie pliku proxy (Geyser.jar) z oficjalnej strony. Zapisujemy go w pożądanej lokalizacji. Następnie stworzymy skrypt startowy:

Windows (start.bat)

Skrypt:

@echo off
java -Xms1G -jar Geyser.jar
pause

Aby włączyć serwer, uruchamiamy skrypt szybko klikając dwa razy.

Linux (start.sh)

Skrypt:

#!/bin/bash

java -Xms1G -jar Geyser.jar

Musimy także nadać uprawnienia pliku - chmod +x start.sh
Aby włączyć serwer, użyjemy polecenia ./start.sh.

Linux - umożliwienie działanie serwera 24/7

Aby proxy było włączone nawet po zamknięciu sesji, użyjemy aplikacji screen.
sudo apt install screen
Następnie zrobimy małą modyfikację w pliku startowym:

#!/bin/bash

screen -S geyser java -Xms1G -jar Geyser.jar

Serwer uruchamiamy tak samo - ./start.sh. Teraz jednak możemy wyjść z aplikacji nie wyłączając jej za pomocą skrótu CTRL + A + D. Aby powrócić do screena, użyjemy screen -r geyser.

Jeżeli serwer poprawnie się uruchamia, zajmiemy się konfiguracją, zmieniamy:

  • (opcjonalne) bedrock.motd1 i bedrock.motd2 na pożądane MOTD serwera,
  • (opcjonalne) bedrock.server-name na nazwę serwera wyświetlaną w menu pauzy,
  • remote.address na adres serwera Java, do którego chcemy się połączyć,
  • remote.port na port serwera Java, do którego chcemy się połączyć (jeżeli nie wiesz jaki jest port serwera, spróbuj użyc 25565),
  • remote.auth-type na pożądany typ uwierzetylniania.
    • w przypadku serwera premium, zmieniamy go na online, użytkownicy będą musieli zalogować się do swojego konta Mojang/Microsoft przed dołączeniem na serwer w celu identyfikacji,
    • w przypadku serwera non-premium, zmieniamy go na offline, użytkownicy dołączą z nazwą taką jak ich Tag Gracza.

Po zmianach restartujemy serwer. Powinno wszystko działać!

Łączenie się

Swój serwer w wersji Bedrock znajdziemy pod danymi:
Adres: adres serwera

  • dla pluginu taki sam jak adres serwera Java,
  • dla wersji Standalone będzie on taki sam jak serwer host (Windows: ipconfig i szukamy IPv4, Linux: ip -h a i szukamy interfejsu eth0).

Port: port serwera zdefiniowany w konfiguracji.

Słowa końcowe

Mam nadzieję, że poradnik komuś pomoże. W razie problemów napisz odpowiedź, postaram się pomóc :slight_smile: