// Minecraft

DiscordSRV: jak połączyć serwer Minecraft z Discordem

DiscordSRV: jak połączyć serwer Minecraft z Discordem

DiscordSRV to darmowy plugin open source, który dwukierunkowo łączy czat twojego serwera Minecraft z Discordem: to, co gracze piszą w grze, pojawia się na kanale Discorda, a to, co ktoś napisze na tym kanale, trafia z powrotem do gry. Plugin działa w całości po stronie serwera na Paper, Purpur albo Spigot, więc gracze nie muszą nic instalować. Potrzebujesz trzech rzeczy: własnego bota Discord z tokenem, ID kanałów, które chcesz połączyć, oraz dostępu do plugins/DiscordSRV/config.yml.

Co dokładnie możesz połączyć przez DiscordSRV?

Most czatowy to powód, dla którego większość serwerów sięga po ten plugin, ale potrafi on dużo więcej. Każdy z tych elementów włączasz i wyłączasz niezależnie od pozostałych:

  • Czat dwukierunkowy. Wiadomości z gry lecą na wybrany kanał Discorda, a wiadomości z tego kanału pojawiają się na czacie w grze z nickiem z Discorda z przodu. Dzięki temu ktoś może rozmawiać z ekipą prosto z telefonu.
  • Powiadomienia o wejściu, wyjściu i statusie. Widzisz, kto dołącza i kto wychodzi, opcjonalnie razem z komunikatami o śmierci. Na zatłoczonym serwerze szybko robi się z tego szum, dlatego wielu administratorów zostawia tylko wejścia i wyjścia.
  • Kanał konsoli. Konsola serwera leci na osobny kanał, a ty możesz wykonywać tam komendy. Przydatne, gdy trzeba kogoś odbanować poza domem, ale to zarazem najniebezpieczniejsza część pluginu.
  • Synchronizacja rang. Przypisujesz rolę z Discorda do grupy w LuckPerms, więc kto dostanie na Discordzie rolę Donator, ten w grze ląduje w odpowiedniej randze.
  • Łączenie kont. Gracze wiążą swoje konto Minecraft z kontem Discord komendą w grze i krótkim kodem. Bez tego powiązania plugin nie wie, kto jest kim, i synchronizacja rang nie zadziała.

Nie bez powodu DiscordSRV pojawia się praktycznie w każdym zestawieniu standardowych pluginów na serwer Minecraft, obok EssentialsX, LuckPerms i CoreProtect.

Jak założyć bota na Discordzie?

DiscordSRV nie dostarcza gotowego bota. Zakładasz go sam w portalu deweloperskim Discorda, dzięki czemu to ty decydujesz, jakie uprawnienia dostanie.

  1. W portalu deweloperskim Discorda utwórz aplikację przez New Application. Nazwa, którą wpiszesz, stanie się nazwą twojego bota.
  2. Otwórz zakładkę Bot i włącz uprzywilejowane intencje bramy: Message Content Intent jest obowiązkowy dla wiadomości z Discorda do Minecrafta, a Server Members Intent dla synchronizacji rang i łączenia kont.
  3. Kliknij Reset Token i skopiuj token. Zobaczysz go tylko raz, potem trzeba resetować od nowa. Traktuj ten token jak hasło do całego swojego serwera Discord.
  4. Wejdź w OAuth2 URL Generator, zaznacz zakres bot i wybierz uprawnienia: wysyłanie wiadomości, czytanie historii wiadomości oraz Manage Roles (tylko przy synchronizacji rang). Otwórz link i zaproś bota.
  5. Wrzuć plik jar do folderu plugins i uruchom serwer jeden raz, żeby powstała konfiguracja. Następnie wpisz swój token przy BotToken w plugins/DiscordSRV/config.yml.
  6. Włącz na Discordzie tryb dewelopera, kliknij kanał prawym przyciskiem i wybierz Kopiuj ID kanału: to liczba od 17 do 19 cyfr, a nie nazwa kanału. ID kanału czatu wpisz przy global, a ID kanału administracji przy ustawieniu konsoli.
  7. Zamiast reloadu zrób pełny restart serwera. W konsoli zobaczysz, czy bot się łączy. Potem przetestuj oba kierunki: napisz coś w grze i napisz coś na Discordzie.

