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.
- W portalu deweloperskim Discorda utwórz aplikację przez New Application. Nazwa, którą wpiszesz, stanie się nazwą twojego bota.
- 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.
- 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.
- Wejdź w OAuth2 URL Generator, zaznacz zakres
boti wybierz uprawnienia: wysyłanie wiadomości, czytanie historii wiadomości oraz Manage Roles (tylko przy synchronizacji rang). Otwórz link i zaproś bota. - Wrzuć plik jar do folderu
pluginsi uruchom serwer jeden raz, żeby powstała konfiguracja. Następnie wpisz swój token przyBotTokenwplugins/DiscordSRV/config.yml. - 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. - 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) | Wszyscy | Wszyscy | Most, do którego plugin został stworzony. Wszystko, co tu trafi, pojawi się w grze. |
| Kanał logów (wejścia, wyjścia, śmierci) | Członkowie | Tylko bot | Czysty dziennik. Odebranie prawa do pisania zapobiega zalaniu go reakcjami. |
| Kanał konsoli | Tylko administracja | Tylko administracja | Zawiera logi startu, błędy z pełnymi ścieżkami folderów, a czasem adresy IP graczy. |
| Kanał łączenia kont | Członkowie | Członkowie | Tu 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.