Lodehost logoLodehost

Gracze i dostęp

Połącz czat Minecrafta z kanałem na Discordzie przez DiscordSRV

Połowa Twojej społeczności rozmawia na Discordzie, a druga połowa w grze, i żadna strona nie czyta drugiej. DiscordSRV łączy obie rozmowy: to, co gracze piszą na serwerze, trafia na kanał Discorda, a odpowiedzi wpisane na Discordzie pojawiają się na czacie w grze. Potrzebujesz własnego bota, tajnego tokena i ID kanału, a większość nieudanych konfiguracji potyka się właśnie o jedno z tych trzech.

9 min czytania

Cztery elementy, które muszą pasować

DiscordSRV to plugin, więc serwer musi działać na Paperze albo Purpurze (czym się różnią). Loguje się do Discorda jako bot, którego tworzysz sam, i trzeba mu wskazać, który kanał Discorda dostaje które wiadomości.

ElementSkąd go wziąćGdzie trafia
Plugin„Katalog pluginów” w zakładce „Pluginy”Folder plugins serwera
Aplikacja botaDiscord Developer PortalZaproszona na Twój serwer Discord
Token botaStrona Bot tej aplikacjiBotToken w plugins/DiscordSRV/config.yml
ID kanałuAplikacja Discord z włączonym trybem deweloperaLinijka Channels w tym samym pliku

Obecne wydanie, DiscordSRV 1.30.5 z kwietnia 2026, obsługuje Java Edition 26.2, a katalog w naszej zakładce „Pluginy” pokazuje je dla tej wersji.

Ten poradnik zakłada, że sam serwer Discord już istnieje. Jeśli musisz jeszcze zdecydować, jakie kanały założyć i jakie role dać członkom i ekipie, poradnik Konfiguracja Discorda dla Minecraft na astroworldmc.site pomoże to zaplanować, łącznie z miejscem na kanał mostu czatu.

Utwórz bota w Developer Portal

  1. Utwórz aplikację

    W Discord Developer Portal wybierz New Application i nazwij ją tak jak swój serwer. Tę nazwę ludzie widzą przy przekazywanych wiadomościach.

  2. Zatrzymaj go dla siebie

    Na stronie Installation zostaw zaznaczone tylko Guild Install i ustaw Install Link na None. Na stronie Bot upewnij się, że Public Bot jest wyłączone, żeby nikt inny nie mógł dodać bota do swojego serwera.

  3. Włącz dwa intents

    Wciąż na stronie Bot, pod Privileged Gateway Intents, włącz SERVER MEMBERS INTENT i MESSAGE CONTENT INTENT. PRESENCE INTENT ma znaczenie tylko wtedy, gdy później ustawisz EnablePresenceInformation na true.

  4. Zaproś go

    Weź Application ID z General Information i zbuduj zaproszenie z zakresami bot i applications.commands. Wybierz swój serwer Discord i zatwierdź.

  5. Nadaj mu rolę

    Utwórz rolę dla bota w ustawieniach swojego serwera Discord i przypisz ją. Administrator to najkrótsza droga; tabela niżej to węższy zestaw.

Intents nie są opcjonalne. Bez Message Content Discord dostarcza wiadomości z Twojego kanału z pustą treścią, więc nic czytelnego nie mogłoby trafić do gry. Gdy bot prosi o intent, który jest wyłączony, Discord zamyka połączenie z kodem 4014, a DiscordSRV zostaje wyłączony.

ZakresUprawnienia roli bota
Cały serwerManage Roles, Manage Channels, Ban Members, Manage Nicknames, Manage Webhooks
Na kanałach, których używaView Channel, Send Messages, Manage Messages, Embed Links, Mention @everyone, @here and All Roles, Add Reactions, Read Message History, Move Members, Mute Members, Manage Permissions

Zainstaluj plugin i daj mu token

W zakładce „Pluginy” wpisz DiscordSRV w „Szukaj pluginów” i wybierz „Zainstaluj”. Katalog jest dopasowany do typu i wersji Twojego serwera, a panel potwierdza plik komunikatem „SHA-512 sprawdzone” z przypomnieniem o restarcie. Zrestartuj teraz raz, zanim masz token. DiscordSRV zapisze swój folder i config, nie zaloguje się i powie dlaczego:

