// Minecraft

DiscordSRV: je Minecraft-server aan Discord koppelen

DiscordSRV: je Minecraft-server aan Discord koppelen

DiscordSRV is een gratis, open source plugin die de chat van je Minecraft-server in twee richtingen aan Discord koppelt: wat spelers in-game typen verschijnt in een Discord-kanaal, en wat in dat kanaal wordt getypt komt in-game aan. De plugin draait volledig server-side op Paper, Purpur of Spigot, dus je spelers hoeven niets te installeren. Je hebt drie dingen nodig: een eigen Discord-bot met een token, de kanaal-IDs van de kanalen die je koppelt, en toegang tot plugins/DiscordSRV/config.yml.

Wat kun je met DiscordSRV allemaal koppelen?

De chatbrug is waar de meeste servers voor komen, maar de plugin doet meer. Je zet deze onderdelen los van elkaar aan of uit:

  • Tweerichtingschat. In-game berichten gaan naar een gekozen Discord-kanaal, en berichten uit dat kanaal komen in de in-game chat terecht met de Discord-naam ervoor. Zo praat iemand vanaf zijn telefoon gewoon mee.
  • Join-, leave- en statusmeldingen. Spelers zien binnenkomen en vertrekken, eventueel met doodmeldingen erbij. Op een drukke server wordt dat snel ruis; veel beheerders laten alleen join en leave staan.
  • Consolekanaal. De serverconsole streamt naar een apart kanaal en je kunt daar commando's uitvoeren. Handig als je onderweg iemand moet unbannen, maar ook het gevaarlijkste onderdeel van de plugin.
  • Rangsynchronisatie. Een Discord-rol koppelen aan een LuckPerms-groep, zodat wie in Discord de rol Donateur krijgt in-game in de bijbehorende rang belandt.
  • Accountkoppeling. Spelers verbinden hun Minecraft-account aan hun Discord-account met een commando in-game en een korte code. Zonder koppeling weet de plugin niet wie wie is, en werkt rangsynchronisatie niet.

DiscordSRV staat niet voor niets in vrijwel elk overzicht van de standaardplugins voor een Minecraft-server, naast EssentialsX, LuckPerms en CoreProtect.

Hoe maak je de Discord-bot aan?

DiscordSRV levert geen kant-en-klare bot mee. Je maakt er zelf een aan in het ontwikkelaarsportaal van Discord, zodat jij bepaalt welke rechten hij krijgt.

  1. Maak via New Application een applicatie aan in het Discord-ontwikkelaarsportaal. De naam die je invult, wordt de naam van je bot.
  2. Open het tabblad Bot en zet de privileged gateway intents aan: Message Content Intent is verplicht voor berichten van Discord naar Minecraft, Server Members Intent voor rangsynchronisatie en accountkoppeling.
  3. Klik op Reset Token en kopieer het token. Je ziet hem één keer; daarna moet je opnieuw resetten. Behandel dit token als het wachtwoord van je hele Discord-server.
  4. Ga naar OAuth2 URL Generator, vink de scope bot aan en kies de rechten: berichten versturen, berichtgeschiedenis lezen en Manage Roles (alleen bij rangsynchronisatie). Open de link en nodig de bot uit.
  5. Zet het jar-bestand in de map plugins en start de server één keer op, zodat de configuratie wordt aangemaakt. Vul daarna je token in achter BotToken in plugins/DiscordSRV/config.yml.
  6. Zet in Discord de ontwikkelaarsmodus aan, klik met rechts op een kanaal en kies Kopieer kanaal-ID: een getal van 17 tot 19 cijfers, geen kanaalnaam. Zet het ID van je chatkanaal achter global en dat van je beheerderskanaal bij de console-instelling.
  7. Herstart de server volledig in plaats van te reloaden. In de console zie je of de bot verbinding maakt. Test daarna beide richtingen: typ iets in-game en typ iets in Discord.

config.yml bewerk je het makkelijkst via de bestandsbeheerder van je paneel. Bij Minecraft-hosting bij MC-Node zit op elk pakket het Pterodactyl-paneel, zodat je het bestand in je browser aanpast zonder FTP.

Welke kanalen koppel je, en welke houd je privé?

De meeste ellende komt niet uit de plugin maar uit slordige kanaalrechten. Bepaal vooraf per kanaal wie mag lezen en wie mag schrijven.

KanaalWie mag lezenWie mag schrijvenWaarom
Chatkanaal (global)IedereenIedereenDe brug waar de plugin voor bedoeld is. Alles wat hier staat, komt in-game terecht.
Logkanaal (join, leave, deaths)LedenAlleen de botPuur een logboek. Schrijfrechten uitzetten voorkomt dat het volloopt met reacties.
ConsolekanaalAlleen beheerdersAlleen beheerdersBevat opstartlogs, foutmeldingen met mappaden en soms IP-adressen van spelers.
KoppelkanaalLedenLedenHier voeren spelers hun koppelcode in. Die codes zijn persoonlijk en kort geldig.

Controleer de rechten met een tweede account zonder rollen. Kanalen erven rechten van hun categorie, en daar gaat het vaak mis: het kanaal staat dicht, de categorie eromheen niet.

Hoe koppel je Discord-rollen aan in-game rangen?

Voor veel servers is dit de reden om DiscordSRV te installeren. In de synchronisatieconfiguratie koppel je een Discord-rol-ID aan een groep in LuckPerms, de standaard voor permissies en rangen op Bukkit-servers. Geef je iemand in Discord de rol Donateur, dan krijgt hij in-game de groep donateur.

