Je runt al een tijdje een Minecraft/Spigot Server en bent toe aan uitbreiding met extra servers voor bijvoorbeeld Minigames of misschien wel een Creative Server? Lees dan nu door!
Het opzetten van een Minecraft Server Netwerk is niet per se moeilijk, echter heb je enige kennis van zaken nodig om niet tegen problemen aan te lopen. In dit artikel gaan we zo’n netwerk opzetten met BungeeCord. BungeeCord fungeert als een proxy tussen al jouw andere servers. Het proxy ipadres is dan ook het adres waarmee je voortaan je Minecraft Server joint.
Wat is een proxy?
Een proxy kan voor meerdere doeleinde worden gebruikt, bijvoorbeeld voor het browsen op het internet met een ander ipadres of in het geval van bedrijven die al hun interne netwerkverkeer eerst over een proxy laten lopen om zodoende verkeer wel of niet toe te laten. Met een Minecraft Server fungeert een proxy als een soort bemiddelingspersoon. De proxy stuurt jou naar de server die jij als standaard hebt ingesteld, vaak is dit de zogenaamde lobby. Een lobby is een plaats waar iedereen bij elkaar komt, je kunt het ook de spawn noemen, maar aangezien elke server een spawn heeft en het hier gaat om een spawn voor alle servers bij elkaar, spreken we hier van een lobby.
Voorbereiding
Alvorens we verder gaan zul je eerst twee Spigot servers moeten maken. Als je nog niet weet hoe dit moet raad ik je aan mijn andere artikel te lezen. Om te testen kun je natuurlijk een bestaande kopiëren en de map van een van beide verwijderen zodat je ze kunt onderscheiden van elkaar. Zorg ervoor dat je het ipadres in server.properties aanpast aan je interne ipadres(in het geval je het op je eigen computer uitprobeert! Bij een Minecraft Hosting bedrijf dien je hun externe ipadres op te geven!) én dat je de poort van één van beide aanpast, er kunnen immers geen twee Minecraft Server op de zelfde port draaien.
Daarnaast zul je ook in de server.properties van beide servers onlinemode uit moeten zetten. Normaal betekent dit dat je server cracked zou worden, maar aangezien de proxy in onlinemode staat maakt dit niet uit, al is er wel iets om rekening mee te houden, maar daar zal ik aan het eind van dit artikel op terugkomen. Dit doe je door online-mode=true te veranderen naar online-mode=false.
Om straks via BungeeCord met deze twee Minecraft Servers verbinding te kunnen maken zul je in de spigot.yml configuratie, bungeecord=false moeten veranderen naar bungeecord=true. Dit heeft te maken met ip-forwarding. Ook daar kom ik later op terug.
Samenvatting:
Nu hoop ik dat je twee servers ter beschikking hebt met twee verschillende poorten met allebij bungeecord=true. Zoja, dan raad ik je van harte aan door te lezen. 😉
Instellen van BungeeCord
Alvorens we BungeeCord kunnen instellen moeten we deze natuurlijk eerst downloaden! Dat kun je hier doen. Download alleen de BungeeCord.jar de rest zijn extra modules die ik hier niet behandel. Maak voor deze .jar, net als met het maken van een Minecraft Server, ergens een mapje aan en stop deze hierin. Maak vervolgens een start.bat en verander de naam naar ‘BungeeCord.jar‘. Precies hetzelfde als met een standaard Minecraft Server. Start nu BungeeCord op door start.bat te openen en sluit deze zodra deze volledig geladen is weer. We gaan nu BungeeCord instellen.
Ip-forwarding
Open de zojuist aangemaakte config.yml, je ziet nu een hele lijst configuratie mogelijkheden. Zojuist had ik je opgedragen bungeecord=false naar bungeecord=true te veranderen, ik zei dat dit te maken had met ip-forwarding. Ip-forwarding, met betrekking tot een Minecraft server, houdt in dat het ipadres waarmee een speler joint ook wordt doorgegeven aan de andere servers die een speler betreed binnen jouw server netwerk. Immers, iedereen joint via het proxy-ip. Als je dit niet aan zou zetten zou iedereen hetzelfde ipadres hebben, namelijk het proxy-ip! Wat problemen kan opleveren met het bannen van bijvoorbeeld spelers. Lees hier de Engelstalige uitleg. Door bungeecord=true te gebruiken sta je ip-forwarding toe voor alleen die Minecraft Server. De forwarding zelf wordt gedaan door BungeeCord.
Nu we ip-forwarding hebben toegestaan voor de Spigot Servers betekent dat nog niet automatisch dat BungeeCord ook daadwerkelijke deze ip-adressen forward! Daarom zullen we in de zojuist geopende config.yml, ip_forward: false moeten veranderen naar ip_forward: true.
Servers toevoegen
BungeeCord moet natuurlijk weten met welke servers hij te maken heeft, daarom zullen we in de config.yml de servers moeten toevoegen. Op ongeveer regel 15 (dit verschilt een beetje) vind je een kopje genaamd ‘servers:‘. Dit is de categorie waar we onze Spigot Servers moeten invullen.
Een standaard configuratie file zal er als het goed is, zo uit zien:
Je ziet dat er al een server is toegevoegd. De lobby. Laten we dit als uitgangspunt nemen en deze aanpassen. De motd is de tekst die wordt weergegeven in Minecraft bij de serverlijst, je kunt deze naar believen aanpassen. De address is veel belangrijker, want dit is het ipadres van de server. Deze moet je dus hier invullen gevolgd door de port die je gekozen hebt voor die server. Restricted houdt in dat je een permissie node aan een speler(of groep natuurlijk) moet geven om deze server te kunnen joinen. Nogmaals dit wordt de lobby server! De Engelstalige handleiding is hier te vinden.
Om onze tweede server toe te voegen kun je het stukje vanaf ‘lobby:‘, tot ‘listeners:‘ kopiëren en direct onder ‘lobby:‘ plakken. Dit zou het bijvoorbeeld kunnen worden:
Aanpassen van BungeeCord ip
Als laatste zullen we nog het ipadres van bungeecord, het proxy ipadres, moeten veranderen naar het juiste ipadres en de bijhorende port, in dit voorbeeld is dat 192.168.178.14 en een port 25565. Je verandert dit door onder de categorie ‘listeners:‘, ‘host: 0.0.0.0:25577‘ te veranderen naar (in dit geval) ‘host: 192.168.178.14:25565‘
Via BungeeCord joinen
Als je nu beide Spigot Servers opstart en vervolgens BungeeCord, dan zul je in je Minecraft Client de BungeeCord server zien staan (mits je het ipadres hebt toegevoegd natuurlijk) met jouw ingestelde motd! Als je hem nu joint zul je merken dat hij naar de lobby gaat, dit is immers de standaard server. Dit kun je in de config file ook zien onder de categorie priorities. Stel een server is offline dan zal hij de volgende in dat rijtje proberen te joinen. Om een andere server te joinen, type je in game /server naamserver, in mijn geval minigames, dus /server minigames. Je wordt nu doorgestuurd naar deze server! Op het moment dat je nu uitlogt en vervolgens weer inlogt zul je merken dat je weer in de server terecht komt waar je hebt uitgelogd. Wil je dit niet, en iedereen bij de lobby laten spawnen zodra ze joinen? Zet dan force_default_server: false naar force_default_server: true ook dit staat onder de categorie ‘listeners:‘.
Tenslotte
Je hebt nu een werkende BungeeCord Minecraft Server die naar believen verder uitgebreid kan worden. Er zijn verschillende plugins om de functionaliteit mee uit te breiden zowel plugins voor bungeecord als voor Spigot. Een leuke voor Spigot is bijvoorbeeld BungeePortals. Hiermee kun je portals maken waarmee je van server kunt veranderen! Aanrader! Er is echter een ding waarmee je rekening moet houden, dat is dat iedereen ook jou server zonder BungeeCord kan joinen als zij het ipadres van de individuele Spigot Servers weten. Om dit te voorkomen moet je de poorten blokkeren van deze servers. Je joint immers alleen maar via het BungeeCord-ip + Port. Dat is de enige die je hoeft toe te staan. Op je eigen computer is dit wellicht niet zo’n probleem, maar als jij bijvoorbeeld een VPS hebt waar je zelf Multicraft opdraait, dan zou ik de iptables er nog maar even op na lopen. 😉
Toedels!