Konsola

No bot token has been set in the config; a bot token is required to connect to Discord.

Na tym etapie ta linijka to dobra wiadomość: config istnieje. Wróć na stronę Bot w portalu, gdzie Reset Token generuje token i pokazuje go do skopiowania. W zakładce „Pliki” otwórz plugins, potem DiscordSRV, wybierz „Edytuj” przy config.yml, wklej token między cudzysłowy i naciśnij „Zapisz”.

plugins/DiscordSRV/config.yml

BotToken: "PASTE_THE_BOT_TOKEN_HERE"

Zmieniony token wymaga pełnego restartu; discord reload go nie wczytuje. Kto ma ten ciąg znaków, ten steruje botem: może czytać każdy kanał, który bot widzi, pisać jako on i używać każdego uprawnienia jego roli, łącznie z Ban Members.

  • Nigdy nie wklejaj go na kanał, do zrzutu ekranu ani do prośby o pomoc. Udostępniasz config.yml? Najpierw zamień token na zastępczy tekst.
  • Przenieś go z config.yml, jeśli inni edytują ten plik. DiscordSRV czyta też plik o nazwie .token w plugins/DiscordSRV, a dopóki ten plik istnieje, linijka BotToken jest ignorowana. Każdy z uprawnieniem do Plików nadal może go otworzyć, więc nadawaj to uprawnienie oszczędnie.
  • Jeden bot na jeden serwer. Jeden token na dwóch serwerach sprawia, że bot dostaje limity, a DiscordSRV ostrzega, że Discord traktuje to jako nadużycie.
  • Raporty debug go ukrywają. discord debug zastępuje wszystko, co wygląda jak token, zanim raport zostanie wysłany.

Gdy token wycieknie

Wróć na stronę Bot i znowu naciśnij Reset Token. Wyciekły token przestaje działać, więc wpisz nowy do configu i zrestartuj serwer, zanim zrobisz cokolwiek innego.

ID kanałów i linijka Channels

  1. Włącz tryb dewelopera

    W aplikacji Discord otwórz ustawienia użytkownika zębatką w lewym dolnym rogu, przejdź do sekcji zaawansowanej i włącz tryb dewelopera (Developer Mode).

  2. Skopiuj ID

    Kliknij prawym przyciskiem kanał tekstowy przeznaczony na czat. Menu ma teraz pozycję do kopiowania ID kanału, a kopiuje ona długą liczbę.

  3. Wpisz je do configu

    Zastąp rząd zer w Channels tą liczbą i zostaw wokół niej cudzysłowy.

plugins/DiscordSRV/config.yml

Channels: {"global": "CHAT_CHANNEL_ID"}

# or send joins, leaves and deaths somewhere quieter:
Channels: {"global": "CHAT_CHANNEL_ID", "join": "EVENTS_CHANNEL_ID", "leave": "EVENTS_CHANNEL_ID", "deaths": "EVENTS_CHANNEL_ID"}

Lewa połowa każdej pary to nazwa, której DiscordSRV używa wewnętrznie, a nie nazwa Twojego kanału na Discordzie. Czat graczy na serwerze Paper albo Purpur bez pluginu czatu to global. Wszystko, co wysyła DiscordSRV, trafia na pierwszy kanał z listy, chyba że lista ma parę dla danego rodzaju wiadomości:

Nazwa po lewejCo przenosi
globalCzat graczy i odpowiedzi z Discorda
statusKomunikaty o starcie i zatrzymaniu serwera
join i leaveGracze wchodzący i wychodzący
deathsKomunikaty o śmierci
awardsOsiągnięcia
broadcastsWiadomości wysłane przez discord broadcast
linkŁączenie kont

Plugin czatu przynosi własne nazwy kanałów, które zastępują global. Przy TownyChat zwykle jest to general.

Zmiany w Channels zaczynają działać po discord reload w zakładce „Konsola”, wpisanym bez ukośnika.

Kanał konsoli i dlaczego trzeba go zamknąć

DiscordConsoleChannelId przyjmuje ID drugiego kanału. DiscordSRV kopiuje do niego konsolę serwera partiami, domyślnie co 5 sekund, i wykonuje wszystko, co tam zostanie wpisane, jako komendę konsoli. Nie sprawdza, kto to wpisał. Każdy członek, który może pisać na tym kanale, dostaje zasięg konsoli serwera.