Drie dingen bepalen of dat werkt. De speler moet zijn accounts gekoppeld hebben, anders is er geen verband tussen een Discord-ID en een Minecraft-UUID. De rol van de bot moet in de rollenlijst bóven de rollen staan die hij uitdeelt, anders krijg je een permissiefout die niets met Minecraft te maken heeft. En je moet kiezen welke kant leidend is.

Die laatste keuze wordt onderschat. Bij tweerichtingssynchronisatie raakt een speler ook in-game zijn rang kwijt zodra iemand handmatig een rol weghaalt in Discord, en een typefout in een rol-ID kan in één keer je hele spelersbestand een rang geven of afnemen. Maak dus een back-up van je LuckPerms-database voordat je dit aanzet, en kies bij twijfel één leidende kant: meestal Discord.

Welke twee fouten kosten servers het vaakst hun Discord?

De eerste is een bot-token dat naar buiten komt. Daarmee heeft iemand anders volledige controle over je bot: berichten sturen alsof hij jouw server is, kanalen volspammen, en met Manage Roles ook rollen uitdelen aan zichzelf. Staat rangsynchronisatie aan, dan is zo'n rol meteen een rang in Minecraft.

Lekken gebeurt bijna altijd op twee manieren: een screenshot van config.yml in een hulpkanaal, of een complete configuratie of log op een pastebin-site om hulp te vragen. Plak nooit een heel configuratiebestand ergens, alleen het stuk dat over je probleem gaat, met het token eruit gehaald; ga er niet vanuit dat een uploadservice tokens censureert. Is het toch gebeurd, reset het token dan direct in het ontwikkelaarsportaal. Zet het nieuwe in je configuratie, herstart, en loop het auditlog van je Discord-server na op rollen en kanalen die jij niet hebt aangepast.

De tweede fout is een openbaar consolekanaal. Alles wat je console uitspuugt komt daar terecht: opstartlogs, plugin-versies, foutmeldingen met volledige mappaden en, afhankelijk van je instellingen, joinmeldingen met IP-adressen van spelers. Dat is precies de informatie waarmee iemand je server aanvalt. Laat je ook consolecommando's toe vanuit dat kanaal, dan kan iedereen die daar mag schrijven op, ban of stop draaien.

Zet het consolekanaal daarom in een categorie die alleen zichtbaar is voor je beheerdersrol, en beperk het uitvoeren van commando's tot de rol-IDs die je expliciet opgeeft. Gebruik je het alleen als logboek, zet uitvoeren dan uit.

Hoeveel zwaarder wordt je server ervan?

Praktisch niets. DiscordSRV handelt zijn netwerkverkeer asynchroon af, dus je hoofdthread en je TPS merken er weinig van. Waar je wel tegenaan loopt zijn de limieten van Discord zelf: een bot mag maar een bepaald tempo aan berichten posten, dus met doodmeldingen en advancements erbij kan de chat achterlopen. Zet die meldingen dan uit.

De echte prestatievragen zitten ergens anders: chunkloading, entities en zware modpacks. All the Mods 10 vraagt minimaal 10 GB RAM en 14 tot 16 GB bij vijf of meer spelers; daar verandert een chatplugin niets aan. Loopt je server stroef, gebruik dan spark en werk de uitleg over het optimaliseren van je Minecraft-server af.

Wanneer kun je DiscordSRV beter overslaan?

Voor vier vrienden die toch al in dezelfde voicechat zitten, voegt een chatbrug weinig toe. Wil je alleen de serverstatus en het spelersaantal zien, dan is je hostingpaneel genoeg.

Belangrijker is de technische grens: DiscordSRV is een plugin, geen mod. Hij draait op Bukkit-gebaseerde software zoals Paper en Purpur, en die laad je niet in een pure NeoForge- of Fabric-opstelling. Draai je All the Mods 10 op NeoForge, dan heb je een mod-alternatief nodig of hybride serversoftware, met alle instabiliteit van dien. Voor echte Bedrock-serversoftware geldt hetzelfde: die kent geen Bukkit-plugins, dus kijk eerst wat er wel kan op een Bedrock Edition-server. Op een Java-server met Geyser en Floodgate werkt DiscordSRV wél voor Bedrock-spelers.

Bedenk tot slot dat een chatbrug ook een moderatietaak is: alles wat in-game wordt gezegd staat permanent in Discord, en mensen die niet op je server spelen praten mee in de chat. Regel dus vooraf wie in dat kanaal mag schrijven.

Veelgestelde vragen

Is DiscordSRV gratis? Ja, gratis en open source: tweerichtingschat, consolekanaal, accountkoppeling en rangsynchronisatie met LuckPerms zitten allemaal in de gewone versie. Je betaalt alleen voor de server waar hij op draait; een 2 GB-pakket bij MC-Node kost 2,20 euro per maand.

Mijn bot-token is gelekt, wat nu? Reset het token direct in het Discord-ontwikkelaarsportaal, waarmee het oude ongeldig wordt. Zet het nieuwe in config.yml, herstart de server en controleer het auditlog op rollen, kanalen of bans die jij niet hebt aangemaakt.

Waarom komt chat wel in Discord aan, maar niet terug in Minecraft? Meestal staat Message Content Intent uit in het ontwikkelaarsportaal, waardoor de bot de inhoud van berichten niet mag lezen. Controleer daarna of de bot leesrechten heeft in het kanaal en of het kanaal-ID van 17 tot 19 cijfers klopt.

Kan ik mijn server vanuit Discord besturen? Ja, via het consolekanaal voer je commando's uit alsof je in de console zit. Zet dat kanaal wel privé voor je beheerdersrol en beperk het uitvoeren tot specifieke rol-IDs, anders kan iedereen met schrijfrechten commando's als op of stop draaien.

Verder lezen

// ZELF PROBEREN
Je server binnen 60 seconden online
MC-Node →