config.yml najwygodniej edytuje się przez menedżer plików w panelu. W hostingu Minecraft od MC-Node panel Pterodactyl jest w każdym pakiecie, więc plik poprawisz w przeglądarce, bez FTP.

Które kanały łączysz, a które trzymasz prywatne?

Największe kłopoty biorą się nie z samego pluginu, tylko z niechlujnych uprawnień do kanałów. Ustal z góry dla każdego kanału, kto może czytać, a kto pisać.

KanałKto może czytaćKto może pisaćDlaczego
Kanał czatu (global)WszyscyWszyscyMost, do którego plugin został stworzony. Wszystko, co tu trafi, pojawi się w grze.
Kanał logów (wejścia, wyjścia, śmierci)CzłonkowieTylko botCzysty dziennik. Odebranie prawa do pisania zapobiega zalaniu go reakcjami.
Kanał konsoliTylko administracjaTylko administracjaZawiera logi startu, błędy z pełnymi ścieżkami folderów, a czasem adresy IP graczy.
Kanał łączenia kontCzłonkowieCzłonkowieTu gracze wpisują swój kod powiązania. Te kody są osobiste i ważne tylko przez chwilę.

Sprawdź uprawnienia drugim kontem bez żadnych ról. Kanały dziedziczą uprawnienia po swojej kategorii i właśnie na tym najczęściej się wykłada: kanał jest zamknięty, a kategoria wokół niego już nie.

Jak przypisać role z Discorda do rang w grze?

Dla wielu serwerów to główny powód instalacji DiscordSRV. W konfiguracji synchronizacji łączysz ID roli z Discorda z grupą w LuckPerms, czyli standardzie do uprawnień i rang na serwerach opartych na Bukkit. Nadasz komuś na Discordzie rolę Donator, a w grze wyląduje on w grupie donator.

O tym, czy to zadziała, decydują trzy rzeczy. Gracz musi mieć połączone konta, inaczej nie ma żadnego powiązania między ID Discorda a UUID w Minecrafcie. Rola bota musi stać na liście ról powyżej ról, które rozdaje, w przeciwnym razie dostaniesz błąd uprawnień niemający nic wspólnego z Minecraftem. I musisz zdecydować, która strona jest nadrzędna.

Ten ostatni wybór bywa lekceważony. Przy synchronizacji dwukierunkowej gracz traci rangę także w grze, gdy tylko ktoś ręcznie zdejmie mu rolę na Discordzie, a literówka w ID roli potrafi jednym ruchem nadać albo odebrać rangę całej twojej bazie graczy. Zrób więc kopię zapasową bazy LuckPerms, zanim to włączysz, i w razie wątpliwości wybierz jedną nadrzędną stronę: zwykle Discord.

Które dwa błędy najczęściej kosztują serwery ich Discord?

Pierwszy to wyciek tokena bota. Ktoś obcy dostaje wtedy pełną kontrolę nad twoim botem: może wysyłać wiadomości, udając twój serwer, zaspamować kanały, a z uprawnieniem Manage Roles także rozdawać role samemu sobie. Jeśli masz włączoną synchronizację rang, taka rola to od razu ranga w Minecrafcie.

Wycieki zdarzają się niemal zawsze na dwa sposoby: przez zrzut ekranu z config.yml wrzucony na kanał pomocy albo przez wklejenie całej konfiguracji lub loga na pastebin, żeby poprosić o pomoc. Nigdy nie wklejaj nigdzie całego pliku konfiguracyjnego, tylko ten fragment, który dotyczy twojego problemu, z wyciętym tokenem; nie zakładaj, że serwis do wklejania sam ocenzuruje tokeny. Jeśli już się stało, zresetuj token od razu w portalu deweloperskim. Nowy wpisz do konfiguracji, zrestartuj serwer i przejrzyj dziennik audytu swojego serwera Discord pod kątem ról i kanałów, których sam nie zmieniałeś.

Drugi błąd to publiczny kanał konsoli. Trafia tam wszystko, co wypluwa twoja konsola: logi startu, wersje pluginów, błędy z pełnymi ścieżkami folderów oraz, zależnie od ustawień, powiadomienia o wejściach razem z adresami IP graczy. To dokładnie te informacje, którymi ktoś zaatakuje twój serwer. A jeśli dopuścisz jeszcze komendy konsolowe z tego kanału, każdy, kto może tam pisać, odpali op, ban albo stop.