Jedynym hamulcem jest krótka lista blokad: ?, op, deop i execute. stop, ban, whitelist off i każda komenda pluginu zostają zupełnie otwarte, więc jedno nieostrożne uprawnienie kanału rozdaje więcej, niż cofnie jakikolwiek ban czy kick.

Zostaw ID puste, chyba że go potrzebujesz

Puste DiscordConsoleChannelId wyłącza kanał konsoli, co jest właściwym ustawieniem dla zwykłego mostu czatu. Nigdy nie podawaj tam ID kanału czatu; DiscordSRV ostrzega w konsoli właśnie przed tym błędem.

  • Uczyń kanał prywatnym. Na Discordzie odbierz View Channel roli @everyone na tym kanale i pozwól na nie tylko sobie i roli bota.
  • Zamień listę blokad w listę dozwolonych. Przy DiscordConsoleChannelBlacklistActsAsWhitelist: true lista wymienia jedyne komendy, które się wykonają, na przykład list, say i tps.
  • Zachowaj zapis. Każda komenda trafia do pliku Console-<date>.log z nazwą i ID użytkownika Discorda, który ją wysłał, a domyślnie komenda, której nie da się zapisać, nie wykonuje się.

Wpisane na kanale czatu

!c say hello from Discord

Kanał czatu też ma boczne wejście. Wiadomość z tym prefiksem wykonuje się jako komenda konsoli dla członków z rolą o nazwie Owner albo Developer, bez względu na wielkość liter, a te role mogą uruchomić wszystko. Jeśli na Twoim Discordzie te nazwy mają inni ludzie, ustaw DiscordChatChannelConsoleCommandEnabled: false.

Łączenie kont Minecraft i Discord

Łączenie zapisuje, który członek Discorda należy do którego gracza. Czat działa bez tego, ale synchronizacja ról, nicków i banów opiera się właśnie na nim.

  1. Pobierz kod w grze

    Gracz wpisuje /discord link. Serwer odpowiada czterocyfrowym kodem i nazwą bota.

  2. Wyślij kod botowi

    Na Discordzie gracz otwiera prywatną wiadomość do bota i wysyła tylko te cztery cyfry. Zły kod dostaje odpowiedź I don't know of such a code, try again.

  3. Sprawdź wynik

    /discord linked pokazuje, które konto jest połączone, a /discord unlink usuwa połączenie.

Domyślnie łączyć mogą wszyscy gracze, a discord reload jest zarezerwowane dla operatorów. Dla ostrzejszych zasad DiscordChatChannelRequireLinkedAccount: true wpuszcza do gry wiadomości z Discorda tylko od członków, którzy połączyli konta, a Require linked account to play w linking.yml nie wpuszcza na serwer graczy bez połączenia. To drugie jest domyślnie wyłączone, a gracze z vanillowej białej listy je pomijają, dopóki Whitelisted players bypass check zostaje na true; poradnik o białej liście wyjaśnia tę listę.

Zrestartuj i przetestuj oba kierunki

  1. Zrestartuj z zakładki Konsola

    Naciśnij „Restart” i obserwuj wyjście pod kątem błędów DiscordSRV. Gdy ich nie ma, bot pokazuje się jako online na liście członków, z grą w Minecraft.

  2. Z gry na Discorda

    Napisz coś na czacie w grze i poszukaj tego na kanale czatu.

  3. Z Discorda do gry

    Wpisz linijkę na kanale czatu. Pojawia się na czacie w grze i domyślnie także w konsoli, co przydaje się, gdy nikogo nie ma online, żeby to sprawdzić.

  4. Poproś o listę graczy

    Wyślij playerlist na kanale czatu. Bot odpowiada, kto jest online, i po 10 sekundach usuwa zarówno Twoją prośbę, jak i swoją odpowiedź.

Gdy wiadomości nie dochodzą

Przewiń do tego, co DiscordSRV wypisał podczas startu serwera. Jego linijki startowe podają przyczynę większości nieudanych konfiguracji:

