GameHosting.pl

Notatki operatora

DiscordSRV: integracja czatu Minecraft z Discordem

Praktyczny przewodnik po DiscordSRV, pluginie, który łączy czat z serwera Minecraft z kanałem na Discordzie. Od utworzenia bota w Discord Developer Portal, przez token i intencje, podstawowy config.yml, linkowanie kont graczy, po synchronizację rang z LuckPerms i najczęstsze błędy. Z perspektywy kogoś, kto już raz tłumaczył, czemu „bot się łączy, ale nic nie pisze”.

Opublikowano · ~8 min czytania

W skrócie: DiscordSRV to plugin na Spigot/Paper, który robi most między czatem w grze a kanałem na Discordzie, plus powiadomienia o wejściach i śmierciach oraz linkowanie kont. Tworzysz bota w discord.com/developers, włączasz Message Content Intent i Server Members Intent, kopiujesz token do config.yml (pole BotToken) i podajesz ID kanału w Channels. Gracze łączą konta komendą /discord link, a rangi synchronizujesz z LuckPerms w pliku synchronization.yml. Jeśli nie chcesz grzebać w plikach, weź hosting z gotową obsługą wtyczek.

Czym jest DiscordSRV i co właściwie robi

DiscordSRV to jeden z najpopularniejszych pluginów łączących serwer Minecraft ze społecznością na Discordzie. Jego sercem jest most czatu: wiadomości napisane na serwerze pojawiają się na wybranym kanale Discorda, a wpisy z tego kanału trafiają na czat w grze. Dzięki temu osoby, które akurat nie grają, dalej są w kontakcie z resztą ekipy.

Poza samym czatem DiscordSRV oferuje kilka rzeczy, które na żywym serwerze szybko stają się niezbędne:

W tym przewodniku skupiam się na rdzeniu, którego potrzebuje każdy: most czatu, linkowanie kont i synchronizacja rang. Resztę dołożysz później, gdy podstawa już działa.

Wymagania

Zanim cokolwiek pobierzesz, upewnij się, że masz dwie rzeczy:

Opcjonalnie, jeśli planujesz synchronizację rang, przyda się plugin uprawnień, najczęściej LuckPerms. Bez niego most czatu i linkowanie kont i tak zadziałają.

Utworzenie bota w Discord Developer Portal

To krok, który najczęściej idzie nie tak, więc zrób go dokładnie. Cała robota dzieje się w panelu discord.com/developers/applications.

  1. Utwórz aplikację. Kliknij New Application, nadaj jej nazwę (to będzie nazwa bota widoczna na Discordzie) i potwierdź.
  2. Przejdź do zakładki Bot. W menu po lewej wybierz Bot. To tu zarządzasz tożsamością i uprawnieniami bota.
  3. Włącz wymagane intencje (Gateway Intents). To kluczowy moment. W sekcji Privileged Gateway Intents włącz:
    • Message Content Intent, bez tego bot nie widzi treści wiadomości i most czatu nie zadziała w stronę Discord do gry,
    • Server Members Intent, potrzebny do funkcji powiązanych z członkami serwera, w tym do synchronizacji rang.
  4. Pobierz token bota. W zakładce Bot kliknij Reset Token i skopiuj wygenerowany ciąg. To hasło do bota, potraktuj je jak sekret. Zostaw odznaczoną opcję Public Bot, żeby nikt obcy nie zaprosił Twojego bota na swój serwer.
  5. Zaproś bota na swój serwer Discord. Skopiuj Application ID i użyj go w narzędziu autoryzacji DiscordSRV, żeby dodać bota do swojego guildu. Następnie utwórz dla niego rolę z odpowiednimi uprawnieniami (na start często nadaje się rolę z uprawnieniem administratora, później można ją zawęzić).

Pamiętaj: token bota i intencje to dwa najczęstsze powody, że „nic nie działa”. Jeśli zapomnisz włączyć Message Content Intent, bot się połączy i będzie widać go online, ale wiadomości z Discorda nie trafią na czat. Zawsze sprawdzaj te dwa punkty w pierwszej kolejności.

Instalacja pluginu i podstawowy config.yml

Mając bota, czas wgrać sam plugin i go skonfigurować:

  1. Pobierz DiscordSRV. Ściągnij plik .jar z oficjalnego źródła w wersji pasującej do wersji serwera.
  2. Wrzuć do folderu plugins. Skopiuj plik .jar do katalogu plugins/ i zrestartuj serwer. Przy pierwszym starcie DiscordSRV utworzy folder plugins/DiscordSRV z plikiem config.yml.
  3. Wstaw token. Otwórz plugins/DiscordSRV/config.yml i w polu BotToken wklej token skopiowany z Developer Portal.
  4. Podaj kanał czatu. Włącz na Discordzie Tryb dewelopera (Developer Mode w ustawieniach), kliknij prawym na kanał i wybierz Copy ID. To ID wstawiasz w sekcji Channels pod kluczem global (to wewnętrzny kanał gry, mapowany na kanał Discorda).
  5. Przeładuj lub zrestartuj. Uruchom ponownie serwer (albo wpisz /discord reload). W konsoli powinien pojawić się komunikat, że bot się połączył.