Dlatego umieść kanał konsoli w kategorii widocznej tylko dla twojej roli administracyjnej, a wykonywanie komend ogranicz do ID ról, które wskażesz wprost. Jeśli używasz go wyłącznie jako dziennika, wyłącz wykonywanie komend.

O ile mocniej obciąży to twój serwer?

Praktycznie wcale. DiscordSRV obsługuje swój ruch sieciowy asynchronicznie, więc główny wątek i TPS, czyli liczba ticków serwera na sekundę, niewiele z tego odczują. Na co faktycznie się natkniesz, to limity samego Discorda: bot może publikować wiadomości tylko w określonym tempie, więc przy komunikatach o śmierci i osiągnięciach czat potrafi się opóźniać. Wtedy po prostu wyłącz te powiadomienia.

Prawdziwe pytania o wydajność leżą gdzie indziej: wczytywanie chunków, czyli fragmentów świata, które serwer trzyma w pamięci, encje i ciężkie modpacki. All the Mods 10 wymaga minimum 10 GB RAM, a przy pięciu lub więcej graczach od 14 do 16 GB; plugin do czatu nic tu nie zmieni. Jeśli serwer ci muli, sięgnij po spark i przerób poradnik o optymalizacji serwera Minecraft.

Kiedy lepiej odpuścić sobie DiscordSRV?

Czterem znajomym, którzy i tak siedzą na tym samym kanale głosowym, most czatowy niewiele daje. Jeśli chcesz tylko widzieć status serwera i liczbę graczy, wystarczy panel hostingowy.

Ważniejsza jest granica techniczna: DiscordSRV to plugin, a nie mod. Działa na oprogramowaniu opartym na Bukkit, takim jak Paper i Purpur, i nie wczytasz go w czystej konfiguracji NeoForge ani Fabric. Jeśli odpalasz All the Mods 10 na NeoForge, potrzebujesz modowego zamiennika albo hybrydowego oprogramowania serwera, z całą jego niestabilnością. To samo dotyczy prawdziwego oprogramowania serwerowego Bedrock: nie zna ono pluginów Bukkit, więc najpierw sprawdź, co w ogóle da się tam zrobić na serwerze Bedrock Edition. Na serwerze Java z Geyser i Floodgate DiscordSRV działa jednak również dla graczy z Bedrock.

Pamiętaj na koniec, że most czatowy to także zadanie moderacyjne: wszystko, co pada w grze, zostaje na stałe na Discordzie, a w czacie odzywają się ludzie, którzy wcale nie grają na twoim serwerze. Ustal więc z góry, kto może pisać na tym kanale.

Najczęściej zadawane pytania

Czy DiscordSRV jest darmowy? Tak, jest darmowy i open source: czat dwukierunkowy, kanał konsoli, łączenie kont i synchronizacja rang z LuckPerms są w zwykłej wersji. Płacisz tylko za serwer, na którym plugin chodzi; pakiet 2 GB w MC-Node kosztuje 9,50 zł miesięcznie.

Wyciekł mi token bota, co teraz? Zresetuj token od razu w portalu deweloperskim Discorda, przez co stary natychmiast przestaje działać. Nowy wpisz do config.yml, zrestartuj serwer i sprawdź dziennik audytu pod kątem ról, kanałów albo banów, których sam nie zakładałeś.

Dlaczego czat dochodzi do Discorda, ale nie wraca do Minecrafta? Najczęściej w portalu deweloperskim jest wyłączony Message Content Intent, przez co bot nie może czytać treści wiadomości. Sprawdź potem, czy bot ma prawo odczytu na tym kanale i czy ID kanału z 17 do 19 cyfr się zgadza.

Czy mogę sterować serwerem z Discorda? Tak, przez kanał konsoli wykonujesz komendy tak, jakbyś siedział przy konsoli. Ustaw jednak ten kanał jako prywatny dla swojej roli administracyjnej i ogranicz wykonywanie do konkretnych ID ról, inaczej każdy z prawem pisania odpali komendy takie jak op albo stop.

Warto przeczytać

// WYPRÓBUJ SAM
Twój serwer online w 60 sekund
MC-Node →