Co widziszPrawdopodobna przyczynaRozwiązanie
The bot token is invalid albo DiscordSRV is disabled: your bot token is invalid. przy użyciu komendy discordLiterówka, zbędna spacja albo token, który od tego czasu zresetowanoZresetuj token, wklej nowy, zrestartuj
An invalid length bot token (32)Skopiowano client secret zamiast tokena botaSkopiuj token ze strony Bot
missing one or more of the following intents albo DiscordSRV is disabled: your DiscordSRV bot is lacking required intents. przy użyciu komendy discordJeden z dwóch intents jest wyłączonyWłącz oba pod Privileged Gateway Intents, potem zrestartuj
Czat z gry dochodzi na Discorda, z Discorda nigdy do gryRola bota nie może czytać tego kanału albo wymagane są połączone kontaPozwól tam na View Channel i Read Message History albo połącz konto
Brak błędów i nic nigdzie nie dochodziLiczba w Channels nie jest ID tego kanału tekstowego albo plik zmieniono bez przeładowaniaSkopiuj ID z samego kanału, potem uruchom discord reload
Posty z webhooków nigdy nie pokazują się w grzeDiscordChatChannelBlockWebhooks jest domyślnie na trueUstaw na false, jeśli chcesz je przekazywać
Ostrzeżenie o limitach (rate limiting)Ten sam token działa na więcej niż jednym serwerzeDaj każdemu serwerowi własną aplikację

Dalej nie działa? Uruchom discord debug w konsoli. Wysyła raport z konfiguracji i daje Ci link, o który poproszą pomocnicy samego pluginu.

Na serwerze Fabric

Serwer Fabric nie wczytuje pluginów, więc zakładka „Pluginy” prosi o przejście na Paper albo Purpur. Jeśli serwer musi zostać na Fabricu ze względu na mody (dlaczego ten wybór ma znaczenie), Simple Discord Link to mod po stronie serwera z wydaniem z lipca 2026 dla Java Edition 26.2. Wymaga CraterLib, który wymaga Fabric API; zakładka „Mody” pokazuje tylko mody pasujące do Twojego loadera i wersji i instaluje razem z nimi wymagane zależności.

Strona Discorda zostaje taka sama: własny bot, wszystkie Privileged Gateway Intents włączone, token i ID kanału. Pierwszy start zapisuje config/simple-discord-link/simple-discord-link.toml. Token idzie do botToken pod [botConfig], a kanał czatu do chatChannelID, a przy następnym starcie mod szyfruje token, żeby nie leżał już w pliku jako zwykły tekst.

Napisane i sprawdzone przez zespół Lodehost, ostatnia weryfikacja 14 września 2026.

FAQ

Pytania właścicieli serwerów o DiscordSRV

Czy DiscordSRV działa na Purpurze i Folii?

Tak. Obecne wydanie jest zbudowane dla Paper, Purpur, Spigot i Folia, więc przejście między nimi zachowuje działający most.

Czy gracz może oznaczyć @everyone na Discordzie z gry?

Nie przy domyślnych ustawieniach. Wiadomości z gry mogą oznaczać użytkowników, kanały i emotki, a oznaczenia ról, here i everyone są pominięte w DiscordChatChannelAllowedMentions.

Czy członkowie Discorda mogą używać kodów kolorów na czacie w grze?

Tylko członkowie z rolą wymienioną w DiscordChatChannelRolesAllowedToUseColorCodesInChat, gdzie od początku są Developer, Owner, Admin i Moderator. Kody od wszystkich innych są usuwane.

Dlaczego długie wiadomości z Discorda są ucinane w grze?

DiscordSRV skraca wiadomości z Discorda do 256 znaków, zanim trafią na czat w grze. Ten limit ustawia DiscordChatChannelTruncateLength.

Czy czat może pokazywać na Discordzie nazwę gracza zamiast nazwy bota?

Tak, z Experiment_WebhookChatMessageDelivery: true i uprawnieniem Manage Webhooks dla roli bota. Czat jest wtedy publikowany przez webhook pod wyświetlaną nazwą gracza; DiscordSRV oznacza tę opcję jako eksperymentalną.

Jedna rozmowa, w grze i na Discordzie.

DiscordSRV jest w katalogu pluginów w zakładce „Pluginy”, a jego config.yml otwiera się w przeglądarce w zakładce „Pliki”.

Zobacz funkcje panelu