Minimalny fragment config.yml wygląda tak:

BotToken: "TWOJ_TOKEN_BOTA"

Channels: {"global": "ID_KANALU_DISCORD"}

Klucz global to domyślny kanał gry, a wartość po prawej to ID kanału na Discordzie, na który ma trafiać czat. Możesz dodać kolejne pary, gdy zechcesz mostkować więcej kanałów. Opcjonalnie ustawisz też pole DiscordConsoleChannelId, jeśli chcesz mieć kanał z konsolą serwera.

Linkowanie kont gracz-Discord

Most czatu działa od razu, ale funkcje zależne od tożsamości (synchronizacja rang, pseudonimu) wymagają, żeby gracz połączył swoje konto Minecraft z kontem Discord. Proces jest prosty:

  1. Gracz wpisuje na serwerze komendę /discord link.
  2. DiscordSRV odpowiada mu czterocyfrowym kodem.
  3. Gracz wysyła ten kod w prywatnej wiadomości do bota na Discordzie.
  4. Po wpisaniu kodu konta są połączone, gotowe.

Komenda dla gracza wymaga uprawnienia discordsrv.link. Jeśli musisz połączyć cudze konta ręcznie (na przykład gracz ma problem), administrator robi to komendą /discord link <gracz> <DiscordID> z uprawnieniem discordsrv.link.others.

Synchronizacja rang z LuckPerms

To funkcja, dla której wielu operatorów w ogóle wdraża DiscordSRV: ranga zdobyta na serwerze automatycznie nadaje graczowi odpowiednią rolę na Discordzie. Żeby zadziałała, potrzebujesz trzech rzeczy: pluginu uprawnień (najczęściej LuckPerms), połączonych kont graczy i poprawnego mapowania w konfiguracji.

Mapowanie ustawiasz w pliku plugins/DiscordSRV/synchronization.yml, w kluczu GroupRoleSynchronizationGroupsAndRolesToSync. To słownik par: nazwa grupy w Minecraft do ID roli na Discordzie:

GroupRoleSynchronizationGroupsAndRolesToSync: {"vip": "680679725206994947", "admin": "680679790025506861"}

Kilka rzeczy, które warto zapamiętać:

Przy większej liczbie grup wygodnie jest projektować rangi w LuckPerms i role na Discordzie równolegle, jedna ranga = jedna rola, żeby mapowanie było czytelne. Jak zbudować same rangi, opisuje osobny wpis o LuckPerms.

Przydatne komendy

Garść komend do trzymania pod ręką.

KomendaCo robi
/discord linkRozpoczyna linkowanie konta gracza, zwraca czterocyfrowy kod do wpisania botowi (uprawnienie discordsrv.link).
/discord link <gracz> <DiscordID>Administracyjne połączenie cudzych kont (uprawnienie discordsrv.link.others).
/discord reloadPrzeładowuje konfigurację pluginu (część zmian i tak wymaga restartu serwera).
/discordWyświetla informacje pomocnicze pluginu.

Typowe problemy

Najczęstsze pytania

Czy do DiscordSRV trzeba mieć Spigot albo Paper?

Tak. DiscordSRV to plugin Bukkit, więc działa na Spigot i Paper (Paper jest standardem). Na czystym vanilla nie zadziała. Wgrywasz plik .jar do folderu plugins i restartujesz serwer.

Dlaczego bot nie czyta czatu, choć łączy się z Discordem?

Zwykle brak włączonej Message Content Intent w Developer Portal. Włącz ją oraz Server Members Intent w zakładce Bot i zrestartuj serwer Minecraft.

Jaką komendą gracz łączy konto Minecraft z Discordem?

Gracz wpisuje /discord link, dostaje czterocyfrowy kod i wysyła go w prywatnej wiadomości do bota. Komenda wymaga uprawnienia discordsrv.link.

Jak zsynchronizować rangi z rolami na Discordzie?

Potrzebujesz pluginu uprawnień (LuckPerms) i połączonych kont. Mapowanie ustawiasz w synchronization.yml w kluczu GroupRoleSynchronizationGroupsAndRolesToSync (para: nazwa grupy do ID roli). Po zmianie wpisz /discord reload.

Czy token bota jest bezpieczny w config.yml?

Token wklejasz tylko do pola BotToken w config.yml. To hasło do bota, nie publikuj go nigdzie. Jeśli wyciekł, zresetuj go w Developer Portal i trzymaj wyłączoną opcję Public Bot.

Powiązane